Wybór odpowiedniego modelu

Analiza szeregów czasowych w Pythonie

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Identyfikacja rzędu modelu AR

  • Rząd modelu AR(p) zazwyczaj nie jest znany
  • Dwie metody wyznaczania rzędu
    • Częściowa funkcja autokorelacji
    • Kryteria informacyjne
Analiza szeregów czasowych w Pythonie

Częściowa funkcja autokorelacji (PACF)

Analiza szeregów czasowych w Pythonie

Wykres PACF w Pythonie

  • Tak jak ACF, ale zamiast plt_acf używa się plot_pacf
  • Importowanie modułu
    from statsmodels.graphics.tsaplots import plot_pacf
    
  • Wykres PACF
    plot_pacf(x, lags= 20, alpha=0.05)
    
Analiza szeregów czasowych w Pythonie

Porównanie PACF dla różnych modeli AR

  • AR(1)

  • AR(3)

  • AR(2)

  • Biały szum

Analiza szeregów czasowych w Pythonie

Kryteria informacyjne

  • Kryteria informacyjne: korygują dobroć dopasowania o liczbę parametrów
  • Dwie popularne miary skorygowanej dobroci dopasowania
    • AIC (kryterium informacyjne Akaikego)
    • BIC (bayesowskie kryterium informacyjne)
Analiza szeregów czasowych w Pythonie

Kryteria informacyjne

  • Wyniki estymacji
Analiza szeregów czasowych w Pythonie

Pobieranie kryteriów informacyjnych ze statsmodels

  • Wcześniej nauczono się dopasowywać model AR
    from statsmodels.tsa.arima_model import ARIMA
    mod = ARIMA(simulated_data, order=(1,0))
    result = mod.fit()
    
  • Pełne wyniki
    result.summary()
    
  • Lub tylko parametry
    result.params
    
  • AIC i BIC
    result.aic
    result.bic
    
Analiza szeregów czasowych w Pythonie

Kryteria informacyjne

  • Dopasowanie symulowanego AR(3) do różnych modeli AR(p)
  • Wybór p z najniższym BIC
Analiza szeregów czasowych w Pythonie

Czas na ćwiczenia!

Analiza szeregów czasowych w Pythonie

Preparing Video For Download...