如何呈现时间序列预测的结果

机器算法验证 预测 交叉验证
2022-04-12 09:47:52

我正在做一些电力负荷预测,其中我使用了 5 折交叉验证并计算了每个拆分的 MAPE,如下所示:

NIC 12.4070736159999    12.4381016317022    13.012084025233 12.8202279490414    13.0173158393873
QLD 11.1222557214741    11.2011253786453    11.0949104146992    11.0204844071916    10.9866043178404
SA  18.1933345652622    16.5824118552869    16.9662739986567    22.0912790309511    18.7201687363193
TAS 10.9283795353769    10.8375790347786    10.9969285266692    10.65564127531  10.830705163829
VIC 14.4304582955302    13.749822370597 14.185836762341 14.1723784565888    14.8015564381059

我想在我的研究论文中展示结果,但我不知道如何展示结果。我想知道,除了为每个折叠显示 MAPE 之外,论文中还显示了什么?(如误差的标准偏差、置信区间等)

1个回答

不幸的是,标准预测文件通常只显示误差的平均值,因此您将显示 MAPE 的平均值。

然后作者经常开始讨论第三位有效数字的差异。如果没有错误变化的概念,这是没有意义的。因此,我非常建议您指出错误的变化,例如,通过给出标准偏差。

此外,(负载和其他)预测论文中的常见做法是呈现多个错误度量的结果,例如,或者除了.

我建议您浏览几篇负载预测论文,并从您在那里找到的内容中获得启发。


对于您的特定数据,一个不错且有用的可视化可能是这样的点图(注意我如何水平抖动点以减少过度绘制):

MAPE

mapes <- structure(c(12.4070736159999, 11.1222557214741, 18.1933345652622, 
10.9283795353769, 14.4304582955302, 12.4381016317022, 11.2011253786453, 
16.5824118552869, 10.8375790347786, 13.749822370597, 13.012084025233, 
11.0949104146992, 16.9662739986567, 10.9969285266692, 14.185836762341, 
12.8202279490414, 11.0204844071916, 22.0912790309511, 10.65564127531, 
14.1723784565888, 13.0173158393873, 10.9866043178404, 18.7201687363193, 
10.830705163829, 14.8015564381059), .Dim = c(5L, 5L), .Dimnames = list(
    c("NIC", "QLD", "SA", "TAS", "VIC"), NULL))

set.seed(1)
xx <- runif(nrow(mapes)*ncol(mapes),-0.3,0.3)+rep(1:ncol(mapes),nrow(mapes))
plot(xx,as.vector(mapes),pch=19,xaxt="n",ylab="",xlab="",main="MAPE")
axis(1,seq_along(rownames(mapes)),rownames(mapes))