Python တွင် two-way anova ကို မည်သို့လုပ်ဆောင်ရမည်နည်း။


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

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

ဤသင်ခန်းစာတွင် Python တွင် နှစ်လမ်းသွား ANOVA လုပ်ဆောင်နည်းကို ရှင်းပြထားသည်။

ဥပမာ- Python ရှိ နှစ်လမ်းသွား ANOVA

ရုက္ခဗေဒပညာရှင်တစ်ဦးသည် နေရောင်ခြည်နှင့် ထိတွေ့မှုအကြိမ်ရေကြောင့် အပင်ကြီးထွားမှုအပေါ် လွှမ်းမိုးမှုရှိမရှိ သိလိုသည်။ အစေ့ 30 ကို စိုက်ပျိုးပြီး နေရောင်ခြည်နှင့် ရေလောင်းကြိမ်နှုန်း မတူညီသော အခြေအနေများတွင် နှစ်လကြာ ကြီးထွားစေပါသည်။ နှစ်လကြာပြီးနောက် အပင်တစ်ပင်ချင်းစီ၏ အမြင့်ကို လက်မဖြင့် မှတ်တမ်းတင်သည်။

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

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

ပထမဦးစွာ၊ အောက်ပါ variable သုံးခုပါရှိသော pandas DataFrame တစ်ခုကို ဖန်တီးပါမည်။

  • ရေ- အပင်တစ်ခုစီကို မည်မျှအကြိမ်ရေလောင်းသည်- နေ့စဉ် သို့မဟုတ် အပတ်စဉ်
  • နေ- နေရောင်ခြည် ထိတွေ့မှု ပမာဏ- အနိမ့်၊ အလတ် သို့မဟုတ် အမြင့်
  • အမြင့်- နှစ်လအကြာတွင် အပင်တစ်ပင်၏အမြင့် (လက်မ)
 import numpy as np
import pandas as pd

#create data
df = pd.DataFrame({'water': np.repeat(['daily', 'weekly'], 15),
                   'sun': np.tile(np.repeat(['low', 'med', 'high'], 5), 2),
                   'height': [6, 6, 6, 5, 6, 5, 5, 6, 4, 5,
                              6, 6, 7, 8, 7, 3, 4, 4, 4, 5,
                              4, 4, 4, 4, 4, 5, 6, 6, 7, 8]})

#view first ten rows of data 
df[:10]

	water sun height
0 daily low 6
1 daily low 6
2 daily low 6
3 daily low 5
4 daily low 6
5 daily med 5
6 daily med 5
7 daily med 6
8 daily med 4
9 daily med 5

အဆင့် 2- နှစ်လမ်းသွား ANOVA ကို လုပ်ဆောင်ပါ။

ထို့နောက်၊ ကျွန်ုပ်တို့သည် statsmodels စာကြည့်တိုက်မှ anova_lm() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ နှစ်လမ်း ANOVA ကို လုပ်ဆောင်ပါမည်-

 import statsmodels.api as sm
from statsmodels.formula.api import ols

#perform two-way ANOVA
model = ols('height ~ C(water) + C(sun) + C(water):C(sun)', data=df).fit()
sm.stats.anova_lm(model, typ=2)

	           sum_sq df F PR(>F)
C(water) 8.533333 1.0 16.0000 0.000527
C(sun) 24.866667 2.0 23.3125 0.000002
C(water):C(sun) 2.466667 2.0 2.3125 0.120667
Residual 12.800000 24.0 NaN NaN

အဆင့် 3- ရလဒ်များကို ဘာသာပြန်ပါ။

ဇယားရှိ အချက်တစ်ခုစီအတွက် အောက်ပါ p-တန်ဖိုးများကို ကျွန်ုပ်တို့ မြင်နိုင်သည်-

  • water: p-value = 0.000527
  • sun: p-value = 0.0000002
  • ရေ*နေ- p-တန်ဖိုး = 0.120667

ရေနှင့်နေ၏ p-တန်ဖိုးများသည် 0.05 ထက်နည်းသောကြောင့်၊ ဆိုလိုသည်မှာ အချက်နှစ်ချက်စလုံးသည် အပင်အမြင့်အပေါ် ကိန်းဂဏန်းအရ သိသာထင်ရှားသောအကျိုးသက်ရောက်မှုရှိသည်။

အပြန်အလှန်အကျိုးသက်ရောက်မှုအတွက် p-တန်ဖိုး (0.120667) သည် 0.05 ထက်မနည်းသောကြောင့်၊ ၎င်းသည် နေနှင့်ထိတွေ့မှုနှင့် ရေလောင်းကြိမ်နှုန်းကြားတွင် သိသာထင်ရှားသော အပြန်အလှန်အကျိုးသက်ရောက်မှုမရှိဟု ကျွန်ုပ်တို့ကိုပြောပြသည်။

မှတ်ချက်- ANOVA ရလဒ်များက ကျွန်ုပ်တို့အား ရေလောင်းသည့်အကြိမ်ရေနှင့် နေရောင်ခြည်ထိတွေ့မှုသည် အပင်အမြင့်အပေါ် ကိန်းဂဏန်းအရ သိသာထင်ရှားသောအကျိုးသက်ရောက်မှုရှိသည်ကို ပြောပြသော်လည်း၊ ရေနှင့်နေရောင်ခြည်သည် အပင်အမြင့်အပေါ် မည်မျှကွဲပြားသောအဆင့်ကို အတိအကျသိရှိနိုင်စေရန်အတွက် နောက်ပိုင်းတွင် စမ်းသပ်မှု ပြုလုပ်ရန် လိုအပ်ပါသည်။

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

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

Python တွင် One-Way ANOVA လုပ်ဆောင်နည်း
Python တွင် Three-Way ANOVA ကို မည်သို့လုပ်ဆောင်ရမည်နည်း။

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

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