Почему ARIMA от statsmodels (1,0,0) не эквивалентен AutoReg (1)?

#python #statistics #time-series #statsmodels

#python #Статистика #временные ряды #statsmodels

Вопрос:

Я сравниваю результаты из arima_model и ar_model. Вот что я не могу понять:

  • Почему результирующие коэффициенты отличаются? Это из-за метода оценки? (Разные настройки свойства метода fit() не дают идентичных результатов)
  • После получения коэффициентов и обратного тестирования подогнанных результатов я сопоставляю их с AR (1), но не с ARIMA (1). Почему?
  • Что ARIMA на самом деле делает в этой простейшей настройке, разве она не должна быть способна воспроизводить AR?
     import pandas_datareader as pdr
    import datetime 
    aapl = pdr.get_data_yahoo('AAPL', start=datetime.datetime(2006,1,1), end=datetime.datetime(2020,6,30))
    
    aapl = aapl.resample('M').mean()
    aapl['close_pct_change'] = aapl['Close'].pct_change()
    
    from statsmodels.tsa.arima_model import ARIMA
    mod = ARIMA(aapl['close_pct_change'][1:], order=(1,0,0))
    res1 = mod.fit(method='mle')
    print(res1.summary())
    
    from statsmodels.tsa.ar_model import AutoReg, ar_select_order
    mod = AutoReg(aapl['close_pct_change'][1:], 1)
    res2 = mod.fit()
    print(res2.summary())
    
    fitted_check1 = res1.params[0]   res1.params[1]*aapl['close_pct_change'][1:].shift(1)
    print(fitted_check1[1:] - res1.fittedvalues)
    
    fitted_check2 = res2.params[0]   res2.params[1]*aapl['close_pct_change'][1:].shift(1)
    print(fitted_check2[1:] - res2.fittedvalues)

  

Ответ №1:

  • Почему результирующие коэффициенты отличаются? Это из-за метода оценки? (Разные настройки свойства метода fit() не дают идентичных результатов)

AutoReg оценивает параметры с использованием OLS, который является условным (при первом наблюдении) с максимальной вероятностью. ARIMA реализует полное максимальное правдоподобие и, таким образом, использует доступную информацию из первого наблюдения при оценке параметров. В очень больших выборках коэффициенты должны быть очень близки, и они равны по своему асимптотическому пределу. НА практике они всегда будут отличаться, хотя разница обычно должна быть незначительной.

  • После получения коэффициентов и обратного тестирования подогнанных результатов я сопоставляю их с AR (1), но не с ARIMA (1). Почему?

Две модели используют разные представления. AutoReg(1) модель Y(t) = a b Y(t-1) eps(t) . ARIMA(1,0,0) указывается как (Y(t) - c) = b * (Y(t-1) - c) eps(t) . Если |b|<1 , то в пределе большой выборки c = a / (1-b) , хотя в конечных выборках это тождество не будет точно выполняться.

  • Что ARIMA на самом деле делает в этой простейшей настройке, разве она не должна быть способна воспроизводить AR?

Нет. ARIMA использует платформу Statespace statsmodels, которая может оценивать широкий спектр моделей с использованием Gaussian MLE.

ARIMA по сути, это частный случай, SARIMAX и эта тетрадь обеспечивает хорошее введение.