在这种典型情况下预测的最佳方法

时间:2017-06-26 18:10:31

标签: r statistics time-series prediction forecasting

我正在建立一个时间序列预测模型。我拥有的数据有一个变量' amount'这是运输材料的运费。我有10年的月度数据。 这里的挑战是一个月的运费账单金额不一定反映仅在该月运输的材料的费用。有时,材料是碎片运输的,并在接下来的2-3个月内充电,这些钞票意外地高,随机扰乱时间序列模式。例如,如果我有2017年3月的比尔,它可能也有1月和2月的一些金额。 我尝试了ARIMA并获得了40%的MAPE。我尝试过Croston方法,MAPE在23%-32%之间变化。滚动窗口预测会对此有所帮助吗?或者其他任何建议。

编辑1 - 我添加了数据集(2008年 - 2016年)。我设法从我的教授那里获得月度收入数据。所以,我尝试使用TSLM函数的双变量模型,这给了我67%的R平方。它低于他的预期。

yearmon Paid.Amount revenue
8-Jan   1936599.88  2937700
8-Feb   1844486.91  3074900
8-Mar   1735122.05  3690000
8-Apr   1279519.88  3097700
8-May   1539967.05  3077100
8-Jun   1231146.36  3352300
8-Jul   1162991.84  2400600
8-Aug   1263879.69  3050000
8-Sep   1244323     3899200
8-Oct   1424559.93  3533000
8-Nov   898217.92   2723400
8-Dec   1085732.89  4055400
9-Jan   1029221.93  2486600
9-Feb   876441.65   2101400
9-Mar   880441.37   2998400
9-Apr   722948.96   1996500
9-May   958005.43   1807400
9-Jun   610958.71   2332300
9-Jul   695254.7    2280900
9-Aug   756439.4    2020500
9-Sep   926815.65   3231500
9-Oct   924445.94   2294200
9-Nov   830403.35   2782700
9-Dec   925630.38   3246000
10-Jan  700777.04   2135400
10-Feb  548469.87   1962800
10-Mar  696256.42   2641700
10-Apr  695798.95   2025700
10-May  704871.44   1996500
10-Jun  728251.49   2590600
10-Jul  664962.06   1984500
10-Aug  727306.82   2421300
10-Sep  720462.6    3084000
10-Oct  999328.49   2874300
10-Nov  950702.54   3069200
10-Dec  984782.65   3704600
11-Jan  864608.73   2976800
11-Feb  711251.25   2981700
11-Mar  1145917.13  3552500
11-Apr  844124.97   2684600
11-May  865543.97   2667900
11-Jun  883278.98   2707300
11-Jul  834070.34   2493400
11-Aug  1116866.09  3023300
11-Sep  1151143.55  3581100
11-Oct  1351395.01  3217800
11-Nov  1118297.76  3239000
11-Dec  1374179.71  4637800
12-Jan  989117.07   3313000
12-Feb  927470.54   2530600
12-Mar  1069185.01  3496500
12-Apr  1009312.54  2403000
12-May  1022559.87  2638500
12-Jun  961677.71   3246000
12-Jul  834523.02   2272300
12-Aug  1081960.39  2886000
12-Sep  1107927.72  3890100
12-Oct  1093140.22  2682100
12-Nov  1310195.61  3292000
12-Dec  1344106.8   4960100
13-Jan  1030537.47  3114800
13-Feb  911014.19   3121300
13-Mar  930071.08   3490900
13-Apr  890881.25   2542800
13-May  876954.67   2354800
13-Jun  915720.02   3382700
13-Jul  908514.48   2310000
13-Aug  1043391.95  3087300
13-Sep  1093640.35  3869300
13-Oct  1197865.65  3170800
13-Nov  1216958.3   3875300
13-Dec  1461027.39  5801000
14-Jan  1242969.8   2970300
14-Feb  1054214.44  3595300
14-Mar  1171459.28  4012800
14-Apr  990720.44   2916700
14-May  891504.63   2794200
14-Jun  936850.28   3501000
14-Jul  985009.09   2689100
14-Aug  1229039.59  3199000
14-Sep  1272825     4605200
14-Oct  1274631.05  3649500
14-Nov  1493390.61  4171600
14-Dec  1810523.68  6043700
15-Jan  1225779.44  3526300
15-Feb  1066156.45  3374900
15-Mar  1158659.52  4141200
15-Apr  1085067.52  3058800
15-May  1243264.14  2932700
15-Jun  1375846.69  3581800
15-Jul  1230235.7   3210200
15-Aug  1242221.75  3348200
15-Sep  1372310.27  4443200
15-Oct  1489968.27  3254200
15-Nov  1520498.52  4086200
15-Dec  1873884.03  7100500
16-Jan  1225046.91  2922600
16-Feb  1169703.36  3314600
16-Mar  1345611.1   4597900
16-Apr  1182650.19  3057000
16-May  1368704.21  3599400
16-Jun  1485036.6   4292300
16-Jul  1194201.57  3189600
16-Aug  1378889.12  3289200
16-Sep  1533056.53  4666700
16-Oct  1398696.43  3837600
16-Nov  1742668.73  4234900
16-Dec  2162712.41  6418700

如果有人能提出更好的方法来预测Paid.Amount,我将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:0)

SANKET,

您可以下载所有结果here。 Details.htm是对构建的模型的审计。该模型通过收入变量中的滞后变量支持这一点,表明其对Y(付费)的影响存在延迟。从第1期开始下降而在第19期开始上升的时间趋势不是由收入来解释的,而是由于省略的因果关系。你有解释吗?如果是这样,那么确定并添加该因素作为因果关系。

季节性较弱,但Autobox确定某些月份具有重要性(即8,10和11均高于平均水平)。

滞后1和2的AR2也会在使用更多延迟收入滞后4时起作用。(参见rhside.txt显示纯右手方程,所有因子都表示为纯回归。< / p>

在第17期确定了一个异常值,在89处增加了一个水平位移(再次没有通过收入解释,因此可能是另一个省略的因果关系)。

Equation

您没有提供收入预测,因此我们允许Autobox(我所属的软件)构建模型并预测未来价值。可以进行一项可能的改进,以提供更好的收入预测,因为这也是模型/预测!收入变量并没有停留在模型中,然后我们对其进行约束,无论如何,随着模型演变为包含一些确定性变量和AR因子,它变得非常重要。

收入和支付的双变量标准化情节显示出强烈的积极关系,但只知道你正在寻找同时存在的关系,它们也可能会在滞后时产生影响。

Bivariate Normalized Scatter Plot

双变量线图支持x和y之间的这种滞后关系,并在几个月后出现凹凸。

Bivariate Normalized Line plot

以下是预测enter image description here

答案 1 :(得分:0)

以下是我一直用于相对简单的1步月度预测的初始方法。之后可以花更多的时间来尝试模拟这个问题的一些更难的特征。

在这种情况下,我做了以下事情:

  1. 删除前两年的数据。有明确的制度 改变或至少改变趋势似乎不太可能 近期预测。
  2. 我使用对数正态变换转换了数据。只是一个 数据的快速眼球向我建议可能会有一些 非线性增长正在发生。
  3. 将数据分解为初始拟合,验证和 测试(在这种情况下,我没有留出数据进行测试)。
  4. 准备要评估的模型集合。标准我 选择评估它们是MSE提前一步预测。
  5. 对这些模型执行交叉验证程序。该 以下两个链接解释了可以很好地工作的过程 时间序列。 Time-Series Cross Validation - 1 Time-Series Cross Validation - 2
  6. 我选择了交叉验证错误最低的模型。 如果我保留了测试数据集,我会尝试预测它 确认性能与期间一样好或几乎一样好 交叉验证期。
  7. 在最佳模型的验证期间,rsqr为83.4%。该 MAE是86,478美元。 MAPE为6.9%。
  8. 我测试过的各种季节性ARIMA模型的最佳模型,最终得出: [0,0,1] [1,1,1] 12 所以MA = 1,SAR = 1,SDiff = 1,SMA = 1,其中季节为12。

    Cross Validation Results