Analiza post-hoc după ANOVA

Design experimental în Python

James Chapman

Curriculum Manager, DataCamp

Când se folosesc testele post-hoc

 

  • După rezultate ANOVA semnificative
  • Pentru a explora diferențele perechi între grupuri

O cortină albastră de teatru este trasă de o mână stilizată, dezvăluind o rețea de patru cercuri colorate, etichetate A, B, C și D, conectate prin linii ce reprezintă comparații perechi. Unele conexiuni sunt marcate cu asteriscuri pentru a indica diferențe semnificative, altele sunt etichetate ca nesemnificative. Ilustrația simbolizează modul în care testele post-hoc identifică grupurile care diferă după ce ANOVA detectează un efect global.

Design experimental în Python

Metode principale post-hoc

 

  • HSD Tukey (Diferență Semnificativă Onestă)
    • Robust pentru comparații multiple
    • Optim pentru comparații între toate grupurile
  • Corecția Bonferroni
    • Ajustează valorile p pentru a controla erorile de tip I
    • Optimă pentru comparații specifice

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
Design experimental în Python

Setul de date: campanii publicitare de marketing

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
Design experimental în Python

Organizarea datelor cu tabele pivot

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
Design experimental în Python

Efectuarea 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
Design experimental în Python

Testul HSD al lui Tukey

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 />---------------------------------------------------------------------
Design experimental în Python

Pregătirea corecției Bonferroni

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)
Design experimental în Python

Aplicarea corecției Bonferroni

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]
Design experimental în Python

Să exersăm!

Design experimental în Python

Preparing Video For Download...