2016-10-01 159 views
2

給出兩個簡單的數據集:的R - 計算測試MSE給出從訓練集訓練模型和測試集

head(training_set) 
     x   y 
    1 1 2.167512 
    2 2 4.684017 
    3 3 3.702477 
    4 4 9.417312 
    5 5 9.424831 
    6 6 13.090983 

head(test_set) 
     x  y 
    1 1 2.068663 
    2 2 4.162103 
    3 3 5.080583 
    4 4 8.366680 
    5 5 8.344651 

我要適應訓練數據的線性迴歸線,並使用該(或係數)來計算測試數據中殘差的「測試MSE」或均方差,一旦該線在那裏適合。

model = lm(y~x,data=training_set) 
train_MSE = mean(model$residuals^2) 
test_MSE = ? 

回答

4

在這種情況下,它是更精確的稱呼它MSPE (mean squared prediction error)

mean((test_set$y - predict.lm(model, test_set))^2) 

這是一個更有用的度量,因爲所有的模型瞄準預測。我們需要一個具有最小MSPE的模型。在實踐中,如果我們有一個備用測試數據集,我們可以直接計算MSPE,如上所述。但是,我們經常沒有備用數據。在統計中,leave-one-out cross-validation是來自訓練數據集的MSPE的估計值。

還有其他幾個統計數據用於評估預測誤差,如Mallows's statisticAIC

+0

(+1)但是'APSE'有什麼意義?我從來沒有聽說過(雖然我可以猜測平均而不是平均值的原因)。 –

+0

所以MSPE類似於殘差平方的平均值? – BDillan

相關問題