Jak wykonać test kpss w r (wraz z przykładem)


Test KPSS można zastosować do ustalenia, czy szereg czasowy ma trend stacjonarny.

W teście tym wykorzystuje się następującą hipotezę zerową i alternatywną:

  • H 0 : Szereg czasowy ma trend stacjonarny.
  • H A : Szereg czasowy nie ma trendu stacjonarnego.

Jeżeli wartość p testu jest poniżej pewnego poziomu istotności (np. α = 0,05), wówczas odrzucamy hipotezę zerową i stwierdzamy, że szereg czasowy nie ma tendencji stacjonarnej.

W przeciwnym razie nie uda nam się odrzucić hipotezy zerowej.

Poniższe przykłady pokazują, jak wykonać test KPSS w R.

Przykład 1: Test KPSS w R (z danymi stacjonarnymi)

Najpierw utwórzmy fałszywe dane w R, z którymi będziemy mogli pracować:

 #make this example reproducible
set. seeds (100)

#create time series data
data<-rnorm(100)

#plot time series data as line plot
plot(data, type=' l ') 

Możemy użyć funkcji kpss.test() z pakietu tseries , aby przeprowadzić test KPSS na danych szeregu czasowego:

 library (tseries)

#perform KPSS test
kpss. test (data, null=" Trend ")

	KPSS Test for Trend Stationarity

data:data
KPSS Trend = 0.034563, Truncation lag parameter = 4, p-value = 0.1

Warning message:
In kpss.test(data, null = "Trend"): p-value greater than printed p-value

Wartość p wynosi 0,1 . Ponieważ wartość ta jest nie mniejsza niż 0,05, nie można odrzucić hipotezy zerowej testu KPSS.

Oznacza to, że możemy założyć, że szereg czasowy ma trend stacjonarny.

Uwaga : Wartość p jest w rzeczywistości nadal większa niż 0,1, ale najniższa wartość, jaką wygeneruje funkcja kpss.test() to 0,1.

Przykład 2: Test KPSS w R (z danymi niestacjonarnymi)

Najpierw utwórzmy fałszywe dane w R, z którymi będziemy mogli pracować:

 #make this example reproducible

#create time series data
data <-c(0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45)

#plot time series data as line plot
plot(data, type=' l ') 

Ponownie możemy użyć funkcji kpss.test() z pakietu tseries , aby przeprowadzić test KPSS na danych szeregu czasowego:

 library (tseries)

#perform KPSS test
kpss. test (data, null=" Trend ")

	KPSS Test for Trend Stationarity

data:data
KPSS Trend = 0.149, Truncation lag parameter = 2, p-value = 0.04751

Wartość p wynosi 0,04751 . Wartość ta jest mniejsza niż 0,05, więc odrzucamy hipotezę zerową testu KPSS.

Oznacza to, że szereg czasowy nie jest stacjonarny.

Dodatkowe zasoby

Poniższe samouczki zawierają dodatkowe informacje na temat pracy z danymi szeregów czasowych w języku R:

Jak wykreślić szereg czasowy w R
Jak wykonać rozszerzony test Dickeya-Fullera w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *