Cara melakukan tes kpss dengan python


Uji KPSS dapat digunakan untuk mengetahui apakah suatu deret waktu mempunyai tren yang stasioner.

Pengujian ini menggunakan hipotesis nol dan alternatif berikut:

  • H 0 : Deret waktu mempunyai tren yang stasioner.
  • H A : Deret waktu tidak mempunyai tren yang stasioner.

Jika p-value pengujian berada di bawah tingkat signifikansi tertentu (misalnya α = 0,05), maka kita menolak hipotesis nol dan menyimpulkan bahwa deret waktu tidak mempunyai tren yang stasioner.

Jika tidak, kita akan gagal menolak hipotesis nol.

Contoh berikut menunjukkan cara melakukan tes KPSS dengan Python.

Contoh 1: Tes KPSS dengan Python (dengan data stasioner)

Pertama, mari buat beberapa data palsu dengan Python untuk digunakan:

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seed ( 1 )

#create time series data
data = np. random . normal (size= 100 )

#create line plot of time series data
plt. plot (data) 

Kita dapat menggunakan fungsi kpss() dari paket statsmodels untuk melakukan pengujian KPSS pada data deret waktu ini:

 import statsmodels. api as sm

#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')

(0.0477617848370993,
 0.1,
 1,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

InterpolationWarning: The test statistic is outside of the range of p-values available
in the look-up table. The actual p-value is greater than the p-value returned.

Berikut cara menafsirkan hasilnya:

  • Statistik uji KPSS : 0,04776
  • Nilai p: 0,1
  • Parameter offset pemotongan: 1
  • Nilai kritis pada 10% , 5% , 2,5% dan 1%

Nilai p-nya adalah 0,1 . Karena nilai ini tidak kurang dari 0,05, kami gagal menolak hipotesis nol uji KPSS.

Artinya kita dapat berasumsi bahwa deret waktu mempunyai tren yang stasioner.

Catatan 1 : Nilai p sebenarnya masih lebih besar dari 0,1, namun nilai terendah yang dihasilkan fungsi kpss() adalah 0,1.

Catatan 2 : Anda harus menggunakan argumen regresi=’ct’ untuk menentukan bahwa hipotesis nol dari pengujian ini adalah bahwa data memiliki tren stasioner.

Contoh 2: Tes KPSS dengan Python (dengan data non-stasioner)

Pertama, mari buat beberapa data palsu dengan Python untuk digunakan:

 import numpy as np
import matplotlib. pyplot as plt

#make this example reproducible
n.p. random . seed ( 1 )

#create time series data
data =np. array ([0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45])

#create line plot of time series data
plt. plot (data) 

Sekali lagi, kita dapat menggunakan fungsi kpss() dari paket statsmodels untuk melakukan pengujian KPSS pada data deret waktu ini:

 import statsmodels. api as sm

#perform KPSS test
sm. tsa . stattools . kpss (data, regression=' ct ')

(0.15096358910843685,
 0.04586367574296928,
 3,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

Berikut cara menafsirkan hasilnya:

  • Statistik uji KPSS: 0,1509
  • Nilai p: 0,0458
  • Parameter offset pemotongan: 3
  • Nilai kritis pada 10% , 5% , 2,5% dan 1%

Nilai p-nya adalah 0,0458 . Nilai ini kurang dari 0,05, kami menolak hipotesis nol uji KPSS.

Artinya deret waktu tidak stasioner.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi kpss() dari paket statsmodels di sini .

Sumber daya tambahan

Tutorial berikut memberikan informasi tambahan tentang cara bekerja dengan data deret waktu dengan Python:

Cara melakukan tes Dickey-Fuller augmented dengan Python
Cara Melakukan Tes Tren Mann-Kendall dengan Python
Cara memplot deret waktu di Matplotlib

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *