测量 RMSE 的 STD

Measure the STD of RMSE

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

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

此外,假设模型的输出为 100,RMSE 为 20,STD 为 10。这意味着实际值介于 [70,120] ?

您的 RMSE 很好;但最后的结论是不是! std 为 10 意味着您的输出有大约 68% 的机会在 +- std 范围内。您可以参考this wiki link了解更多规则。

y_real-y_pred是错误向量。该表达式对它的每个元素进行平方,然后对它的每个元素进行平方,从而具有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。有点相关,但又不同。