你实际上有4组,你试图估计3个参数:
library(dplyr)
df %>% group_by(x1, x2) %>% summarise(n = n(), y = mean(y))
从巨大的标准误差中可以看出,参数估计值并不稳定. wolfram的标准误差也应该非常大(如果给出的话).
第二,wolfram,似乎使用不同的引用组,为x1:
> df$x1
> m
> summary(m)
Call:
glm(formula = y ~ x1 + x2, family = binomial(), data = df, control = list(maxit = 100))
Deviance Residuals:
1 2 3 4 5 6
-0.00008 0.00008 -1.17741 1.17741 1.17741 -1.17741
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -19.566 7604.236 -0.003 0.998
x1a -19.566 7604.236 -0.003 0.998
x2 9.783 3802.118 0.003 0.998
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 8.3178 on 5 degrees of freedom
Residual deviance: 5.5452 on 3 degrees of freedom
AIC: 11.545
Number of Fisher Scoring iterations: 18
这更接近于wolfram的结果(这实际上和你找到的模型相同;我只选择另一个参考组).
两种模型(glm和wolfram)的预测几乎相同.实际上,前两个参数非常小的任何模型(最佳模型将是-Inf)而第三个参数等于前两个参数的一半(9.783 * 2 = 19.566)将得到几乎相同的结果.
因子2源于x2取值2和4的事实,它们相差2.