Wie gehen Sie mit „verschachtelten“ Variablen in einem Regressionsmodell um?


11

Stellen Sie sich ein statistisches Problem vor, bei dem Sie eine responseVariable haben, die Sie abhängig von einer explanatoryVariablen und einer nestedVariablen beschreiben möchten , wobei die verschachtelte Variable nur als sinnvolle Variable für bestimmte Werte der erklärenden Variablen auftritt . In Fällen, in denen die erklärende Variable keine aussagekräftige verschachtelte Variable zulässt, wird diese normalerweise entweder wie NAim Datensatz codiert , oder wenn sie mit einem Wert codiert ist, ist dieser Wert lediglich ein Platzhalter, der keine aussagekräftige Interpretation hat.

Diese Situation tritt in der Regel immer dann auf, wenn Sie eine erklärende Variable haben, die die Existenz eines Objekts anzeigt , und eine oder mehrere verschachtelte Variablen, die die Eigenschaften dieses Objekts beschreiben. Einige Beispiele für diese Art von Situation bei statistischen Problemen sind die folgenden:

  • Die erklärende Variable ist ein Indikator dafür, ob es sich um einen Umfrageteilnehmer handelt married, und die verschachtelte Variable ist eine characteristic of the spouse(z. B. Bildung, Alter usw.).

  • Die erklärende Variable ist ein Indikator für das presence of an itemin einem Raum, und die verschachtelte Variable ist ein Maß für einige characteristic of the item(z. B. Größe, Entfernung usw.);

  • Die erklärende Variable ist ein Indikator für das Auftreten von a eventund die verschachtelte Variable ist eine Beschreibung einiger characteristic of the event(z. B. Dauer, Größe usw.).

In solchen Situationen möchten wir häufig ein Modell vom Regressionstyp erstellen (im weiteren Sinne, das GLMs, GLMMs usw. umfasst), das die Beziehung zwischen der Antwortvariablen und den anderen Variablen beschreibt. Es ist nicht offensichtlich, wie mit der verschachtelten Variablen in diesem Modelltyp umgegangen werden soll.

Frage: Wie gehen wir mit der nestedVariablen in diesem Modelltyp um?


Hinweis: Diese Frage soll eine allgemeine Antwort auf eine wiederkehrende Frage zu CV.SE zu verschachtelten Variablen in der Regression geben (siehe z. B. hier , hier , hier und hier ). Diese Frage soll ein allgemeines kontextunabhängiges Beispiel für dieses Problem geben.


1
Ich hätte dies als Kommentar hinterlassen, aber ich habe nicht genug Ruf. Ich habe Probleme bei der Verwendung dieser Lösung in R - glm () oder lm (). Ich verwende das Modell: y ~ x1 + x1: x2 Wenn ich die fehlenden Daten als NA codiere, entfernt die Standard-na.action leider die Zeilen mit NAs und lässt x1 mit nur einer Ebene - das Modell entspricht also nur: y ~ x2 Wenn ich ein Argument für glm verwende: na.action = na.pass, erhalte ich eine Fehlermeldung: Fehler in glm.fit (x = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) , 1, 1, 1, 1, 1 ,: NA / NaN / Inf in 'x' Wenn ich stattdessen die fehlende Variable als 0 codiere, gibt das verschachtelte Modell: y ~ x1 + x1: x2 das genaue
Adam Waring

Antworten:


9

Bedeutungslose Werte verschachtelter Variablen dürfen Ihr Modell nicht beeinflussen : Das entscheidende Desiderat bei dieser Art der Datenanalyse ist, dass die nestedVariable das Modell nicht beeinflussen darf, wenn die ursprüngliche explanatoryVariable es nicht als aussagekräftige Variable zulässt. Mit anderen Worten, das Modell muss eine Form haben, die bedeutungslose Werte der verschachtelten Variablen ignoriert . Dies ist eine wichtige Voraussetzung für ein gültiges Modell mit verschachtelten Variablen, da dadurch sichergestellt wird, dass die Modellausgabe nicht durch willkürliche Codierungsoptionen beeinflusst wird.


Modellierung mit verschachtelten Variablen: Diese Anforderung wird erreicht, indem die nestedVariable nur als Interaktion mit der ursprünglichen explanatoryVariablen in das Modell eingefügt wird, ohne sie als Haupteffekt einzubeziehen. (Insbesondere sollte die verschachtelte Variable mit einer logischen Anweisung in der erklärenden Variablen interagiert werden, die angibt, dass es sich um eine aussagekräftige Variable handelt.) Beachten Sie, dass dies eine Ausnahme von der allgemeinen Regel darstellt, dass Begriffe nicht als Interaktionen ohne einen Haupteffektbegriff aufgenommen werden sollten .

Betrachten Sie den allgemeinen Fall, in dem die nestedVariable nur dann von Bedeutung ist, wenn sich die explanatoryVariable in einem Wertesatz befindet A. In diesem Fall würden Sie ein Modellformular wie das folgende verwenden:

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

In dem allgemeinen Fall, in dem Ihre explanatoryVariable eine Indikatorvariable ist (wobei der Wert eins zu einer aussagekräftigen verschachtelten Variablen führt), vereinfacht diese Modellform Folgendes:

response ~ 1 + explanatory + explanatory:nested + ...

Beachten Sie, dass in diesen Modellanweisungen kein Haupteffektterm für die nestedVariable vorhanden ist. Dies ist beabsichtigt - die verschachtelte Variable sollte keinen Haupteffektterm haben, da sie keine aussagekräftige Variable ist, wenn keine Bedingung für die erklärende Variable vorliegt. Mit dieser Art von Modellform erhalten Sie eine Schätzung für die Auswirkung der erklärenden Variablen und eine weitere Schätzung für die Auswirkung der verschachtelten Variablen.


Codieren verschachtelter Variablen in Ihren Daten: Wenn Sie sich mit Datenrahmen befassen, in denen die Variablen für die Regression aufgelistet sind, empfiehlt es sich, die Werte der nestedVariablen so zu codieren, wie dies NAin Fällen der Fall ist, in denen sie sich nicht sinnvoll aus der erklärenden Variablen ergeben. Dies sagt dem Leser, dass es hier keine sinnvolle Variable gibt. Einige Analysten codieren diese Variablen mit anderen Werten wie Null, aber das ist im Allgemeinen eine schlechte Praxis, da sie mit einer aussagekräftigen Größe verwechselt werden können.

Mathematisch gesehen erhalten Sie Null, wenn Sie eine reelle Zahl mit Null multiplizieren. Wenn Sie jedoch codieren R, müssen Sie hier vorsichtig sein, da sich das Programm multipliziert 0:NA, um NAstatt zu geben 0. Dies bedeutet, dass Sie möglicherweise die NAWerte zum Zwecke der Modellanpassung auf Null umcodieren oder die Entwurfsmatrix für das Modell so erstellen müssen, dass diese Werte auf Null gesetzt werden.


Fälle, in denen die Basisvariable eine Funktion der verschachtelten Variablen ist: Eine Situation, die gelegentlich bei der Regressionsanalyse mit verschachtelten Variablen auftritt, ist der Fall, in dem die verschachtelte Variable eine ausreichende Detailgenauigkeit aufweist, um die anfängliche erklärende Variable, aus der sie entsteht, vollständig zu bestimmen. - dh die ursprüngliche erklärende Variable ist eine Funktion der verschachtelten Variablen. Ein Beispiel hierfür ist diese Frage , bei der der Analytiker eine Indikatorvariable DrugAfür die Einnahme eines Arzneimittels und eine verschachtelte Variable DrugA_Concfür die Konzentration des Arzneimittels hat. In diesem Beispiel erlaubt die letztere Variable einen Konzentrationswert von Null, der dem nicht eingenommenen Arzneimittel DrugAentspricht und somit äquivalent zu ist DrugA_Conc != 0.

In solchen Fällen entspricht der Interaktionsterm zwischen der erklärenden Variablen und der verschachtelten Variablen funktional der verschachtelten Variablen. Daher ist es möglich (und normalerweise wünschenswert), die anfängliche erklärende Variable vollständig aus dem Modell zu entfernen und einfach die zu verwenden verschachtelte Variable für sich. Dies ist in diesem Fall legitim, da die Werte in der verschachtelten Variablen den Wert der anfänglichen erklärenden Variablen bestimmen. Wir haben oben angemerkt, dass es häufig angebracht ist, verschachtelte Variablen so zu codieren, als ob NAdie Bedingungen für sie nicht anwendbar wären. Wenn die Bedingung von einer erklärenden Variable entsteht , dass ein Indikator ist, und die Anzeige entspricht Verwendung der verschachtelten Variable, dann das Ereignis nested != NAentsprichtexplanatory. In solchen Fällen ist es möglich, die verschachtelte Variable neu zu codieren, sodass die anfängliche erklärende Variable im Modell überhaupt nicht erforderlich ist.

Beachten Sie, dass bei der Betrachtung dieser Situation Vorsicht geboten ist. Selbst wenn Sie eine anfängliche erklärende Variable verwenden, die eine Indikatorvariable ist, kann es für Interpretationszwecke nützlich sein, die erklärende Variable und die verschachtelte Variable nicht zusammenzuführen. In Fällen, in denen die erklärende Variable keine Indikatorvariable ist, enthält sie normalerweise Informationen, die nicht in der verschachtelten Variablen enthalten sind, und kann daher nicht entfernt werden.


XX

Da ich keine bestimmte Software angegeben habe (aber die Syntax von verwende R), ist mir nicht klar, warum NAWerte nicht akzeptabel sind. In können RSie sicherlich NAWerte in Ihren Datenrahmen haben.
Ben - Reinstate Monica

X(XX)1

2
Bei den in dieser Antwort verwendeten Modellen NAtreten die Werte im Datenrahmen für die Variablen auf, erscheinen jedoch nicht in der Entwurfsmatrix , da die verschachtelte Variable nur über eine Interaktion in das Modell gelangt.
Ben - Reinstate Monica

Das ist meine ursprüngliche Frage: Wie sieht die Designmatrix aus? Tatsächlich möchte ich dies in SAS tun, aber der fehlende Wert kann nicht in der Entwurfsmatrix enthalten sein.
user158565
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.