Python'da kpss testi nasıl yapılır?


Bir zaman serisinin durağan bir trende sahip olup olmadığını belirlemek için KPSS testi kullanılabilir.

Bu test aşağıdaki boş ve alternatif hipotezi kullanır:

  • H 0 : Zaman serisi durağan bir trende sahiptir.
  • H A : Zaman serisi durağan bir trende sahip değildir .

Testin p değeri belirli bir anlamlılık düzeyinin altındaysa (örneğin α = 0,05), boş hipotezi reddeder ve zaman serisinin durağan bir trende sahip olmadığı sonucuna varırız.

Aksi halde sıfır hipotezini reddetmede başarısız oluruz.

Aşağıdaki örnekler Python’da KPSS testinin nasıl gerçekleştirileceğini göstermektedir.

Örnek 1: Python’da KPSS testi (durağan verilerle)

Öncelikle Python’da çalışmak için bazı sahte veriler oluşturalım:

 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) 

Bu zaman serisi verileri üzerinde KPSS testi gerçekleştirmek için statsmodels paketindeki kpss() fonksiyonunu kullanabiliriz:

 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.

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • KPSS sınav istatistiği: 0.04776
  • P değeri: 0,1
  • Kesme ofset parametresi: 1
  • %10 , %5 , %2,5 ve %1’de kritik değerler

P değeri 0,1’dir . Bu değer 0,05’ten küçük olmadığı için KPSS testinin sıfır hipotezini reddedemiyoruz.

Bu, zaman serisinin durağan bir trende sahip olduğunu varsayabileceğimiz anlamına gelir.

Not 1 : P değeri aslında 0,1’den büyüktür ancak kpss() fonksiyonunun üreteceği en düşük değer 0,1’dir.

Not 2 : Testin boş hipotezinin verilerin durağan bir trende sahip olduğunu belirtmek için regression=’ct’ argümanını kullanmanız gerekir.

Örnek 2: Python’da KPSS testi (durağan olmayan verilerle)

Öncelikle Python’da çalışmak için bazı sahte veriler oluşturalım:

 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) 

Yine bu zaman serisi verileri üzerinde KPSS testi gerçekleştirmek için statsmodels paketindeki kpss() fonksiyonunu kullanabiliriz:

 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})

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • KPSS sınav istatistiği: 0.1509
  • P değeri: 0,0458
  • Kesme ofseti parametresi: 3
  • %10 , %5 , %2,5 ve %1’de kritik değerler

P değeri 0,0458’dir . Bu değerin 0,05’ten küçük olması nedeniyle KPSS testinin sıfır hipotezini reddediyoruz.

Bu durum zaman serisinin durağan olmadığı anlamına gelmektedir.

Not : Kpss() işlevine ilişkin tüm belgeleri buradaki statsmodels paketinde bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimler Python’da zaman serisi verileriyle nasıl çalışılacağı hakkında ek bilgi sağlar:

Python’da artırılmış Dickey-Fuller testi nasıl yapılır?
Python’da Mann-Kendall Trend Testi Nasıl Gerçekleştirilir
Matplotlib’de bir zaman serisi nasıl çizilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir