2016-10-01 496 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

相关问题