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 [ ]:
Content source: antoinecarme/pyaf
Similar notebooks: