我有一个真实的数据和预测数据,我想计算整体MAPE和MSE。数据是时间序列,每列代表不同周的数据。我预测每个项目的52周每一年的价值,如下所示。什么是最好的计算R中的整体错误。
real = matrix(
c("item1", "item2", "item3", "item4", .5, .7, 0.40, 0.6, 0.3, 0.29, 0.7, 0.09, 0.42, 0.032, 0.3, 0.37),
nrow=4,
ncol=4)
colnames(real) <- c("item", "week1", "week2", "week3")
predicted = matrix(
c("item1", "item2", "item3", "item4", .55, .67, 0.40, 0.69, 0.13, 0.9, 0.47, 0.19, 0.22, 0.033, 0.4, 0.37),
nrow=4,
ncol=4)
colnames(predicted) <- c("item", "week1", "week2", "week3")
答案 0 :(得分:0)
您如何获得预测值?用于获得预测值的模型可能基于最小化预测误差的一些函数(通常是MSE)。因此,如果计算预测值,则在拟合模型的某个位置计算MSE和MAPE上的残差和一些度量。您可以直接检索它们。
如果预测值恰好被扔进了你的膝盖并且你与拟合模型没有任何关系,那么你计算MSE和MAPE如下:
每个项目每周只有一条记录。因此,对于每个项目,您每周只能计算一个预测错误。根据您的应用程序,您可以选择计算每个项目或每周的MSE和MAPE。
这就是您的数据:
real <- matrix(
c(.5, .7, 0.40, 0.6, 0.3, 0.29, 0.7, 0.09, 0.42, 0.032, 0.3, 0.37),
nrow = 4, ncol = 3)
colnames(real) <- c("week1", "week2", "week3")
predicted <- matrix(
c(.55, .67, 0.40, 0.69, 0.13, 0.9, 0.47, 0.19, 0.22, 0.033, 0.4, 0.37),
nrow = 4, ncol = 3)
colnames(predicted) <- c("week1", "week2", "week3")
计算每个条目的(百分比/平方)错误:
pred_error <- real - predicted
pct_error <- pred_error/real
squared_error <- pred_error^2
计算MSE,MAPE:
# For per-item prediction errors
apply(squared_error, MARGIN = 1, mean) # MSE
apply(abs(pct_error), MARGIN = 1, mean) # MAPE
# For per-week prediction errors
apply(squared_error, MARGIN = 0, mean) # MSE
apply(abs(pct_error), MARGIN = 0, mean) # MAPE