2017-05-08 34 views
1

當我使用交叉驗證技術和我的數據時,它給了我兩種類型的預測。 CVpredict和預測。那兩者之間有什麼區別?我想cvpredict是交叉驗證預測,但其他是什麼?R - 交叉驗證中的兩種預測

下面是我的一些代碼:

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

您可以檢查通過讀取你使用cv.lm功能的幫助。在那裏,你會發現這一段:

輸入數據幀返回,與其他列 「預測」(預測使用所有觀測值)和「cvpred」 (交叉驗證的預測)。數據幀的屬性返回正方形('ss')和自由度('df')的交叉驗證殘差和 作爲 屬性。

這表示,預測是使用所有的意見中提出的預測值的向量。換句話說,它似乎是對你的「訓練」數據做出的預測,或者是「在樣本中」做出的預測。

要請檢查是否是這樣的話,你可以使用lm符合相同的模式:

fit <- lm(verim~X4+X4.1, data=total) 

看看是否從這個模型的預測值:

predict(fit) 

是相同的返回cv.lm

當我嘗試在虹膜數據集中R -預測的返回的值與predict(lm)相同。因此,在這種情況下 - 它們是樣本內預測,其中模型使用相同的觀察值進行擬合和使用。

+0

是的,它給出了相同的觀察。 'lm'的結果比cross val好得多。感謝你的回答。讚賞。 – Ege