Я пытаюсь построить модель ARIMA для моего набора данных, который находится в фрейме данных pandas, который состоит из данных с 23.03.2015 по 17.08.2009. Я отбросил строки (каждая строка представляет день), которые имеют значения 0 или nan, поэтому у меня всего около 1544 строк. Я передал время столбца в pd.datetime и сделал его индексом. Эти данные выглядят так:
time emails_received
2015-03-23 04:00:00+00:00 474483.000000
2015-03-24 04:00:00+00:00 378195.000000
График времени выглядит следующим образом
И автокорреляция выглядит следующим образом
После выполнения теста dbfuller он дал мне значение p 0,00005, что означает, что он, вероятно, является стационарным. Я создал массив поездов и тестов и поместил его в ARIMA.
x = fa2.values #fa is the name of the df that holds my dataset
train = x[0:1235] #train holds 80% of the values
test = x[1235:] #test with the remaining 20%
predictions = []
from statsmodels.tsa.ar_model import AR
from sklearn.metrics import mean_squared_error
model = AR(train)
model_fitted = model.fit()
predictions = model_fitted.predict(start = 1234, end = 1544)
plt.plot(test)
plt.plot(predictions, color = 'red')
Теперь моя проблема в том, что, когда я строю тест и прогноз, прогноз превращается в прямую линию, и это, очевидно, не выглядит точным,Я по-прежнему получаю те же результаты, когда играю со значениями p, d, q в ARIMA. Есть ли конкретная причина, почему это происходит? Здесь картина сюжета.