ANOVA के बाद post-hoc विश्लेषण

Python में Experimental Design

James Chapman

Curriculum Manager, DataCamp

Post-hoc टेस्ट कब करें

 

  • जब ANOVA परिणाम सार्थक हों
  • जोड़ों में समूह-अंतर जाँचने के लिए

एक नीला थिएटर परदा कार्टून-शैली के हाथ से हटता है, जहाँ चार रंगीन वृत्त A, B, C, और D दिखते हैं, जो pairwise comparisons दर्शाने वाली रेखाओं से जुड़े हैं. कुछ कनेक्शन पर asterisks से सार्थक अंतर दिखता है, बाकी पर not significant लिखा है. यह दर्शाता है कि ANOVA के कुल प्रभाव के बाद post-hoc टेस्ट किन समूहों में अंतर बताता है.

Python में Experimental Design

मुख्य post-hoc विधियाँ

 

  • Tukey's HSD (Honest Significant Difference)
    • कई comparisons के लिए robust
    • सभी समूहों के बीच comparisons के लिए बेहतर
  • Bonferroni Correction
    • Type I errors नियंत्रित करने हेतु p-values समायोजित करता है
    • विशिष्ट comparisons के लिए बेहतर

John Tukey

Carlo Emilio Bonferroni

1 https://www.amphilsoc.org/item-detail/photograph-john-wilder-tukey 2 https://en.wikipedia.org/wiki/Carlo_Emilio_Bonferroni
Python में Experimental Design

डेटासेट: मार्केटिंग ऐड कैंपेन

ad_campaigns
              Ad_Campaign  Click_Through_Rate
1300    Seasonal Discount        2.1659547732
1661          New Arrival        2.9409657365
2762       Loyalty Reward        3.2476777154
571     Seasonal Discount        3.3382186561
775     Seasonal Discount        1.7148876401
Python में Experimental Design

Pivot tables से डेटा व्यवस्थित करना

pivot_table = ad_campaigns.pivot_table(values='Click_Through_Rate',
                                       index='Ad_Campaign',
                                       aggfunc="mean")
print(pivot_table)
                   Click_Through_Rate
Ad_Campaign                          
Loyalty Reward               2.792716
New Arrival                  3.013843
Seasonal Discount            2.518917
Python में Experimental Design

ANOVA करना

from scipy.stats import f_oneway
campaign_types = ['Seasonal Discount', 'New Arrival', 'Loyalty Reward']

groups = [ad_campaigns[ad_campaigns['Ad_Campaign'] == campaign]['Click_Through_Rate'] for campaign in campaign_types]
f_stat, p_val = f_oneway(*groups) print(p_val)
4.484124496940693e-134
Python में Experimental Design

Tukey's HSD टेस्ट

from statsmodels.stats.multicomp import pairwise_tukeyhsd

tukey_results = pairwise_tukeyhsd(ad_campaigns['Click_Through_Rate'],
ad_campaigns['Ad_Campaign'],
alpha=0.05)
print(tukey_results)
         Multiple Comparison of Means - Tukey HSD, FWER=0.05          
===========================================================================
        group1             group2  meandiff  p-adj   lower    upper  reject
<hr />---------------------------------------------------------------------
Loyalty Reward        New Arrival    0.2211   0.0    0.176   0.2663    True
Loyalty Reward  Seasonal Discount   -0.2738   0.0  -0.3189  -0.2287    True
   New Arrival  Seasonal Discount   -0.4949   0.0  -0.5401  -0.4498    True
<hr />---------------------------------------------------------------------
Python में Experimental Design

Bonferroni correction सेट-अप

from scipy.stats import ttest_ind
from statsmodels.sandbox.stats.multicomp import multipletests

p_values = []
comparisons = [('Seasonal Discount', 'New Arrival'), ('Seasonal Discount', 'Loyalty Reward'), ('New Arrival', 'Loyalty Reward')]
for comp in comparisons: group1 = ad_campaigns[ad_campaigns['Ad_Campaign'] == comp[0]]['Click_Through_Rate'] group2 = ad_campaigns[ad_campaigns['Ad_Campaign'] == comp[1]]['Click_Through_Rate']
t_stat, p_val = ttest_ind(group1, group2)
p_values.append(p_val)
Python में Experimental Design

Bonferroni correction लागू करना

p_adjusted = multipletests(p_values, alpha=0.05, method='bonferroni')

print(f"Adjusted P-values: {p_adjusted[1]}")
Adjusted P-values: [5.33634403e-133 2.17627991e-043 5.62590083e-029]
Python में Experimental Design

अभ्यास करते हैं!

Python में Experimental Design

Preparing Video For Download...