これらのデータのロジスティック回帰を検討してください:
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は、データの3つの異なる表現を受け入れます。テーブルエントリごとに1行、および2つの圧縮表現(1つは重み付け、1つは成功と失敗)です。私の考えでは、これらの3つの仕様はすべて数学的に同じである必要があります。データは同じ7つの観測値であり、それらは異なる形式でRに提示されます。
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")
モデル2と3は同じです。しかし、モデル1はモデル2および3とは異なり、同じデータが他のモデル統計とは異なるモデル統計(係数、ヌルおよび残差逸脱)を返す理由を推測することはできません。モデル2と3は、同じデータの異なる表現を使用しています。
これはレッドニシンかもしれませんが、モデル1はモデル2と比較して係数が4単位シフトされています。これは、2の間の(移入された)行数/残りの自由度の違いです。
> 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]
応答レベルと2つのを示す2つのレベルの重量を受けるy
平均応答として0と1を取ります。ただし、[1,0,.5]
表示するデータには応答レベルがありません。