测量RMSE的STD

时间:2015-05-11 16:12:31

标签: matlab time-series forecasting

我正在研究时间序列预测问题,我想确认计算均方根误差的标准偏差是否有意义。如果是这样,这是正确的方法吗?

STD_test = std(sqrt((y_real-y_pred).^2))

另外,假设模型的输出为100,RMSE 20和STD 10.这意味着实际值在[70,120]之间?

2 个答案:

答案 0 :(得分:0)

您的RMSE很好;但最后的结论不是!标准为10意味着您的输出大约有68%的可能性在+ - 标准之内。您可以参考this wiki link了解有关该规则的更多信息。

答案 1 :(得分:0)

术语y_real-y_pred是错误的向量。表达式对其中的每个元素进行平方,然后对其中的每个元素进行sqrts,从而具有abs()的效果。然后在错误向量上运行std()。因此,这是计算S.D. (绝对)错误。这是一个有意义的指标,但不太可能是你想要的。尝试:

e = y_real-y_pred;
MSE = mean(e.^2);
RMSE = sqrt(MSE);
sd = std(RMSE);

那将计算你想要的东西。但是,由于RMSE是标量值,因此值sd将为零,因此,为了回答问题的第一部分,不是没有意义。有意义的是看s.d.错误本身:

sd = std(e);

RMSE和s.d.有些相关,但它们是截然不同的。