speedglm
Rのパッケージを使用して回帰モデルを推定しようとしています。一般に、結果はベース R のglm
関数を使用した場合と同じspeedglm
ですが、data.frame から特定の因子レベルを完全に削除すると、予期しない動作が発生します。たとえば、次のコードを参照してください。
dat1 <- data.frame(y=rnorm(100), x1=gl(5, 20))
dat2 <- subset(dat1, x1!=1)
glm("y ~ x1", dat2, family="gaussian")
Coefficients:
(Intercept) x13 x14 x15
-0.2497 0.6268 0.3900 0.2811
speedglm(as.formula("y ~ x1"), dat2)
Coefficients:
(Intercept) x12 x13 x14 x15
0.03145 -0.28114 0.34563 0.10887 NA
x1==1
因子水準が から削除されているため、ここで 2 つの関数は異なる結果を返しますdat2
。代わりに使用dat1
した場合、結果は同じでした。のようなデータを処理するときのspeedglm
ように振る舞う方法はありますか?glm
dat2