Menjadikan deret waktu stasioner

Model ARIMA di Python

James Fulton

Climate informatics researcher

Ringkasan

  • Uji statistik untuk stasioneritas
  • Menjadikan data stasioner
Model ARIMA di Python

Uji Augmented Dickey-Fuller

  • Uji untuk non-stasioneritas tren
  • Hipotesis nol: deret waktu tidak stasioner
Model ARIMA di Python

Menerapkan uji adfuller

from statsmodels.tsa.stattools import adfuller

results = adfuller(df['close'])
Model ARIMA di Python

Menafsirkan hasil uji

print(results)
(-1.34, 0.60, 23, 1235, {'1%': -3.435, '5%': -2.913, '10%': -2.568}, 10782.87)
  • Elemen ke-0 adalah statistik uji (-1.34)
    • Semakin negatif, semakin mungkin stasioner
  • Elemen ke-1 adalah p-value (0.60)
    • Jika p-value kecil $\rightarrow$ tolak H0. Tolak tidak stasioner.
  • Elemen ke-4 adalah nilai kritis statistik uji
Model ARIMA di Python

Menafsirkan hasil uji

print(results)
(-1.34, 0.60, 23, 1235, {'1%': -3.435, '5%': -2.863, '10%': -2.568}, 10782.87)
  • Elemen ke-0 adalah statistik uji (-1.34)
    • Semakin negatif, semakin mungkin stasioner
  • Elemen ke-1 adalah p-value (0.60)
    • Jika p-value kecil $\rightarrow$ tolak H0. Tolak tidak stasioner.
  • Elemen ke-4 adalah nilai kritis statistik uji
1 https://www.statsmodels.org/dev/generated/statsmodels.tsa.stattools.adfuller.html
Model ARIMA di Python

Manfaat membuat plot

  • Memplot deret waktu mencegah asumsi keliru
Model ARIMA di Python

Manfaat membuat plot

Model ARIMA di Python

Menjadikan deret waktu stasioner

Model ARIMA di Python

Mengambil selisih (differencing)

Selisih: $\Delta y_t = y_t - y_{t-1}$

Model ARIMA di Python

Mengambil selisih (differencing)

df_stationary = df.diff()
            city_population
date                       
1969-09-30              NaN
1970-03-31        -0.116156
1970-09-30         0.050850
1971-03-31        -0.153261
1971-09-30         0.108389
Model ARIMA di Python

Mengambil selisih (differencing)

df_stationary = df.diff().dropna()
            city_population
date                       
1970-03-31        -0.116156
1970-09-30         0.050850
1971-03-31        -0.153261
1971-09-30         0.108389
1972-03-31        -0.029569
Model ARIMA di Python

Mengambil selisih (differencing)

Model ARIMA di Python

Transformasi lain

Contoh transformasi lain

  • Ambil log
    • np.log(df)
  • Ambil akar kuadrat
    • np.sqrt(df)
  • Ambil perubahan proporsional
    • df.shift(1)/df
Model ARIMA di Python

Ayo berlatih!

Model ARIMA di Python

Preparing Video For Download...