In [1]:
import pandas as pd
import numpy as np
import pyaf.ForecastEngine as autof
import pyaf.Bench.TS_datasets as tsds



%matplotlib inline

In [ ]:


In [2]:
b1 = tsds.load_airline_passengers()
df = b1.mPastData

In [3]:
import sys
sys.executable


Out[3]:
'/usr/bin/python3'

In [4]:
lEngine = autof.cForecastEngine()
lEngine.mOptions.mDebugCycles = False
lEngine


Out[4]:
<pyaf.ForecastEngine.cForecastEngine at 0x7f2f42df5d30>

In [5]:
lEngine.train(df , 'time' , 'AirPassengers' , 12)

In [6]:
lEngine.getModelInfo()

In [7]:
lEngine.standrdPlots()


/usr/lib/python3/dist-packages/matplotlib/__init__.py:1403: UserWarning:  This call to matplotlib.use() has no effect
because the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

  warnings.warn(_use_error_msg)

In [ ]:


In [8]:
lEngine.mSignalDecomposition.mTrPerfDetails


Out[8]:
Transformation Model Complexity FitCount FitL2 FitMAPE ForecastCount ForecastL2 ForecastMAPE TestCount TestL2 TestMAPE
0 Diff_AirPassengers Diff_AirPassengers_Lag1Trend_residue_zeroCycle... 97 96 10.252538 0.0440 24 10.394268 0.0205 12 19.022325 0.0402
1 _AirPassengers _AirPassengers_LinearTrend_residue_zeroCycle_r... 49 96 8.553917 0.0349 24 11.971762 0.0217 12 23.591230 0.0541
2 Diff_AirPassengers Diff_AirPassengers_Lag1Trend_residue_bestCycle... 105 96 17.589145 0.0799 24 12.047902 0.0236 12 18.406113 0.0383
3 _AirPassengers _AirPassengers_LinearTrend_residue_bestCycle_b... 57 96 8.394503 0.0352 24 13.559896 0.0254 12 25.991249 0.0596
4 _AirPassengers _AirPassengers_Lag1Trend_residue_zeroCycle_res... 65 96 8.396604 0.0350 24 12.345333 0.0267 12 14.419107 0.0281
5 _AirPassengers _AirPassengers_Lag1Trend_residue_bestCycle_byL... 73 96 8.318364 0.0361 24 13.110817 0.0273 12 15.211895 0.0287
6 _AirPassengers _AirPassengers_ConstantTrend_residue_bestCycle... 41 96 8.420780 0.0366 24 14.303302 0.0306 12 13.707527 0.0236
7 _AirPassengers _AirPassengers_ConstantTrend_residue_zeroCycle... 33 96 8.311652 0.0356 24 14.337898 0.0307 12 13.589454 0.0220
8 CumSum_AirPassengers CumSum_AirPassengers_PolyTrend_residue_zeroCyc... 81 96 11.567300 0.0499 24 16.476567 0.0317 12 14.087884 0.0241
9 CumSum_AirPassengers CumSum_AirPassengers_PolyTrend_residue_bestCyc... 89 96 21.673444 0.0860 24 17.827014 0.0342 12 22.003330 0.0467
10 Diff_AirPassengers Diff_AirPassengers_PolyTrend_residue_bestCycle... 89 96 31.820612 0.1562 24 16.390726 0.0361 12 61.920685 0.1316
11 _AirPassengers _AirPassengers_PolyTrend_residue_zeroCycle_res... 49 96 8.214920 0.0339 24 17.594341 0.0377 12 22.827817 0.0427
12 _AirPassengers _AirPassengers_PolyTrend_residue_bestCycle_byL... 57 96 8.186585 0.0348 24 17.848056 0.0377 12 23.114645 0.0445
13 CumSum_AirPassengers CumSum_AirPassengers_LinearTrend_residue_zeroC... 81 96 18.209179 0.0734 24 21.252543 0.0419 12 18.943246 0.0373
14 CumSum_AirPassengers CumSum_AirPassengers_ConstantTrend_residue_zer... 65 96 21.040682 0.0806 24 21.311653 0.0425 12 21.394417 0.0401
15 CumSum_AirPassengers CumSum_AirPassengers_Lag1Trend_residue_zeroCyc... 97 96 21.867772 0.0855 24 24.182586 0.0485 12 28.190701 0.0570
16 Diff_AirPassengers Diff_AirPassengers_PolyTrend_residue_zeroCycle... 81 96 25.299381 0.0909 24 24.000052 0.0489 12 38.902661 0.0780
17 CumSum_AirPassengers CumSum_AirPassengers_Lag1Trend_residue_bestCyc... 105 96 21.879152 0.0895 24 26.790010 0.0579 12 26.430111 0.0560
18 CumSum_AirPassengers CumSum_AirPassengers_LinearTrend_residue_bestC... 89 96 33.418130 0.1289 24 27.988826 0.0610 12 31.976578 0.0537
19 Diff_AirPassengers Diff_AirPassengers_LinearTrend_residue_bestCyc... 89 96 35.232134 0.1717 24 37.122000 0.0737 12 28.890796 0.0570
20 Diff_AirPassengers Diff_AirPassengers_ConstantTrend_residue_bestC... 73 96 36.073547 0.1758 24 38.111102 0.0754 12 30.962080 0.0628
21 CumSum_AirPassengers CumSum_AirPassengers_ConstantTrend_residue_bes... 73 96 79.506268 0.2134 24 32.825318 0.0759 12 28.308529 0.0537
22 RelDiff_AirPassengers RelDiff_AirPassengers_PolyTrend_residue_bestCy... 89 96 32.313697 0.1231 24 45.098130 0.0877 12 90.845638 0.1619
23 RelDiff_AirPassengers RelDiff_AirPassengers_PolyTrend_residue_zeroCy... 81 96 33.489097 0.1276 24 44.483414 0.0928 12 87.130519 0.1535
24 _AirPassengers _AirPassengers_Lag1Trend_residue_bestCycle_byL... 40 96 23.049622 0.0864 24 44.090023 0.0940 12 50.057324 0.0995
25 _AirPassengers _AirPassengers_Lag1Trend_residue_zeroCycle_res... 32 96 23.211438 0.0862 24 43.983425 0.0951 12 50.375258 0.1000
26 CumSum_AirPassengers CumSum_AirPassengers_Lag1Trend_residue_zeroCyc... 64 96 26.142638 0.0961 24 43.983425 0.0951 12 50.375258 0.1000
27 Diff_AirPassengers Diff_AirPassengers_Lag1Trend_residue_zeroCycle... 64 96 23.211438 0.0862 24 43.983425 0.0951 12 50.375258 0.1000
28 RelDiff_AirPassengers RelDiff_AirPassengers_Lag1Trend_residue_zeroCy... 64 96 23.211438 0.0862 24 43.983425 0.0951 12 50.375258 0.1000
29 CumSum_AirPassengers CumSum_AirPassengers_Lag1Trend_residue_bestCyc... 72 96 33.846925 0.1162 24 44.257369 0.0962 12 50.492004 0.1013
... ... ... ... ... ... ... ... ... ... ... ... ...
34 RelDiff_AirPassengers RelDiff_AirPassengers_PolyTrend_residue_zeroCy... 48 96 35.065969 0.1315 24 58.964585 0.1152 12 99.491759 0.1623
35 _AirPassengers _AirPassengers_LinearTrend_residue_bestCycle_b... 24 96 31.312656 0.1081 24 68.755326 0.1156 12 83.551295 0.1290
36 _AirPassengers _AirPassengers_LinearTrend_residue_zeroCycle_r... 16 96 31.342063 0.1088 24 68.663822 0.1159 12 83.686091 0.1279
37 Diff_AirPassengers Diff_AirPassengers_Lag1Trend_residue_bestCycle... 72 96 26.925963 0.0969 24 53.902052 0.1184 12 59.557742 0.1099
38 RelDiff_AirPassengers RelDiff_AirPassengers_LinearTrend_residue_best... 89 96 29.090737 0.1151 24 48.800556 0.1200 12 50.782500 0.1054
39 RelDiff_AirPassengers RelDiff_AirPassengers_Lag1Trend_residue_zeroCy... 97 96 23.940831 0.0821 24 56.009262 0.1227 12 57.429316 0.1120
40 RelDiff_AirPassengers RelDiff_AirPassengers_ConstantTrend_residue_be... 73 96 27.762982 0.1089 24 50.390711 0.1243 12 54.296614 0.1187
41 RelDiff_AirPassengers RelDiff_AirPassengers_LinearTrend_residue_zero... 81 96 30.162927 0.1195 24 50.648205 0.1259 12 52.983353 0.1136
42 RelDiff_AirPassengers RelDiff_AirPassengers_Lag1Trend_residue_bestCy... 72 96 27.510635 0.0974 24 58.975235 0.1279 12 55.951667 0.1048
43 Diff_AirPassengers Diff_AirPassengers_ConstantTrend_residue_zeroC... 32 96 32.262804 0.1054 24 73.949331 0.1283 12 90.542295 0.1407
44 RelDiff_AirPassengers RelDiff_AirPassengers_ConstantTrend_residue_ze... 65 96 28.763107 0.1132 24 52.473358 0.1308 12 57.168975 0.1283
45 Diff_AirPassengers Diff_AirPassengers_LinearTrend_residue_zeroCyc... 48 96 32.257147 0.1078 24 75.880689 0.1320 12 96.760276 0.1529
46 Diff_AirPassengers Diff_AirPassengers_ConstantTrend_residue_bestC... 40 96 32.978919 0.1055 24 76.695706 0.1335 12 93.814163 0.1483
47 Diff_AirPassengers Diff_AirPassengers_LinearTrend_residue_bestCyc... 56 96 32.753325 0.1074 24 78.746358 0.1371 12 100.224948 0.1611
48 RelDiff_AirPassengers RelDiff_AirPassengers_LinearTrend_residue_best... 56 96 31.914736 0.1210 24 60.047055 0.1383 12 65.617342 0.1319
49 RelDiff_AirPassengers RelDiff_AirPassengers_ConstantTrend_residue_be... 40 96 31.149742 0.1171 24 60.908951 0.1424 12 67.330067 0.1400
50 RelDiff_AirPassengers RelDiff_AirPassengers_LinearTrend_residue_zero... 48 96 32.715943 0.1247 24 60.930286 0.1442 12 66.779857 0.1381
51 RelDiff_AirPassengers RelDiff_AirPassengers_ConstantTrend_residue_ze... 32 96 31.847433 0.1202 24 62.006061 0.1484 12 69.098948 0.1462
52 _AirPassengers _AirPassengers_PolyTrend_residue_zeroCycle_res... 16 96 29.951514 0.1075 24 67.733169 0.1614 12 91.184105 0.2078
53 _AirPassengers _AirPassengers_PolyTrend_residue_bestCycle_byL... 24 96 29.914683 0.1069 24 67.827185 0.1620 12 91.186201 0.2074
54 Diff_AirPassengers Diff_AirPassengers_PolyTrend_residue_zeroCycle... 48 96 31.787739 0.1105 24 94.328647 0.1779 12 172.802943 0.3535
55 Diff_AirPassengers Diff_AirPassengers_PolyTrend_residue_bestCycle... 56 96 31.927123 0.1089 24 97.850764 0.1885 12 177.113415 0.3646
56 CumSum_AirPassengers CumSum_AirPassengers_PolyTrend_residue_bestCyc... 56 96 102.635048 0.2498 24 85.659451 0.2101 12 126.923798 0.2943
57 CumSum_AirPassengers CumSum_AirPassengers_PolyTrend_residue_zeroCyc... 48 96 102.344552 0.2354 24 85.641879 0.2138 12 117.915551 0.2691
58 _AirPassengers _AirPassengers_ConstantTrend_residue_zeroCycle... 0 96 71.542662 0.3089 24 171.479464 0.4166 12 224.797196 0.4897
59 _AirPassengers _AirPassengers_ConstantTrend_residue_bestCycle... 8 96 71.536237 0.3090 24 171.457605 0.4168 12 224.928598 0.4898
60 CumSum_AirPassengers CumSum_AirPassengers_LinearTrend_residue_zeroC... 48 96 90.574619 0.3124 24 195.402910 0.4856 12 249.041225 0.5501
61 CumSum_AirPassengers CumSum_AirPassengers_LinearTrend_residue_bestC... 56 96 107.667672 0.4240 24 205.411861 0.4956 12 266.497008 0.5648
62 CumSum_AirPassengers CumSum_AirPassengers_ConstantTrend_residue_bes... 40 96 938.410103 2.0289 24 455.991163 0.9788 12 553.715678 1.1488
63 CumSum_AirPassengers CumSum_AirPassengers_ConstantTrend_residue_zer... 32 96 892.297373 1.7764 24 379.329068 1.0000 12 433.519704 1.0000

64 rows × 12 columns


In [9]:
dfapp = df.copy();
dfapp.tail()


Out[9]:
time AirPassengers
ID
128 1959.583333 559
129 1959.666667 463
130 1959.750000 407
131 1959.833333 362
132 1959.916667 405

In [10]:
dfapp1 = lEngine.forecast(dfapp, 15);

In [11]:
dfapp1.info()


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 147 entries, 0 to 146
Data columns (total 23 columns):
AirPassengers                                                          132 non-null float64
_AirPassengers                                                         147 non-null float64
time                                                                   147 non-null float64
row_number                                                             147 non-null int64
time_Normalized                                                        147 non-null float64
_AirPassengers_LinearTrend                                             147 non-null float64
_AirPassengers_LinearTrend_residue                                     147 non-null float64
_AirPassengers_LinearTrend_residue_zeroCycle                           147 non-null float64
_AirPassengers_LinearTrend_residue_zeroCycle_residue                   147 non-null float64
_AirPassengers_LinearTrend_residue_zeroCycle_residue_AR(33)            147 non-null float64
_AirPassengers_LinearTrend_residue_zeroCycle_residue_AR(33)_residue    147 non-null float64
_AirPassengers_Trend                                                   147 non-null float64
_AirPassengers_Trend_residue                                           147 non-null float64
_AirPassengers_Cycle                                                   147 non-null float64
_AirPassengers_Cycle_residue                                           147 non-null float64
_AirPassengers_AR                                                      147 non-null float64
_AirPassengers_AR_residue                                              147 non-null float64
_AirPassengers_TransformedForecast                                     147 non-null float64
_AirPassengers_TransformedResidue                                      147 non-null float64
AirPassengers_Forecast                                                 147 non-null float64
AirPassengers_Residue                                                  147 non-null float64
AirPassengers_Forecast_Lower_Bound                                     12 non-null float64
AirPassengers_Forecast_Upper_Bound                                     12 non-null float64
dtypes: float64(22), int64(1)
memory usage: 26.5 KB

In [12]:
dfapp1.tail(15)


Out[12]:
AirPassengers _AirPassengers time row_number time_Normalized _AirPassengers_LinearTrend _AirPassengers_LinearTrend_residue _AirPassengers_LinearTrend_residue_zeroCycle _AirPassengers_LinearTrend_residue_zeroCycle_residue _AirPassengers_LinearTrend_residue_zeroCycle_residue_AR(33) ... _AirPassengers_Cycle _AirPassengers_Cycle_residue _AirPassengers_AR _AirPassengers_AR_residue _AirPassengers_TransformedForecast _AirPassengers_TransformedResidue AirPassengers_Forecast AirPassengers_Residue AirPassengers_Forecast_Lower_Bound AirPassengers_Forecast_Upper_Bound
132 NaN 404.192769 1960.000000 132 1.389474 389.473848 14.718921 0.0 14.718921 14.718921 ... 0.0 14.718921 14.718921 7.105427e-15 404.192769 0.000000 404.192769 0.000000 380.249245 428.136293
133 NaN 362.272366 1960.083333 133 1.400000 391.553913 -29.281547 0.0 -29.281547 -29.281547 ... 0.0 -29.281547 -29.281547 2.131628e-14 362.272366 0.000000 362.272366 0.000000 324.362525 400.182206
134 NaN 407.366006 1960.166667 134 1.410526 393.633978 13.732027 0.0 13.732027 13.732027 ... 0.0 13.732027 13.732027 7.105427e-15 407.366006 0.000000 407.366006 0.000000 356.958206 457.773805
135 NaN 392.377378 1960.250000 135 1.421053 395.714044 -3.336666 0.0 -3.336666 -3.336666 ... 0.0 -3.336666 -3.336666 -4.440892e-16 392.377378 0.000000 392.377378 0.000000 269.958712 514.796044
136 NaN 426.008214 1960.333333 136 1.431579 397.794109 28.214105 0.0 28.214105 28.214105 ... 0.0 28.214105 28.214105 -7.105427e-15 426.008214 0.000000 426.008214 0.000000 92.099590 759.916838
137 NaN 494.632588 1960.416667 137 1.442105 399.874174 94.758414 0.0 94.758414 94.758414 ... 0.0 94.758414 94.758414 0.000000e+00 494.632588 0.000000 494.632588 0.000000 -234.068571 1223.333748
138 NaN 561.124184 1960.500000 138 1.452632 401.954239 159.169945 0.0 159.169945 159.169945 ... 0.0 159.169945 159.169945 5.684342e-14 561.124184 0.000000 561.124184 0.000000 -958.653671 2080.902040
139 NaN 558.395101 1960.583333 139 1.463158 404.034305 154.360796 0.0 154.360796 154.360796 ... 0.0 154.360796 154.360796 5.684342e-14 558.395101 0.000000 558.395101 0.000000 -2316.986477 3433.776679
140 NaN 437.986533 1960.666667 140 1.473684 406.114370 31.872163 0.0 31.872163 31.872163 ... 0.0 31.872163 31.872163 1.065814e-14 437.986533 0.000000 437.986533 0.000000 -4184.178022 5060.151088
141 NaN 374.130972 1960.750000 141 1.484211 408.194435 -34.063464 0.0 -34.063464 -34.063464 ... 0.0 -34.063464 -34.063464 -2.131628e-14 374.130972 0.000000 374.130972 0.000000 -5161.887838 5910.149781
142 NaN 319.906897 1960.833333 142 1.494737 410.274500 -90.367603 0.0 -90.367603 -90.367603 ... 0.0 -90.367603 -90.367603 -1.421085e-14 319.906897 0.000000 319.906897 0.000000 -4815.057500 5454.871294
143 NaN 355.980739 1960.916667 143 1.505263 412.354566 -56.373827 0.0 -56.373827 -56.373827 ... 0.0 -56.373827 -56.373827 -2.131628e-14 355.980739 0.000000 355.980739 0.000000 -7159.415608 7871.377085
144 NaN 355.144541 1961.000000 144 1.515789 414.434631 -59.290090 0.0 -59.290090 -59.290090 ... 0.0 -59.290090 -59.290090 -7.105427e-15 355.144541 0.000000 355.144541 0.000000 NaN NaN
145 NaN 316.805509 1961.083333 145 1.526316 416.514696 -99.709188 0.0 -99.709188 -99.709188 ... 0.0 -99.709188 -99.709188 -2.842171e-14 316.805509 0.000000 316.805509 0.000000 NaN NaN
146 NaN 316.805509 1961.166667 146 1.536842 418.594762 -101.789253 0.0 -101.789253 -61.012736 ... 0.0 -101.789253 -61.012736 -4.077652e+01 357.582025 -40.776516 357.582025 -40.776516 NaN NaN

15 rows × 23 columns


In [13]:
dfapp1.describe()


Out[13]:
AirPassengers _AirPassengers time row_number time_Normalized _AirPassengers_LinearTrend _AirPassengers_LinearTrend_residue _AirPassengers_LinearTrend_residue_zeroCycle _AirPassengers_LinearTrend_residue_zeroCycle_residue _AirPassengers_LinearTrend_residue_zeroCycle_residue_AR(33) ... _AirPassengers_Cycle _AirPassengers_Cycle_residue _AirPassengers_AR _AirPassengers_AR_residue _AirPassengers_TransformedForecast _AirPassengers_TransformedResidue AirPassengers_Forecast AirPassengers_Residue AirPassengers_Forecast_Lower_Bound AirPassengers_Forecast_Upper_Bound
count 132.000000 147.000000 147.000000 147.000000 147.000000 147.000000 147.000000 147.0 147.000000 147.000000 ... 147.0 147.000000 147.000000 147.000000 147.000000 147.000000 147.000000 147.000000 12.000000 12.000000
mean 262.492424 277.089315 1955.083333 73.000000 0.768421 266.749997 10.339318 0.0 10.339318 8.039907 ... 0.0 10.339318 8.039907 2.299410 274.789905 2.299410 274.789905 2.299410 -1950.551617 2799.613908
std 106.625799 112.659846 3.548278 42.579338 0.448204 88.567801 50.567488 0.0 50.567488 48.298901 ... 0.0 50.567488 48.298901 11.112153 109.409820 11.112153 109.409820 11.112153 2692.404029 2649.325026
min 104.000000 104.000000 1949.000000 0.000000 0.000000 114.905233 -101.789253 0.0 -101.789253 -99.709188 ... 0.0 -101.789253 -99.709188 -40.776516 112.465107 -40.776516 112.465107 -40.776516 -7159.415608 400.182206
25% 176.500000 180.500000 1952.041667 36.500000 0.384211 190.827615 -19.806376 0.0 -19.806376 -21.085631 ... 0.0 -19.806376 -21.085631 -2.792934 186.132329 -2.792934 186.132329 -2.792934 -4341.897892 500.540485
50% 239.500000 269.000000 1955.083333 73.000000 0.768421 266.749997 0.447718 0.0 0.447718 -2.440126 ... 0.0 0.447718 -2.440126 0.427739 265.953709 0.427739 265.953709 0.427739 -596.361121 1652.117894
75% 343.250000 355.990369 1958.125000 109.500000 1.152632 342.672379 24.506544 0.0 24.506544 19.422132 ... 0.0 24.506544 19.422132 7.654839 353.957028 7.654839 353.957028 7.654839 283.559665 5158.831140
max 559.000000 561.124184 1961.166667 146.000000 1.536842 418.594762 179.926478 0.0 179.926478 168.195772 ... 0.0 179.926478 168.195772 39.945485 561.124184 39.945485 561.124184 39.945485 380.249245 7871.377085

8 rows × 23 columns


In [ ]: