ပန်ဒါရှိ ဆက်စပ်ကိန်း၏ p တန်ဖိုးကို မည်သို့ရှာရမည်နည်း။
Pearson ၏ ဆက်စပ်ကိန်းကို ကိန်းရှင်နှစ်ခုကြားရှိ မျဉ်းကြောင်းဆက်စပ်မှုကို တိုင်းတာရန် အသုံးပြုနိုင်သည်။
ဤဆက်စပ်ဆက်နွယ်မှုကိန်းဂဏန်းသည် -1 နှင့် 1 ကြားရှိတန်ဖိုးကို အမြဲယူဆောင်သည်-
- -1 : ကိန်းရှင်နှစ်ခုကြားတွင် လုံးဝအနုတ်လက္ခဏာမျဉ်းကြောင်းဆက်စပ်မှု။
- 0 : variable နှစ်ခုကြားတွင် linear ဆက်စပ်မှုမရှိပါ။
- 1- ကိန်းရှင်နှစ်ခုကြားတွင် ပြီးပြည့်စုံသော အပြုသဘောဆောင်သော linear ဆက်စပ်မှု။
ဆက်စပ်ကိန်းဂဏန်းတစ်ခုသည် ကိန်းဂဏန်းအရ သိသာထင်ရှားမှုရှိမရှိ ဆုံးဖြတ်ရန်၊ သက်ဆိုင်ရာ t-score နှင့် p-value ကို တွက်ချက်နိုင်သည်။
ဆက်စပ်ပေါင်းကိန်း (r) ၏ t-score ကို တွက်ချက်ရန် ဖော်မြူလာမှာ-
t = r√ n-2 / √ 1-r ၂
p-တန်ဖိုးကို လွတ်လပ်မှု n-2 ဒီဂရီဖြင့် t-ဖြန့်ဝေမှုအတွက် သက်ဆိုင်သော အမြီးနှစ်စင်း p-တန်ဖိုးအဖြစ် တွက်ချက်သည်။
ပန်ဒါများရှိ Pearson ဆက်စပ်ကိန်း၏ p-တန်ဖိုးကို တွက်ချက်ရန်၊ SciPy စာကြည့်တိုက်မှ pearsonr() လုပ်ဆောင်ချက်ကို သင်အသုံးပြုနိုင်သည်-
from scipy. stats import pearsonr pearsonr(df[' column1 '], df[' column2 '])
ဤလုပ်ဆောင်ချက်သည် ကော်လံ ကော်လံ ၁ နှင့် ကော်လံ 2 ကြားရှိ Pearson ဆက်စပ်ကိန်းကို ပြန်ပေးမည်ဖြစ်ပြီး ဆက်စပ်ဆက်နွယ်မှုကိန်းဂဏန်းသည် ကိန်းဂဏာန်းအရ သိသာမှုရှိမရှိကို ပြောပြပေးသည့် သက်ဆိုင်ရာ p-တန်ဖိုးနှင့်အတူ ပြန်ပေးမည်ဖြစ်သည်။
DataFrame တစ်ခုရှိ ကော်လံတစ်ခုစီရှိ ဖြစ်နိုင်သည့် အတွဲလိုက်ပေါင်းစပ်မှုတစ်ခုစီ၏ Pearson ဆက်စပ်ဆက်စပ်ကိန်းအတွက် p-တန်ဖိုးကို တွက်ချက်လိုပါက၊ ထိုသို့ပြုလုပ်ရန် အောက်ပါစိတ်ကြိုက်လုပ်ဆောင်ချက်ကို သင်အသုံးပြုနိုင်သည်-
def r_pvalues(df):
cols = pd. DataFrame (columns= df.columns )
p = cols. transpose (). join (cols, how=' outer ')
for r in df. columns :
for c in df. columns :
tmp = df[df[r]. notnull () & df[c]. notnull ()]
p[r][c] = round(pearsonr(tmp[r], tmp[c])[1], 4)
return p
အောက်ဖော်ပြပါနမူနာများသည် အောက်ပါ pandas DataFrame ဖြင့် လက်တွေ့တွင် ဆက်စပ်ကိန်းများကို p-values များ တွက်ချက်နည်းကို ပြသသည်-
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' x ': [4, 5, 5, 7, 8, 10, 12, 13, 14, 15],
' y ': [10, 12, 14, 18, np.nan, 19, 13, 20, 14, np.nan],
' z ': [20, 24, 24, 23, 19, 15, 18, 14, 10, 12]})
#view DataFrame
print (df)
X Y Z
0 4 10.0 20
1 5 12.0 24
2 5 14.0 24
3 7 18.0 23
4 8 NaN 19
5 10 19.0 15
6 12 13.0 18
7 13 20.0 14
8 14 14.0 10
9 15 NaN 12
ဥပမာ 1- Pandas ရှိ ကော်လံနှစ်ခုကြားရှိ ဆက်စပ်ကိန်းဂဏန်းအတွက် P တန်ဖိုးကို တွက်ချက်ပါ။
အောက်ပါကုဒ်သည် DataFrame ၏ x နှင့် y ကော်လံများအတွက် Pearson ဆက်စပ်ကိန်းကို တွက်ချက်ပုံနှင့် သက်ဆိုင်သော p-value ကို ဖော်ပြသည်-
from scipy. stats import pearsonr
#drop all rows with NaN values
df_new = df. dropna ()
#calculation correlation coefficient and p-value between x and y
pearsonr(df_new[' x '], df_new[' y '])
PearsonRResult(statistic=0.4791621985883838, pvalue=0.22961622926360523)
ရလဒ်မှ ကျွန်ုပ်တို့ မြင်နိုင်သည်-
- Pearson ဆက်စပ်ကိန်းသည် 0.4792 ဖြစ်သည်။
- သက်ဆိုင်ရာ p-value သည် 0.2296 ဖြစ်သည်။
ဆက်စပ်ဆက်စပ်ကိန်းသည် အပြုသဘောဖြစ်သောကြောင့်၊ ၎င်းသည် ကိန်းရှင်နှစ်ခုကြားတွင် အပြုသဘောဆောင်သော linear ဆက်နွယ်မှုရှိကြောင်း ညွှန်ပြသည်။
သို့သော်၊ ဆက်စပ်ကိန်း၏ p-value သည် 0.05 ထက်မနည်းသောကြောင့်၊ ဆက်စပ်မှုမှာ ကိန်းဂဏန်းအရ သိသာထင်ရှားခြင်းမရှိပါ။
p-value ကို ဆက်စပ်ဖော်ကိန်းမှ ထုတ်ယူရန် အောက်ပါ syntax ကို အသုံးပြုနိုင်ကြောင်း သတိပြုပါ။
#extract p-value of correlation coefficient
pearsonr(df_new[' x '], df_new[' y '])[1]
0.22961622926360523
ဆက်စပ်ကိန်းအတွက် p-တန်ဖိုးသည် 0.2296 ဖြစ်သည်။
၎င်းသည် ယခင်ထွက်ရှိထားသည့် p-value နှင့် ကိုက်ညီသည်။
ဥပမာ 2- Pandas ရှိ ကော်လံများအားလုံးကြား ဆက်စပ်ကိန်းအတွက် P တန်ဖိုးကို တွက်ချက်ပါ။
အောက်ပါကုဒ်သည် pandas DataFrame ရှိ ကော်လံတစ်ခုစီအတွက် Pearson ဆက်စပ်ဆက်စပ်ကိန်းနှင့် သက်ဆိုင်သော p-တန်ဖိုးကို တွက်ချက်နည်းကို ပြသသည်-
#create function to calculate p-values for each pairwise correlation coefficient
def r_pvalues(df):
cols = pd. DataFrame (columns= df.columns )
p = cols. transpose (). join (cols, how=' outer ')
for r in df. columns :
for c in df. columns :
tmp = df[df[r]. notnull () & df[c]. notnull ()]
p[r][c] = round(pearsonr(tmp[r], tmp[c])[1], 4)
return p
#use custom function to calculate p-values
r_pvalues(df)
X Y Z
x 0.0 0.2296 0.0005
y 0.2296 0.0 0.4238
z 0.0005 0.4238 0.0
ရလဒ်မှ ကျွန်ုပ်တို့ မြင်နိုင်သည်-
- x နှင့် y အကြား ဆက်စပ်ကိန်းအတွက် p-value သည် 0.2296 ဖြစ်သည်။
- x နှင့် z ကြားရှိ ဆက်စပ်ကိန်းအတွက် p-တန်ဖိုးသည် 0.0005 ဖြစ်သည်။
- y နှင့် z ကြားရှိ ဆက်စပ်ကိန်းအတွက် p-တန်ဖိုးသည် 0.4238 ဖြစ်သည်။
ကျွန်ုပ်တို့၏ စိတ်ကြိုက်လုပ်ဆောင်မှုတွင် p-တန်ဖိုးများကို ဒဿမ လေးနေရာသို့ ဝိုင်းစက်ထားကြောင်း သတိပြုပါ။
လုပ်ဆောင်ချက်၏ နောက်ဆုံးစာကြောင်းတွင် 4 ကို မတူသောနံပါတ်ဖြင့် ကွဲပြားခြားနားသော ဒဿမနေရာများသို့ လှည့်ရန် အားမနာပါ။
မှတ်ချက် – SciPy pearsonr() လုပ်ဆောင်ချက်အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို ဤနေရာတွင် ရှာတွေ့နိုင်ပါသည်။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် အခြားဘုံပန်ဒါတာဝန်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-
Pandas ရှိ အုပ်စုအလိုက် ဆက်စပ်မှုကို တွက်ချက်နည်း
ပန်ဒါများတွင် လျှောကျဆက်စပ်မှုကို တွက်ချက်နည်း
ပန်ဒါများတွင် Spearman အဆင့်ဆက်စပ်မှုကို တွက်ချက်နည်း