Gibt es in einem Logit-Modell eine intelligentere Möglichkeit, den Effekt einer unabhängigen Ordnungszahl zu bestimmen, als Dummy-Variablen für jede Ebene zu verwenden?
Gibt es in einem Logit-Modell eine intelligentere Möglichkeit, den Effekt einer unabhängigen Ordnungszahl zu bestimmen, als Dummy-Variablen für jede Ebene zu verwenden?
Antworten:
Um die Antwort von @ dmk38 zu ergänzen, "liefert jeder Satz von Bewertungen einen gültigen Test, vorausgesetzt, er wurde ohne Rücksprache mit den Ergebnissen des Experiments erstellt. Wenn der Satz von Bewertungen schlecht ist, führt dies zu einer starken Verzerrung einer numerischen Skala, die tatsächlich der Bewertung zugrunde liegt Bei einer geordneten Klassifizierung ist der Test nicht sensitiv. Die Bewertungen sollten daher den besten verfügbaren Einblick in die Art und Weise bieten, in der die Klassifizierung erstellt und verwendet wurde. " (Cochran, 1954, zitiert von Agresti, 2002, S. 88-89). Mit anderen Worten, die Behandlung eines geordneten Faktors als numerisch bewertete Variable ist lediglich ein Modellierungsproblem. Sofern dies sinnvoll ist, wirkt sich dies nur auf die Art und Weise aus, wie Sie das Ergebnis interpretieren, und es gibt keine definitive Faustregel für die Auswahl der besten Darstellung für eine Ordnungszahlvariable.
Betrachten Sie das folgende Beispiel zum Alkoholkonsum bei Müttern und zum Vorhandensein oder Fehlen einer angeborenen Fehlbildung (Agresti, Kategoriale Datenanalyse , Tabelle 3.7, S. 89):
0 <1 1-2 3-5 6+
Absent 17066 14464 788 126 37
Present 48 38 5 1 1
In diesem speziellen Fall können wir das Ergebnis mithilfe einer logistischen Regression oder einer einfachen Zuordnungstabelle modellieren. Lass es uns in R machen:
tab3.7 <- matrix(c(17066,48,14464,38,788,5,126,1,37,1), nr=2,
dimnames=list(c("Absent","Present"),
c("0","<1","1-2","3-5","6+")))
library(vcd)
assocstats(tab3.7)
Die üblichen statistischen Werte für (12.08, p = 0.016751) oder LR (6.20, p = 0.184562) (mit 4 df) berücksichtigen nicht die bestellten Werte für den Alkoholkonsum.
Behandeln wir beide Variablen als Ordinale mit gleichmäßigen Punktzahlen (dies hat keine Auswirkung auf binäre Variablen, wie Missbildungen, und wir wählen die Basislinie als 0 = nicht vorhanden), könnten wir auf eine lineare durch lineare Assoziation testen. Erstellen wir zunächst eine Explosionsversion dieser Kontingenztabelle:
library(reshape)
tab3.7.df <- untable(data.frame(malform=gl(2,1,10,labels=0:1),
alcohol=gl(5,2,10,labels=colnames(tab3.7))),
c(tab3.7))
# xtabs(~malform+alcohol, tab3.7.df) # check
Dann können wir mit auf eine lineare Assoziation testen
library(coin)
#lbl_test(as.table(tab3.7))
lbl_test(malform ~ alcohol, data=tab3.7.df)
das ergibt mit . Beachten Sie, dass diese Statistik einfach die Korrelation zwischen den beiden Ergebnisserien ist (die Agresti als ), die leicht berechnet werden kann als
cor(sapply(tab3.7.df, as.numeric))[1,2]^2*(32574-1)
Wie zu sehen ist, gibt es nicht viele Hinweise auf eine eindeutige Assoziation zwischen den beiden Variablen. Wenn wir, wie von Agresti getan, Alkoholwerte als {0,0,5,1,5,4,7} umkodieren, dh Mittelwerte für eine hypothetische fortlaufende Skala verwenden, wobei die letzte Bewertung etwas rein willkürlich ist, würden wir schließen zu einer größeren Auswirkung des Alkoholkonsums von Müttern auf die Entwicklung angeborener Missbildungen:
lbl_test(malform ~ alcohol, data=tab3.7.df,
scores=list(alcohol=c(0,0.5,1.5,4,7)))
ergibt eine Teststatistik von 6,57 mit einem zugehörigen p-Wert von 0,01037.
Es gibt alternative Kodierungsschemata, einschließlich Midranks (in diesem Fall greifen wir auf Spearman anstelle von Pearson ), die von Agresti erörtert werden, aber ich hoffe, Sie verstehen hier die allgemeine Idee: Es ist am besten, Partituren auszuwählen, die tatsächlich widerspiegeln Ein vernünftiges Maß für den Abstand zwischen benachbarten Kategorien Ihrer Ordinalvariablen und der gleiche Abstand sind häufig ein guter Kompromiss (sofern keine theoretische Begründung vorliegt).
Unter Verwendung des GLM-Ansatzes würden wir wie folgt vorgehen. Aber überprüfen Sie zuerst, wie Alkohol in R kodiert ist:
class(tab3.7.df$alcohol)
Es ist ein einfacher ungeordneter Faktor ( "factor"
), daher ein nominaler Prädiktor. Nun, hier sind drei Modelle, bei denen wir Alkohol als nominalen, ordinalen oder kontinuierlichen Prädiktor betrachten.
summary(mod1 <- glm(malform ~ alcohol, data=tab3.7.df,
family=binomial))
summary(mod2 <- glm(malform ~ ordered(alcohol), data=tab3.7.df,
family=binomial))
summary(mod3 <- glm(malform ~ as.numeric(alcohol), data=tab3.7.df,
family=binomial))
Der letzte Fall geht implizit von einer Skala mit gleichem Intervall aus, und das wird als @ dmk38 did interpretiert: Es spiegelt die Auswirkung einer Erhöhung des Alkoholgehalts um eine Einheit auf das Ergebnis durch die logit-Verknüpfung wider, dh die Erhöhung der Wahrscheinlichkeit eine Missbildung zu beobachten (im Vergleich zu keiner Missbildung, dh das Odds-Ratio) ist . Der Wald-Test ist bei den üblichen 5% nicht signifikant. In diesem Fall enthält die Entwurfsmatrix nur 2 Spalten: Die erste ist eine konstante Spalte mit Einsen für den Achsenabschnitt, die zweite ist der numerische Wert (1 bis 5) für den Prädiktor, wie bei einer einfachen linearen Regression. Zusammenfassend testet dieses Modell den linearen Einfluss von Alkohol auf das Ergebnis (auf der logit-Skala).
In den beiden anderen Fällen ( mod1
und mod2
) erhalten wir jedoch eine unterschiedliche Ausgabe, da sich die zur Modellierung des Prädiktors verwendete Entwurfsmatrix unterscheidet. Dies kann überprüft werden, indem Folgendes verwendet wird:
model.matrix(mod1)
model.matrix(mod2)
Wir können sehen, dass die zugehörige Entwurfsmatrix für mod1
Dummy-Variablen für die Alkoholspiegel (0 ist immer die Basislinie) nach dem Intercept-Term in der ersten Spalte enthält, wohingegen wir im Fall von vier Spalten mit kontrastcodierten Effekten haben (Nach der Spalte mit den Einsen für den Achsenabschnitt). Der Koeffizient für die Kategorie "3-5" wird auf 1,03736 unter , aber 0,01633 unter geschätzt . Beachten Sie, dass der AIC und andere wahrscheinlichkeitsbasierte Kennzahlen zwischen diesen beiden Modellen jedoch identisch bleiben.mod2
mod1
mod2
Sie können versuchen, Alkohol neue Punkte zuzuweisen, um zu sehen, wie sich dies auf die vorhergesagte Wahrscheinlichkeit einer Missbildung auswirkt.
Es ist völlig in Ordnung, einen kategorialen Prädiktor in einem Logit- (oder OLS-) Regressionsmodell zu verwenden, wenn die Ebenen ordinal sind. Wenn Sie jedoch einen Grund haben, jede Ebene als diskret zu behandeln (oder wenn Ihre kategoriale Variable tatsächlich nominal statt ordinal ist), können Sie alternativ zur Dummy-Codierung auch die orthogonale Kontrastcodierung verwenden. Für eine sehr vollständige und leicht zugängliche Diskussion siehe Judd, CM, McClelland, GH & Ryan, CS Datenanalyse: Ein Modellvergleichsansatz, Edn. 2nd. (Routledge / Taylor und Francis, New York, NY; 2008) oder einfach "Kontrastcodierung" von Google