L’analisi della varianza, Anova. Spiegata semplice

L’analisi della varianza (ANOVA) è un test parametrico che valuta le differenze tra le medie di due o più gruppi di dati.
Si tratta di un test di ipotesi statistica che trova ampio impiego nell’ambito della ricerca scientifica e che consente di determinare se le medie di almeno due popolazioni sono diverse.
Sono necessari come presupposto minimo una variabile dipendente continua e una variabile indipendente categoriale che divida i dati in gruppi di confronto.

Il termine “analisi della varianza” deriva dal modo in cui l’analisi utilizza le varianze per determinare se le medie sono diverse.

ANOVA funziona confrontando la varianza delle medie tra i gruppi (è chiamata varianza between) con la varianza all’interno dei singoli gruppi (o varianza within).

L’analisi della varianza è stata sviluppata dal grande statistico Ronald Fisher (diciamo che è uno degli Dei nell’Olimpo della statistica…).
Non è un caso che Anova si basi su una distribuzione chiamata distribuzione F.

Youngronaldfisher2
Ronald Fisher in una foto giovanile
(da Wikipedia)

Anova: un test di tipo parametrico

Anova è un test di tipo parametrico. Richiede dunque che siano soddisfatti un certo numero di requisiti:

  • Normalità. I dati nei gruppi devono seguire una distribuzione normale.
  • Omogeneità delle varianze: i gruppi dovrebbero avere varianze approssimativamente uguali.
  • I residui seguono le assunzioni di minimi quadrati.
  • C’è almeno una variabile indipendente di tipo categorico (fattore).
  • La variabile dipendente è continua.
  • Le osservazioni sono indipendenti.

Perchè Anova e non una serie di t-test?

Una domanda che è lecito porsi è la seguente: perchè mai dovrei usare Anova quando posso usare una serie di confronti tra ogni gruppo e ognuno degli altri?
La risposta non è legata semplicemente alla noia e alla difficoltà nel dover svolgere un gran numero di test (ad esempio, per 4 fattori avrei bisogno di svolgere 6 differenti t-test). Il maggiore problema è che la probabilità di commettere un errore di Tipo I aumenta con una progressione di tipo esponenziale. Sappiamo che se scegliamo un alpha “tipico” di 0,05 fissiamo la probabilità di incorrere in un errore di Tipo I del 5%.
Se chiamiamo n il numero dei t-test da svolgere avremo una probabilità complessiva di commettere errori di Tipo I pari a:

\( 1-(1-\alpha)^n \\ \)

nel nostro esempio questo significa:

\( 1-(1-0,05)^6 = \\ 1-0,735 = \\ 0,265 \\ \\ \)

Vale a dire una probabilità di errore di Tipo I del 26,5% ! Chiaramente inaccettabile… Quando vogliamo testare la media di 3 o più gruppi, Anova è certamente da preferire rispetto a una serie di T-test.

Il caso più semplice: Anova a una via

Il tipo più semplice di test ANOVA è l’ANOVA a un fattore. Questo metodo è una generalizzazione dei t-test in grado di valutare la differenza tra più di due medie di gruppo.
I dati sono organizzati in vari gruppi sulla base di una singola variabile categorica (chiamata variabile fattore).

Come abbiamo detto, Anova è un test delle ipotesi. In questo caso, abbiamo una ipotesi nulla H0:
le medie tra i diversi gruppi sono uguali
e una ipotesi alternativa Ha:
almeno una media è diversa.

ATTENZIONE: Anova ci dice SE una media è diversa, non QUALE gruppo presenta una media differente. Per quello, avremo bisogno di un passaggio supplementare, il test post hoc, che vedremo a tempo debito.

Il modo “classico” (e un po’ tedioso) di svolgere un test Anova: la tabella Anova

E’ vero che utilizzare il modo “classico” di computare il risultato di un test Anova può fornire nozioni teoriche importanti, ma è altresì vero che chiunque utilizzi questa tipologia di test nella quotidianità difficilmente – per non dire mai – usa carta e penna e compila una tabella Anova… La praticità delle funzioni di R nel svolgere tutto il “lavoro duro” con un clic è davvero impagabile. Tuttavia, un esempio passo-passo ci fornirà una importante infarinatura. Siamo pronti a “sporcarci le mani”?

I passaggi che compiremo possono essere schematizzati così:

  • Calcoleremo la varianza comune, chiamata varianza nei campioni S2within, o varianza residuale.
  • Calcoleremo la varianza tra le medie dei campioni, quindi:
    La media di ogni gruppo
    La varianza tra le medie dei campioni (S2between)
  • E poi ricaveremo la statistica F come rapporto tra S2between/S2within

Dal momento che la SEO è uno dei campi che seguo con maggiore interesse, ipotizzo un esempio (ovviamente privo di reale valore) che ha per oggetto l’analisi dei dati di traffico di un sito web.

La mia variabile indipendente a più fattori è il tipo di dispositivo usato dai navigatori: desktop, mobile, tablet.

La mia variabile dipendente saranno gli obiettivi realizzati sul sito.

Immaginiamo di seguire i dati mensili per 6 mesi e di ricavare queste misure:

DesktopMobileTablet
394530
675445
786422
595239
424638
513541
Obiettivi per device

Vado a calcolare la media dei valori per il gruppo Desktop:
(39+67+78+59+42+51)/6 = 56

Calcolo la media per Mobile:
(45+54+64+52+46+35)/6 = 49,3

E quella per i Tablet:
(30+45+22+39+38+41)/6 = 35,83

Passiamo a calcolare le somme dei quadrati:

DesktopMobileTablet
(39-56)2 = 289(45-49,3)2 = 18,49(30-35.83)2 = 33.99
(67-56)2 = 121(54-49,3)2 = 22.09(45-35.83)2 = 84.09
(78-56)2 = 484(64-49,3)2 = 216.09(22-35.83)2 = 191.27
(59-56)2 = 9(52-49,3)2 = 7.29(39-35.83)2 = 10.05
(42-56)2 = 196(46-49,3)2 = 10.89(38-35.83)2 = 4.71
(51-56)2 = 25(35-49,3)2 = 204.49(41-35.83)2 = 26.73
TotaleTotaleTotale
1124479.34350.84

Siamo pronti per ricavare SSe, la somma degli errori quadratici:
SSe = 1124 + 479.34 + 350.84 = 1954.18

Calcoliamo la Grande Media di tutte le osservazioni, sommando i valori del gruppo desktop,mobile e tablet e dividendoli per il numero delle osservazioni:
(336+296+215)/18 = 47

Procediamo nel calcolo aiutandoci con una tabella:

A-OsservazioniB-Grande MediaC-Media(B-C)2A * D
Desktop6475681486
Mobile64749,35.2931.74
Tablet64735.83124.77748.62

E troviamo così la Somma dei Quadrati between:

SSb = 486 + 31.74 + 748.62 = 1266,4

Ancora un piccolo sforzo, ma ora viene il bello!

I gradi di libertà between df1 sono uguali a N – 1, quindi:
3 – 1 = 2
I gradi di libertà within df2 sono uguali a N – K, quindi:
18 – 3 = 15

Troviamo la Media Quadrata dell’Errore, MSe:

\( MS_e=\frac{SS_e}{df_2} \\ \frac{1954.18}{15} = 130.3 \\ \\ \)

E la Media Quadrata between:

\( MS_b=\frac{SS_b}{df_1} \\ \frac{1266.4}{2}=633.18 \\ \\ \)

E’ arrivato il momento: possiamo ricavare finalmente il nostro valore F!

\( F=\frac{MS_b}{MS_e} \\ \frac{633.18}{130.3}=4.86 \\ \)

Ho finalmente trovato il valore che cercavo, F=4.86.
Non mi resta che prendere in mano una tabella della distribuzione F e andare a cercare il valore critico in corrispondenza dell’incrocio tra i valori df2/df1.
Quel valore risulta essere pari a 3.68.

Il mio valore F=4.86 cade nella zona di rigetto dell’ipotesi nulla H0
Il mio test, per un valore alpha di 0.05, mi indica che le medie dei tre gruppi non sono uguali.

Quanta fatica… E’ ora di sfruttare tutta la potenza di R

I valori d’esempio sono contenuti in questo file csv.

Ipotizzando di avere il nostro file csv nella home, posso creare uno script R in Rstudio e caricare il mio semplicissimo dataset:

obiettivianova <- read.csv("~/anova-ex1.csv")

Uno sguardo grafico a come si presentano i valori per i tre gruppi:

boxplot(obiettivianova$obiettivi ~ obiettivianova$device, main="Boxplot obiettivi per device", xlab="Device", ylab="Obiettivi")
boxplot

Già il boxplot sembra suggerirci qualcosa, ma ovviamente procediamo analiticamente.

Diamo uno sguardo alle medie:

aggregate(obiettivi ~ device,obiettivianova,mean)
   device obiettivi
1 desktop  56.00000
2  mobile  49.33333
3  tablet  35.83333

e procediamo con il nostro test:

miomodello <- aov(obiettivianova$obiettivi ~ obiettivianova$device)

summary(miomodello)

l’output che otteniamo è il seguente:

                      Df Sum Sq Mean Sq F value Pr(>F)  
obiettivianova$device  2   1267   633.4   4.862 0.0236 *
Residuals             15   1954   130.3                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

La potenza di R qui è evidente. Bastano pochi attimi per avere un sacco di informazioni utili. Il valore di F è 4,862, i gradi di libertà sono 2, ecc.ecc.
Non serve consultare la tabella della distribuzione F (o usare il comando R corrispondente) perchè già è presente il p-value, che segnala il rigetto dell’ipotesi nulla al livello del 5% (p= 0.0236 < 0,05).

Anova ci dice che le medie non sono tutte uguali. E’ giunto il momento di un test post-hoc per poter valutare dove si trova “l’anomalia”:

TukeyHSD(miomodello)

Il Test HSD di Tukey è uno dei test post hoc più utili in casi come quello in esame. Ci restituisce questo output:

                     diff       lwr       upr     p adj
mobile-desktop  -6.666667 -23.78357 10.450234 0.5810821
tablet-desktop -20.166667 -37.28357 -3.049766 0.0204197
tablet-mobile  -13.500000 -30.61690  3.616900 0.1348303

Come si può notare, mentre per il confronto tra le medie mobile-desktop e tablet-mobile non possiamo scartare l’ipotesi nulla, lo stesso non si può dire nel caso delle medie tablet-desktop, dove la differenza risulta statisticamente significativa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *