Python တွင် granger causality test ကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။


Granger causality test ကို တစ်ကြိမ်စီဆက်ခြင်းသည် နောက်တစ်ခုအား ခန့်မှန်းရာတွင် အသုံးဝင်ခြင်း ရှိ၊ မရှိ ဆုံးဖြတ်ရန် အသုံးပြုပါသည်။

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

Null hypothesis (H 0 ) : time series x သည် time series y ကို Granger သို့ မဖြစ်စေပါ။

အစားထိုးယူဆချက် ( HA ): အချိန်စီးရီး x Granger ၏အချိန်စီးရီးများသည် y ကိုဖြစ်စေသည်။

“ Granger အကြောင်းရင်းများ” ဟူသော အသုံးအနှုန်းသည် အချိန်စီးရီး x ၏တန်ဖိုးကို တိကျသေချာသော နောက်ကျမှုဖြင့် သိရှိခြင်းသည် နောက်ပိုင်းကာလတွင် အချိန်စီးရီး y တန်ဖိုးကို ခန့်မှန်းရန်အတွက် အသုံးဝင်သည်ဟု ဆိုလိုသည်။

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

Python တွင် Granger-Causality စမ်းသပ်မှုကို လုပ်ဆောင်ရန် statsmodels ပက်ကေ့ခ်ျမှ grangercausalitytests() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။

 from statsmodels. tsa . stattools import grangercausalitytests

#perform Granger-Causality test
grangercausalitytests(df[[' column1 ', ' column2 ']], maxlag=[ 3 ])

maxlag သည် ပထမအကြိမ်စီးရီးတွင် အသုံးပြုရန် နောက်ကျနေသော အရေအတွက်ကို သတ်မှတ်ကြောင်း သတိပြုပါ။

အောက်ဖော်ပြပါ အဆင့်ဆင့် ဥပမာသည် ဤလုပ်ဆောင်ချက်ကို လက်တွေ့တွင် မည်သို့အသုံးပြုရမည်ကို ပြသထားသည်။

အဆင့် 1: ဒေတာကို တင်ပါ။

ဤဥပမာအတွက်၊ ပြုလုပ်ထားသော ကြက်ဥအရေအတွက်အပြင် 1930 မှ 1983 ခုနှစ်အထိ United States ရှိ ကြက်အရေအတွက်အတွက် တန်ဖိုးများပါရှိသော ဒေတာအတွဲကို အသုံးပြုပါမည်။

 import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statorials/Miscellaneous/main/chicken_egg.txt"

#read in dataset as pandas DataFrame
df = pd. read_csv (url, sep=" ")

#view first five rows of DataFrame
df. head ()

	year chicken egg
0 1930 468491 3581
1 1931 449743 3532
2 1932 436815 3327
3 1933 444523 3255
4 1934 433937 3156

ဆက်စပ်- Pandas ဖြင့် CSV ဖိုင်များကို ဘယ်လိုဖတ်မလဲ။

အဆင့် 2- Granger အကြောင်းရင်းစမ်းသပ်မှုကို လုပ်ဆောင်ပါ။

ထို့နောက်တွင်၊ ကျွန်ုပ်တို့သည် ဂရန်းဂျာ အသေအပျောက်စမ်းသပ်မှုတစ်ခုလုပ်ဆောင်ရန် grangercausalitytests () လုပ်ဆောင်ချက်ကို အသုံးပြုပြီး ဥအရေအတွက်သည် အနာဂတ်ကြက်မအရေအတွက်ကို ခန့်မှန်းနိုင်ခြင်းရှိ၊ အော့ဖ်ဆက်သုံးခုကို အသုံးပြု၍ စမ်းသပ်မှုကို လုပ်ဆောင်ပါမည်။

 from statsmodels. tsa . stattools import grangercausalitytests

#perform Granger-Causality test
grangercausalitytests(df[[' chicken ', ' egg ']], maxlag=[ 3 ])

Granger Causality
number of lags (no zero) 3
ssr based F test: F=5.4050, p=0.0030, df_denom=44, df_num=3
ssr based chi2 test: chi2=18.7946, p=0.0003, df=3
likelihood ratio test: chi2=16.0003, p=0.0011, df=3
parameter F test: F=5.4050, p=0.0030, df_denom=44, df_num=3

F-test statistic သည် 5.405 ဖြစ်သွားပြီး သက်ဆိုင်ရာ p-value သည် 0.0030 ဖြစ်သည်။

p-value သည် 0.05 ထက်နည်းသောကြောင့်၊ စမ်းသပ်မှု၏ null hypothesis ကို ငြင်းပယ်နိုင်ပြီး ဥအရေအတွက်ကို သိရှိခြင်းသည် ကြက်အရေအတွက်ကို ခန့်မှန်းရာတွင် အသုံးဝင်ကြောင်း ကောက်ချက်ချနိုင်ပါသည်။

အဆင့် 3- ပြောင်းပြန်တွင် Granger Causality Test ကိုလုပ်ဆောင်ပါ။

စမ်းသပ်မှု၏ null hypothesis ကို ကျွန်ုပ်တို့ ပယ်ချခဲ့သော်လည်း၊ အမှန်တကယ်တွင် ပြောင်းပြန် အကြောင်းရင်းခံ ဖြစ်ပေါ်လာနိုင်သည် ။ တစ်နည်းဆိုရသော် ကြက်အရေအတွက်သည် ဥအရေအတွက် ပြောင်းလဲသွားခြင်း ဖြစ်နိုင်သည်။

ဤဖြစ်နိုင်ချေကို ဖယ်ရှားရန်၊ ကျွန်ုပ်တို့သည် တုံ့ပြန်မှုကိန်းရှင် အဖြစ် ကြက်များကို ကြိုတင်ခန့်မှန်းနိုင်သောကိန်းရှင်အဖြစ်နှင့် ကြက်ဥများကို အသုံးပြု၍ ပြောင်းပြန်ဖြင့် Granger-Causality စမ်းသပ်မှုကို လုပ်ဆောင်ရန် လိုအပ်ပါသည်။

 from statsmodels. tsa . stattools import grangercausalitytests

#perform Granger-Causality test
grangercausalitytests(df[[' egg ', ' chicken ']], maxlag=[ 3 ])

Granger Causality
number of lags (no zero) 3
ssr based F test: F=0.5916, p=0.6238, df_denom=44, df_num=3
ssr based chi2 test: chi2=2.0572, p=0.5606, df=3
likelihood ratio test: chi2=2.0168, p=0.5689, df=3
parameter F test: F=0.5916, p=0.6238, df_denom=44, df_num=3

F-test statistic သည် 0.5916 နှင့် သက်ဆိုင်သော p-value သည် 0.6238 ဖြစ်သည်။

p-value သည် 0.05 ထက်မနည်းသောကြောင့်၊ null hypothesis ကို ငြင်းပယ်၍မရပါ။ တစ်နည်းဆိုရသော် ကြက်အရေအတွက်သည် အနာဂတ်ဥအရေအတွက်ကို မခန့်မှန်းနိုင်ပေ။

ထို့ကြောင့် ဥအရေအတွက်ကို သိခြင်းသည် ကြက်မအရေအတွက်ကို ခန့်မှန်းရာတွင် အသုံးဝင်သည်ဟု ကျွန်ုပ်တို့ ကောက်ချက်ချနိုင်သည်။

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

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

Seaborn တွင် Time Series Plot တစ်ခုဖန်တီးနည်း
Matplotlib တွင် အချိန်စီးရီးဇာတ်ကွက်ဖန်တီးနည်း

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

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