Betrachten Sie eine logistische Regression dieser Daten:
X1 X2 Y
1 0 0
1 0 1
0 1 0
0 1 0
0 1 0
0 1 1
1 1 1
R akzeptiert drei verschiedene Darstellungen der Daten: eine Zeile pro Tabelleneintrag und zwei komprimierte Darstellungen (eine mit Gewichten, eine mit Erfolgen und Misserfolgen). Meiner Meinung nach sollten diese drei Spezifikationen mathematisch alle gleich sein: Die Daten sind die gleichen 7 Beobachtungen, und sie werden R in verschiedenen Formaten präsentiert.
data1 <- data.frame(x1=c(1,1,0,0,0,0,1), x2=c(0,0,1,1,1,1,1), y=c(0,1,0,0,0,1,1))
data2 <- data.frame(x1=c(0,1,0,1), x2=c(0,0,1,1), y=c(0,0.5,0.25,1), w=c(0,2,4,1))
data3x <- data.frame(x1=c(0,1,0,1), x2=c(0,0,1,1))
data3y <- cbind(c(0,1,1,1), c(0,1,3,0))
model1 <- glm(y~x1+x2, data=data1, family="binomial")
model2 <- glm(y~x1+x2, data=data2, family="binomial", weight=w)
model3 <- glm(data3y~data3x$x1+data3x$x2, family="binomial")
Die Modelle 2 und 3 sind gleich, was Sinn macht. Aber Modell 1 unterscheidet sich von Modell 2 und 3, und ich kann nicht herausfinden, warum dieselben Daten andere Modellstatistiken (Koeffizienten, Null und Restabweichung) als die anderen zurückgeben sollten. Die Modelle 2 und 3 verwenden lediglich eine andere Darstellung derselben Daten.
Dies mag ein roter Hering sein, aber bei Modell 1 sind die Koeffizienten im Vergleich zu Modell 2 um 4 Einheiten verschoben. Dies ist genau der Unterschied in der Anzahl der (besiedelten) Reihen / verbleibenden Freiheitsgrade zwischen den beiden.
> model1
Call: glm(formula = y ~ x1 + x2, family = "binomial", data = data1)
Coefficients:
(Intercept) x1 x2
-19.66 19.66 18.57
Degrees of Freedom: 6 Total (i.e. Null); 4 Residual
Null Deviance: 9.561
Residual Deviance: 7.271 AIC: 13.27
> model2
Call: glm(formula = y ~ x1 + x2, family = "binomial", data = data2,
weights = w)
Coefficients:
(Intercept) x1 x2
-23.66 23.66 22.57
Degrees of Freedom: 2 Total (i.e. Null); 0 Residual
Null Deviance: 2.289
Residual Deviance: 3.167e-10 AIC: 9.112
[1, 0, .5]
Antwortstufe erhält eine Gewichtung von 2, was 2 Stufen angibt,y
wobei 0 und 1 als durchschnittliche Antwort verwendet werden. Die[1,0,.5]
angezeigten Daten enthalten jedoch keine Antwortstufen.