Я пытаюсь исследовать и реализовать модель ARIMA для прогнозирования некоторых значений, что удивительно, что точность сортировки после сортировки по индексу date
настолько велика, что столбец
1-й подход [не отсортирован]
series = read_csv('43123391.csv', index_col='dt', parse_dates=['dt'])
autocorrelation_plot(series)
pyplot.show()
X = series.values
size = len(series) - 6
train, test = X[0:size], X[size:len(X)]
history = [x for x in train]
predictions = list()
for t in range(len(test)):
model = ARIMA(history, order=(3, 0, 1)) # q value is 1
model_fit = model.fit(disp=0)
output = model_fit.forecast()
yhat = output[0]
predictions.append(yhat)
obs = test[t]
history.append(obs)
print('predicted=%f, expected=%f' % (yhat, obs))
error = mean_squared_error(test, predictions)
print('Test MSE: %.3f' % error)
# plot
pyplot.plot(test)
pyplot.plot(predictions, color='red')
pyplot.show()
Автокорреляция
ТЕСТ
выполнение того же кода с датой сортировки
series = read_csv('43123391.csv', index_col='dt', parse_dates=['dt'])
series.sort_index(inplace=True, ascending=False)
и изменение параметров заказа на order=(3, 0, 0)
, так как выдает ошибку ValueError: The computed initial AR coefficients are not stationary
You should induce stationarity, choose a different model order, or you can
pass your own start_params
, если я оставьте его, как он есть, производит следующий
2-й подход [отсортировано]
ТЕСТ
несортированная дата выводит тест MSE значения 0.11
, а в отсортированном сценарии его 0.628
, если сортировка вызывает это разница или что-то еще?