我使用biglm
和lm
拟合模型,返回的模型摘要是相同的(只是格式化的差异)。但是,当我使用它们来预测相同的数据集时,它们会产生不同的结果。如果我使用模型系数手动手动计算它,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
答案 0 :(得分:0)
经过漫长的一天,我终于找到了问题所在。 我知道biglm方法需要训练和测试数据集有所有因子水平的记录。因此,当我处理数据集时,我将每个缺失因子级别的1条记录添加到数据集中(类似于上面引用的另一个线程发布的添加虚拟方法)。
然而(!!),我没有使用factor()函数更新因子水平。在这种情况下,biglm模型运行正常,语法正常。但模型预测结果不是!!
无论如何,在我更新因子水平后,它运作得很好。