我正在努力解决R中的问题。我想用不同的方法评估很多时间序列的最佳预测指标,例如ME, RMSE, MAE, etc.
测量数据存储在一个列表中,该列表保存了这些数据框:ME, RMSE, MAE
...为了评估最佳方法,我想要总结不同方法的所有值,并将它们除以residuen_overall
。
例如,长度为2(ME):
( - 1 + 0.26)/ 2 - > -0.37
residuen_overall[[1]]
# ME RMSE MAE MPE MAPE
#naive -1 10.15 3.93 -22.69 40.14
residuen_overall[[2]]
# ME RMSE MAE MPE MAPE
#naive 0.26 7.84 6.33 -3.1 19.61
我的想法是创建一个循环,但它不起作用:
methods <- list("ME", "RMSE", "MAE", "MPE", "MAPE")
for(i in 1:length(residuen_overall)) {
cumsum(residuen_overall[[i]]$methods[i])
}
我希望有人可以帮助我,拜托! :)
答案 0 :(得分:1)
以下是您的数据(如果您将来使用dput()
,则可以更轻松地重新构建它们以用于测试目的):
residuen_overall <- list(
c(ME=-1,RMSE=10.16,MAE=3.93,MPE=-22.69,MAPE=40.14),
c(ME=0.26,RMSE=7.84,MAE=6.33,MPE=-3.1,MAPE=19.61))
“总结所有值并除以长度”只是计算平均值。
将您的列表收集到矩阵中:
r2 <- do.call(rbind,residuen_overall)
计算每列的平均值:
colMeans(r2)
## ME RMSE MAE MPE MAPE
## -0.370 9.000 5.130 -12.895 29.875
我仍然不清楚这将如何帮助你找出最好的方法......