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 တွင် အချိန်စီးရီးတစ်ခုကို ဘယ်လိုဆွဲမလဲ။