我正在尝试使用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
已从 中删除dat2
。如果我使用dat1
它,结果将是相同的。有没有办法在处理数据时做出speedglm
类似的行为?glm
dat2