与lm相比,使用biglm进行预测得到的结果不正确

时间:2016-01-10 17:02:00

标签: r lm

我使用biglmlm拟合模型,返回的模型摘要是相同的(只是格式化的差异)。但是,当我使用它们来预测相同的数据集时,它们会产生不同的结果。如果我使用模型系数手动手动计算它,lm模型是正确的。但是biglm模型不正确。

以下是模型:

m1 <- biglm(cost ~ d + v + zi, data = tl)

m2 <- lm(cost ~ d + v + zi, data = tl)

以下是模型摘要的一小部分:

m1: 

d:  coef 473.9196

m2: 

d: coef 4.739e+02

其余的模型系数是匹配的,并且与上面说明的相同。但是,当我使用模型进行预测时,结果是不同的:m1!= m1

t1$m1 <- predict(m1, t1)

t1$m2 <- predict(m2, t1)

我试图使用predict.biglm()但是错误地说该函数不存在。

我也查看过这篇文章(R: lm and biglm producing different answers)并确定不是原因。

数据集太大,所以我不知道如何在这里分享。而且我可能还需要一段时间才能首先对一些信息进行解码。

但这里有一小段比较结果,显示预测是完全不同的。

      m1         m2
1798.831,  2365.868
1801.074,  2368.112
1482.508,  2351.042

1 个答案:

答案 0 :(得分:0)

经过漫长的一天,我终于找到了问题所在。 我知道biglm方法需要训练和测试数据集有所有因子水平的记录。因此,当我处理数据集时,我将每个缺失因子级别的1条记录添加到数据集中(类似于上面引用的另一个线程发布的添加虚拟方法)。

然而(!!),我没有使用factor()函数更新因子水平。在这种情况下,biglm模型运行正常,语法正常。但模型预测结果不是!!

无论如何,在我更新因子水平后,它运作得很好。