Cominciamo subito con un esempio, così da rendere più facile la comprensione di questo metodo statistico. I dati raccolti vengono organizzati in tabelle a doppia entrata.
Il direttore di una società ha raccolto le entrate (in migliaia di dollari) per 5 anni e in base al mese. Si vuole verificare se le entrate dipendono dall'annata e/o dal mese, oppure se sono indipendenti da questi due fattori.
Concettualmente il problema potrebbe essere risolto con un'ANOVA orizzontale, ed un ANOVA verticale. Si verifica cioè se le entrate medie classificate per anno siano uguali, e se sono uguali le entrate medie classificate per mese. Ciò richiederebbe numerosi calcoli, e pertanto si ricorre all'analisi ANOVA a due vie che offre il risultato istantaneamente.
Questa è la tabella delle entrate classificate per anno e per mese:

Come per l'ANOVA a una via, anche qui l'obiettivo è quello di strutturare un test F di Fisher per valutare la significatività della variabile mesi e della variabile anno, e stabilire se in base a uno (o entrambi) di questi criteri di classificazione dipendono le entrate.
In R la sintassi per l'ANOVA a due vie è la seguente. Innanzitutto si crea un array contenente tutti i valori tabulati, trascritti per riga:
> entrate = c(15,18,22,23,24, 22,25,15,15,14, 18,22,15,19,21,
+ 23,15,14,17,18, 23,15,26,18,14, 12,15,11,10,8, 26,12,23,15,18,
+ 19,17,15,20,10, 15,14,18,19,20, 14,18,10,12,23, 14,22,19,17,11,
+ 21,23,11,18,14)
>
A questo punto si classificano i valori così inseriti. In base ai mesi si crea un fattore a 12 livelli (numero righe) con 5 ripetizioni (numero colonne) in questa maniera:
> mesi = gl(12,5)
In base agli anni si crea un fattore a 5 livelli (numero colonne) e 1 ripetizione; si esplicita il numero di variabili inserite (la lunghezza dell'array entrate):
> anni = gl(5, 1, 60)
A questo punto è possibile fittare il modello lineare e produrre la tabella ANOVA:
> fit = aov(entrate ~ mesi + anni)
>
> anova(fit)
Analysis of Variance Table
Response: entrate
Df Sum Sq Mean Sq F value Pr(>F)
mesi 11 308.45 28.04 1.4998 0.1660
anni 4 44.17 11.04 0.5906 0.6712
Residuals 44 822.63 18.70
Interpretiamo adesso i risultati.
La significatività della differenza tra mesi è: F = 1.4998. Questo valore è inferiore al valore tabulato e difatti p-value > 0.05. Quindi si accetta l'ipotesi nulla<: le medie valutate in base ai mesi sono uguali; quindi la variabile "mesi" non influisce sulle entrate.
La significatività della differenza tra anni è: F = 0.5906. Questo valore è inferiore al valore tabulato e difatti p-value > 0.05. Quindi si accetta l'ipotesi nulla: le medie valutate in base agli anni sono uguali; quindi la variabile "anni" non influisce sulle entrate.
Nel caso io dovessi confrontare 2 (o più gruppi) in base a diverse caratteristiche, va bene un ANOVA a due vie o dovre usare altro!?
RispondiEliminaEs: Gruppi A B C
Forma Tonda 10 8 4
Colore chiaro 7 6 1
Maculati 5 2 1
Va bene l'ANOVA per sapere se i tre gruppi sono simili o meno!? Grazie
Secondo me sì... ma non ti posso assicurare ulla visto che sto approfondendo da poco l'argomento
RispondiEliminaDevo valutare la bontà di alcune comunità terapeutiche x tossicodipendenti. Posso usare l'ANOVA a due vie, per confrontare le strutture su caratteristiche simili (es.interruzione programma a 3, 6, 12 mesi, ricadute successive ecc)? Se si, esite la possibilità di stabilire delle graduatorie di merito?
RispondiEliminaGrazie
Daniele
ciao!!sto facendo vari test anova sui miei dati di laboratorio e il tuo articolo mi è risultato molto utile.Purtroppo però non riesco a capire come si fa a calcolare il livello di snificatività(pr)?
RispondiEliminaMartina
@Martina
RispondiEliminaIl livello di significatività corrisponde alla colonna Pr(>F). I numeri presenti sono il p-value, che andrai a confrontare con il tuo p-value di decisione (in genere 0.05), al fine di decidere se accettare o rifiutare l'ipotesi nulla.
La significatività dell'intero modello la puoi ottenere con la funzione summary(fit), alla voce p-value, per decidere se l'ipotesi nulla del modello è significativa o no.
Scusate, ma nel caso in cui avessi più repliche per cella, come si imposta lo schema?
RispondiEliminaPer essere precisi con il comando
RispondiElimina>fit = aov(entrate ~ mesi + anni)
si ottengono i risultati di due ANOVA a una via,
infatti nei commenti (corretti)
"Quindi si accetta l'ipotesi nulla: le medie valutate in base ai mesi sono uguali; quindi la variabile "mesi" non influisce sulle entrate."
"Quindi si accetta l'ipotesi nulla: le medie valutate in base agli anni sono uguali; quindi la variabile "anni" non influisce sulle entrate."
Si stanno commentanto i due risultati di due AOVA a una via.
L'ANOVA a due vie serve per confrontare i sottogruppi di mesi e anni assieme (cioè, per confrontare il sottogruppo dei dati corrispondenti a mese=gennaio e anno=1 con il sottogruppo dei dati corrispondenti a mese=marzo e anno=5) che in questo caso è privo di senso poichè si ha un solo dato per sottogruppo.
Il comando per l'ANOVA a due vie è semplicemente :
>fit = aov(entrate ~ mesi * anni)
Domanda: nell'esempio, Pr era minore di F e maggiore di 0.05 e abbiamo accettato l'ipotesi nulla.
RispondiEliminaSe avessimo avuto un caso in cui ad esempio Pr era minore di F, ma minore di 0.05 come lo avremmo interpretato?
Ciao, innanzitutto grazie per la spiegazione chiara di come implementare in R l'Anova a due vie. Ho però due dubbi: come faccio a valutare le interazioni? E come faccio i test post hoc dopo aver fatto un'Anova a due vie?
RispondiEliminaGrazie mille
prima di effettuare ANOVA, bisogna verificare alcuni requisiti?
RispondiElimina*assunzione di normalità;
*varianze uguale nei varie gruppi a confronto.
altrimenti si usa test non parametrico se le assunzioni non sono rispettati.
*l'altro dato, come verificare se ci sia interazione tra mesi e anni nel nostro esempio??
Come faccio a valutare le interazioni tra i due fattori?
RispondiElimina