Я пытаюсь использовать 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.