当我使用交叉验证技术和我的数据时,它给了我两种类型的预测。 CVpredict和预测。两者之间有什么区别?我猜cvpredict是交叉验证预测但另一个是什么?
以下是我的一些代码:
crossvalpredict <- cv.lm(data = total,form.lm = formula(verim~X4+X4.1),m=5)
这就是结果:
fold 1
Observations in test set: 5
3 11 15 22 23
Predicted 28.02 32.21 26.53 25.1 21.28
cvpred 20.23 40.69 26.57 34.1 26.06
verim 30.00 31.00 28.00 24.0 20.00
CV residual 9.77 -9.69 1.43 -10.1 -6.06
Sum of squares = 330 Mean square = 66 n = 5
fold 2
Observations in test set: 5
2 7 21 24 25
Predicted 28.4 32.0 26.2 19.95 25.9
cvpred 52.0 81.8 36.3 14.28 90.1
verim 30.0 33.0 24.0 21.00 24.0
CV residual -22.0 -48.8 -12.3 6.72 -66.1
Sum of squares = 7428 Mean square = 1486 n = 5
fold 3
Observations in test set: 5
6 14 18 19 20
Predicted 34.48 36.93 19.0 27.79 25.13
cvpred 37.66 44.54 16.7 21.15 7.91
verim 33.00 35.00 18.0 31.00 26.00
CV residual -4.66 -9.54 1.3 9.85 18.09
Sum of squares = 539 Mean square = 108 n = 5
fold 4
Observations in test set: 5
1 4 5 9 13
Predicted 31.91 29.07 32.5 32.7685 28.9
cvpred 30.05 28.44 54.9 32.0465 11.4
verim 32.00 27.00 31.0 32.0000 30.0
CV residual 1.95 -1.44 -23.9 -0.0465 18.6
Sum of squares = 924 Mean square = 185 n = 5
fold 5
Observations in test set: 5
8 10 12 16 17
Predicted 27.8 30.28 26.0 27.856 35.14
cvpred 50.3 33.92 45.8 31.347 29.43
verim 28.0 30.00 24.0 31.000 38.00
CV residual -22.3 -3.92 -21.8 -0.347 8.57
Sum of squares = 1065 Mean square = 213 n = 5
Overall (Sum over all 5 folds)
ms
411
答案 0 :(得分:0)
您可以通过阅读正在使用的功能cv.lm
的帮助来检查。你会在那里找到这一段:
返回输入数据框,带有其他列 '预测'(使用所有观察值的预测值)和'cvpred' (交叉验证预测)。交叉验证残差和 方块('ss')和自由度('df')返回为 数据框的属性。
其中 Predicted 是使用所有观察值得出的预测值的向量。换句话说,它似乎是对你的培训&#34;做出的预测。数据或制作&#34;样本&#34;。
要检查是否可以使用lm
:
fit <- lm(verim~X4+X4.1, data=total)
并查看此模型的预测值:
predict(fit)
与cv.lm
当我在R中的 iris 数据集上尝试它时 - cv.lm()
预测返回的值与predict(lm)
相同。因此,在这种情况下 - 它们是样本内预测,其中模型适合并使用相同的观察结果。
答案 1 :(得分:0)
lm()不会给出“更好的结果”。我不确定predict()和lm.cv()可以如何相同。 Predict()返回每个样本的Y的期望值,该期望值是从拟合模型(协变量(X)及其相应的估计Beta值)估算得出的。这些Beta值以及模型误差(E)是根据该原始数据估算的。通过使用predict(),您会获得模型性能的过度乐观估计。这就是为什么它看起来更好的原因。使用迭代样本支持技术(例如交叉验证(CV)),可以更好(更现实)地评估模型性能。偏差最小的估计值来自留一法CV,不确定性最小(预测误差)的估计值来自2倍(K = 2)CV。