无法在新数据集中找到预测值与实际值之间的差异

时间:2018-03-05 23:27:49

标签: r

我使用我的训练数据集构建了一个回归模型,我想使用这个模型来获取我的测试数据集中的预测值。因此,我可以将预测值与测试数据集中的实际值进行比较,并找出它们之间的差异。但是,我不知道如何在不使用for循环的情况下将测试数据集中的值插入到模型中。

这是我的回归模型:

lm.HOSPITAL <- lm(train_HOSPITAL$dailyQty ~ train_HOSPITAL$DC_STATE + train_HOSPITAL$TYPE_340B_CDE_DESC + train_HOSPITAL$geoState + train_HOSPITAL$IsFriSat)

2 个答案:

答案 0 :(得分:0)

首先预测您的火车或测试数据的响应 - 取决于您想要查看实际与预测(火车或测试数据)的差异的数据文件?

predict_train = predict(lm.HOSPITAL,newdata = train_HoSPITAL)

然后减去两个: 差异=预测 - train_HOSPITAL $ dailyQty

您也可以这样做,以查看测试数据的预测差异。

答案 1 :(得分:0)

您将面临的问题是原始模型中没有data参数。因此,没有框架来评估&#34; newdata&#34; predict中的论点。 (谁教你在$ - 公式中使用lm?)。相反,以这种方式运行模型:

lm.HOSPITAL <- lm( dailyQty ~ DC_STATE + TYPE_340B_CDE_DESC + geoState + IsFriSat, data=train_HOSPITAL)

然后使用newdata - 数据框使用predict在这些变量的级别上获得所需的响应:

 predict( lm.HOSPITAL , newdata= data.frame( DC_STATE=  # values
                                            , TYPE_340B_CDE_DESC= # values
                                            , geoState= #values
                                            , IsFriSat= #values
          )                                  )

或者,如果您已经拥有&#34; test_data&#34; -dataframe,那么只需:

predict( lm.HOSPITAL , newdata= test_data)