Как построить модели ARMA или ARIMA? - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь использовать Statsmodel в python для просмотра прогнозов и графиков остаточных ошибок, когда я использую заказы (которые можно найти на фотографиях и в коде). Однако, когда я запускаю код, я продолжаю получать следующую ошибку для модели MA для моделей ARMA и ARIMA.

ValueError: The computed initial MA coefficients are not invertible. You should induce invertibility, choose a different model order, or you can pass your own start_params.

Как я могу решить проблему?

Дополнительные вопросы:

  • Как я смогу внедрить модель ARX в python?
  • Я выбрал правильный порядок для моделей или использовал правильные графики для получения заказов?
  • Можно ли создавать модели отдельно? как сначала использовать модель AR, а затем модель MA?
  • Как можно использовать это для извлечения признаков в машинном обучении?

Код: (переменная process_y является обработанным сигналом после этапа обработки сигнала)

result = adfuller(process_y)
print('ADF Statistic: %f' % result[0])
print('p-value: %f' % result[1])
print('Critical Values:')
for key, value in result[4].items():
    print('\t%s: %.3f' % (key, value))

if result[0] < result[4]["5%"]:
    print("Reject Ho - FRAN Time Series is Stationary")

    # fit model
    order = (1, 2)

    model = ARMA(process_y, order=order)  # Using Norm only
    # model = ARIMA(process_y, order=(1, 0, 2))  # Using Processed only

    model_fitted = model.fit()
    print('The lag value chose is: %s' % model_fitted.k_ar)
    print('The coefficients of the model are:\n %s' % model_fitted.params)

    # make prediction:
    predictions = model_fitted.predict()

    # errors:
    residuals = []
    # for i in range(len(process_y)):
    # for i in range(4962):
    for i in range(len(process_y) - model_fitted.k_ar):
        residuals.append(process_y[i] - predictions[i])
    # print('Residuals: ', residuals)

else:
    print("Failed to Reject Ho - FRAN Time Series is Non-Stationary")

Графики ACF и PACF

ACF PACF

График заказов

MA Order AR Order

Полное сообщение об ошибке

  Traceback (most recent call last):
  File "PyCharm Projects\Time-Domain response\test TSA ver. 9.py", line 899, in <module>
    model_fitted = model.fit()
  File "PyCharm Projects\venv\lib\site-packages\statsmodels\tsa\arima_model.py", line 985, in fit
    start_params = self._fit_start_params((k_ar, k_ma, k), method,
  File "PyCharm Projects\venv\lib\site-packages\statsmodels\tsa\arima_model.py", line 577, in _fit_start_params
    start_params = self._fit_start_params_hr(order, start_ar_lags)
  File "PyCharm Projects\venv\lib\site-packages\statsmodels\tsa\arima_model.py", line 562, in _fit_start_params_hr
    raise ValueError("The computed initial MA coefficients are not "
  ValueError: The computed initial MA coefficients are not invertible. You should induce invertibility, choose a different model order, or you can pass your own start_params.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...