本文介绍MSE(均方差),并使用两种R方法实现。
MSE(均方差)
判定预测模型的准确度的常用方法是均方差MSE( mean squared error)。计算公示为:
MSE = (1/n) * Σ(actual – prediction)^2
- Σ 求和符号
- n 样本大小
- actual 实际数据值
- prediction 预测数据值
mse越小,预测模型准确性越高。
R计算MSE
依赖给定的数据格式,有两种方式很容易计算回归模型的MSE.
从回归模型计算
如果已经有了拟合回归模型,则可以很方便获得MSE:
#load mtcars dataset
data(mtcars)
#fit regression model
model <- lm(mpg~disp+hp, data=mtcars)
#get model summary
model_summ <-summary(model)
我们可以通过下面代码计算MSE:
#calculate MSE
mean(model_summ$residuals^2)
# [1] 8.85917
返回8.85917即为MSE的值。
从预测值、实际值列表中计算
有时我们只有预测值和实际值列表:
data <- data.frame(pred = predict(model), actual = mtcars$mpg)
head(data)
# pred actual
# Mazda RX4 23.14809 21.0
# Mazda RX4 Wag 23.14809 21.0
# Datsun 710 25.14838 22.8
# Hornet 4 Drive 20.17416 21.4
# Hornet Sportabout 15.46423 18.7
# Valiant 21.29978 18.1
这是我们通过上面的公式进行计算:
#calculate MSE
mean((data$actual - data$pred)^2)
# [1] 8.85917
我们看到与前面的计算结果一致。