R:lm和biglm产生不同的答案

R:lm和biglm产生不同的答案,r,R,为什么“lm”和“biglm”产生不同的估计?考虑下面的代码: a = as.data.frame(cbind(y=rnorm(1000000), x1=rnorm(1000000), x2=rnorm(1000000))) m1 = lm(y ~ x1 + x2, data=a); summary(m1) library(biglm) m2 = biglm(y ~ x1 + x2, data=a); summary(m2) 如果biglm过程分块处理与否没有区别-最终估计值与lm产生的估计

为什么“lm”和“biglm”产生不同的估计?考虑下面的代码:

a = as.data.frame(cbind(y=rnorm(1000000), x1=rnorm(1000000), x2=rnorm(1000000)))
m1 = lm(y ~ x1 + x2, data=a); summary(m1)

library(biglm)
m2 = biglm(y ~ x1 + x2, data=a); summary(m2)

如果biglm过程分块处理与否没有区别-最终估计值与lm产生的估计值不同。

仅由于长度原因,作为答案发布:

m2$qr

$D
[1] 1.000000e+06 1.001150e+06 9.993772e+05

$rbar
[1] -8.581350e-04 -8.116662e-04 -1.225233e-03  

$thetab
[1]  7.863159e-04 -4.276900e-04 -1.552812e-03   # these are the coefficients

Rgames: m1$coefficients
  (Intercept)            x1            x2 
 7.846869e-04 -4.295926e-04 -1.552812e-03 
所以,是的,系数略有不同。例如,截距相差0.2%。这种差异是否会影响您的合身线条的质量,很大程度上取决于您打算如何处理您的合身。整合?没问题。外推法始终存在风险,但不是因为坡度相差0.5%。
我强烈建议您至少运行一些适合的测试用例,比如
f(x)=g(x)+runif(N);h(x)=g(x)+runif(N)#runif将返回不同的RVs集


,并查看lm和biglm返回的系数是否与原始g(x)值存在显著差异。

我无法使用提供的代码重现这一点(我发现
lm
biglm
esimates之间没有明显差异)。请你粘贴两次
总结
电话的打印输出。如果不提供更多数据信息,我看不出你希望得到有用的答案。谢谢你的回复,Carl。在这个虚构的例子中,差别不大。但在我的实际数据集(太大了,无法发布)中,差异是几个数量级。如果你对数据集进行一个小的代表性样本,会发生什么?或者,如果差异如此之大,您应该绘制(完整)数据和两条拟合曲线,并查看其合理性。好的,数据集可能太大,无法发布,但您至少可以发布结果,以显示存在很大差异。
cov2cor(vcov(模型))
的结果是什么,即估计值是否具有强相关性?相对于标准误差,估计值的差异是否很大?