测量 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。有点相关,但又不同。
我正在处理时间序列预测问题,我想确认计算均方根误差的标准差是否有意义。如果是这样,这是正确的方法吗?
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。有点相关,但又不同。