Python တွင် kpss စမ်းသပ်မှုပြုလုပ်နည်း


အချိန်စီးရီးတစ်ခုသည် ငုတ်လျှိုးသွားခြင်းရှိမရှိ ဆုံးဖြတ်ရန် KPSS စမ်းသပ်မှုကို အသုံးပြုနိုင်သည်။

ဤစမ်းသပ်မှုသည် အောက်ပါ null နှင့် အခြားအခြားသော အယူအဆကို အသုံးပြုသည် ။

  • H 0 : အချိန်စီးရီးသည် ငုတ်လျှိုးနေသောလမ်းကြောင်းတစ်ခုဖြစ်သည်။
  • H A : အချိန်စီးရီးများသည် ငုတ်လျှိုးနေသောလမ်းကြောင်း မရှိပါ

စမ်းသပ်မှု၏ p-တန်ဖိုး သည် အချို့သော အရေးပါမှုအဆင့်အောက်တွင် ရှိပါက (ဥပမာ α = 0.05)၊ ထို့နောက် null hypothesis ကို ငြင်းပယ်ပြီး time series သည် တည်ငြိမ်သောလမ်းကြောင်းမရှိဟု ကောက်ချက်ချပါသည်။

မဟုတ်ပါက၊ ကျွန်ုပ်တို့သည် null hypothesis ကို ငြင်းပယ်ရန် ပျက်ကွက်မည်ဖြစ်ပါသည်။

အောက်ပါနမူနာများသည် Python တွင် KPSS စမ်းသပ်မှုကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသထားသည်။

ဥပမာ 1- Python တွင် KPSS စမ်းသပ်မှု (စာရေးကိရိယာဒေတာနှင့်အတူ)

ဦးစွာ၊ Python တွင် ဒေတာအတုအချို့ကို ဖန်တီးကြပါစို့-

 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) 

ဤအချိန်စီးရီးဒေတာအတွက် KPSS စမ်းသပ်မှုလုပ်ဆောင်ရန် statsmodels ပက်ကေ့ဂျ်မှ kpss() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်-

 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.

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

  • KPSS စမ်းသပ်မှုစာရင်းအင်း- 0.04776
  • p-တန်ဖိုး- 0.1
  • ဖြတ်တောက်ခြင်း အော့ဖ်ဆက်ပါရာမီတာ-
  • 10%5%2.5% နှင့် 1% တွင် အရေးကြီးသောတန်ဖိုးများ

p-value သည် 0.1 ဖြစ်သည်။ ဤတန်ဖိုးသည် 0.05 ထက်မနည်းသောကြောင့် KPSS စမ်းသပ်မှု၏ null hypothesis ကို ငြင်းပယ်ရန် ပျက်ကွက်ပါသည်။

ဆိုလိုသည်မှာ အချိန်စီးရီးများသည် ငုတ်လျှိုးနေသောလမ်းကြောင်းတစ်ခုဟု ကျွန်ုပ်တို့ ယူဆနိုင်သည်။

မှတ်ချက် 1- p-value သည် အမှန်တကယ်တွင် 0.1 ထက် ကြီးနေသေးသော်လည်း kpss() function မှ အနိမ့်ဆုံးတန်ဖိုးမှာ 0.1 ဖြစ်သည်။

မှတ်ချက် 2 : စမ်းသပ်မှု၏ null hypothesis သည် data သည် stationary trend ဖြစ်နေကြောင်း သတ်မှတ်ရန် သင်သည် regression=’ct’ argument ကို အသုံးပြုရပါမည်။

ဥပမာ 2- Python တွင် KPSS စမ်းသပ်မှု (စက်မဲ့ဒေတာဖြင့်)

ဦးစွာ၊ Python တွင် ဒေတာအတုအချို့ကို ဖန်တီးကြပါစို့-

 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) 

တစ်ဖန်၊ ဤအချိန်စီးရီးဒေတာအတွက် KPSS စမ်းသပ်မှုလုပ်ဆောင်ရန် statsmodels ပက်ကေ့ခ်ျမှ kpss() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်-

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

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

  • KPSS စမ်းသပ်မှုစာရင်းအင်း- 0.1509
  • p-တန်ဖိုး- 0.0458
  • ဖြတ်တောက်ခြင်း အော့ဖ်ဆက်ပါရာမီတာ-
  • 10%5%2.5% နှင့် 1% တွင် အရေးကြီးသောတန်ဖိုးများ

p-တန်ဖိုးသည် 0.0458 ဖြစ်သည်။ ဤတန်ဖိုးသည် 0.05 ထက်နည်းသောကြောင့် KPSS စမ်းသပ်မှု၏ null hypothesis ကို ငြင်းပယ်ပါသည်။

ဆိုလိုသည်မှာ အချိန်စီးရီး သည် ငုတ်တုတ်မဟုတ်ပေ

မှတ်ချက် – kpss() လုပ်ဆောင်ချက်အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို statsmodels package မှ ဤနေရာတွင် ရှာတွေ့နိုင်ပါသည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ time series data နှင့် အလုပ်လုပ်ပုံဆိုင်ရာ နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-

Python တွင် augmented Dickey-Fuller စမ်းသပ်နည်း
Python တွင် Mann-Kendall Trend Test ကို မည်သို့လုပ်ဆောင်ရမည်နည်း။
Matplotlib တွင် အချိန်စီးရီးတစ်ခုကို ဘယ်လိုဆွဲမလဲ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်