Прогнозирование временных рядов Python | Постоянно растущие прогнозы - PullRequest
1 голос
/ 06 января

Это может показаться глупым вопросом, но я пробовал методы прогнозирования временных рядов, и как-то оба метода (Пророк и Авто-Арима), которые я пробовал, казалось, давали прогнозы в возрастающем порядке?

Какие могут быть возможные причины для получения постоянно растущих прогнозов? Я думаю, что это может быть связано с фактором сезонности, но я не совсем уверен.

Я могу поделиться кодом, если требуется.

Код выглядит следующим образом:

data_v2 = pd.read_csv('data_v1.csv')
data_v2.shape
data_v2.head()
data_v2.dtypes

data_v2['Date'] = pd.to_datetime(data_v2.Date,format='%m/%d/%Y')
data_v2.index = data_v2['Date']

#preparing data
data_v2.rename(columns={'Invoice Amount': 'y', 'Date': 'ds'}, inplace=True)
data_v2.head()
#train and validation
train = data_v2[:16]
train.shape
valid = data_v2[16:]
valid.shape

#fit the model
model = Prophet()
model.fit(train)

#predictions
close_prices = model.make_future_dataframe(periods=len(valid))
forecast = model.predict(close_prices)
forecast.head()
#rmse
forecast_valid = forecast['yhat'][16:]
rms=np.sqrt(np.mean(np.power((np.array(valid['y'])-np.array(forecast_valid)),2)))
print(rms)

valid['Predictions'] = 0
valid['Predictions'] = forecast_valid.values

plt.plot(train['y'])
plt.plot(valid[['y', 'Predictions']])


# Plot the forecast
f, ax = plt.subplots(1)
f.set_figheight(5)
f.set_figwidth(15)
fig = model.plot(forecast, ax=ax)
plt.show()

fig = model.plot_components(forecast)

Ниже приведены прогнозы:

0     30505.608982
1     31618.779403
2     32731.949825
3     33737.394077
4     34850.564499
5     35927.826201
6     37040.996625
7     38118.258327
8     39231.428751
9     40344.599176
10    41421.860877
11    42535.031302
12    43612.293004
13    44725.463429
14    45838.633854
15    46844.078108
16    46879.986832
17    46915.895555
18    46951.804279
19    46987.713002
20    47023.621725
21    47059.530449
22    47095.439172
23    47131.347896

Ниже приведены фактические значения:

2016-12-01    63662.5
2017-01-01    35167.5
2017-02-01    24810.0
2017-03-01    25352.5
2017-04-01    19355.0
2017-05-01    21860.0
2017-06-01    21420.0
2017-07-01    30260.0
2017-08-01    26810.0
2017-09-01    29510.0
2017-10-01    84722.5
2017-11-01    71706.5
2017-12-01    44935.0
2018-01-01    43835.0
2018-02-01    35405.0
2018-03-01    40307.5
2018-04-01     26665.0
2018-05-01     27395.0
2018-06-01     89142.5
2018-07-01    100497.5
2018-08-01     41722.5
2018-09-01     30760.0
2018-10-01    183562.5
2018-11-01     90650.0

Заранее спасибо!

...