ANOVA (Analysis of Variance)
Paola Lecca – CIBIO unitn
Corso di Matematica e Statistica 2
Queste slides sono state preparate riferendosi al testo
S. M. Iacus a G: Masarotto
Laboratorio di Statistica con R, McGraw-Hill
Regressione multilineare
Molto spesso è riduttivo pensare a modelli matematici di fenomeni naturali in cui solo le
variabili X e Y sono coinvolte.
Se Y è la variabile indipendente ( o variabile ”risposta”), in molte situazionii l’andamento
di Y può essere governato da più di una variabile.
sono detti regressori, mentre
coefficienti di regressione.
sono detti
Applicazione in R
Modello a due regressori x1 e x2. Esempio in R.
x1 <- runif(50)
x2 <- sin(runif(50))
y <- 4 + 2*x1 - x2 +rnorm(50)
lm(y ~ x1 + x2)
Call:
lm(formula = y ~ x1 + x2)
Coefficients:
(Intercept)
x1
3.817
2.169
x2
-0.923
Analisi della varianza (ad una via)
Un’applicazione notevole della regressione multidimensionale è l’analisi della varianza.
Il problema è il seguente:
si supponga di avere k gruppi di individue cui viene sperimentato un particolare
trattamento diverso per ogni gruppo;
indichiamo con
l’individuo numero j del gruppo i
indichiamo con
la media del gruppo i e con
Si può allora scrivere
nel modo seguente
la media complessiva.
Calcolo della devianza
La devianza delle
SST
(Total sum of squares)
è
SSB
(Sum of squares between groups)
SST = SSB + SSW
SSW
(Sum of squares within groups)
Calcolo della varianza
Se calcoliamo le varianze
sotto l’ipotesi di normalità si ha
Ci si aspetta che il rapporto
Statistica F
Sia maggiore di 1 se la differenza tra la media dei gruppi spiega la maggior parte di
variabilità del modello
Test di ipotesi
Si può quindi effettuare un test di ipotesi
H0: tutti gli
H1: almeno un
sono ugali
è diverso dagli altri.
In R un test di questo tipo si può effettuare utilizzando il comando lm e il comando
anova.
In pratica stiamo affrontando il problema di un test di ipotsi attraverso il ricorso
alla’nalisi della varianza.
Il comando anova in R: esempio
Tipo di
strutto
1
2
3
4
64
78
75
55
72
91
93
66
68
97
78
49
77
82
71
64
56
85
63
70
95
77
76
68
Esempio: i bomboloni di Lowe: grammi di materia grassa assorbita dai bomboloni
in realzione al tipo di strutto utilizzato per la cottura.
Si vuole verificare se l’assorbimento di materia grassa nella cottura varia al variare
del prodotto utilizzato per la frittura.
Soluzione in R
> x <- c(rep(1, 6), rep(2, 6), rep(3, 6), rep(4, 6))
> y <- c(64, 72, 68, 77, 56, 95,
+
78, 91, 97, 83, 85, 77,
+
75, 93, 78, 71, 63, 76,
+
55, 66, 49, 64, 79, 68)
>
> bomboloni <- data.frame(y, x)
>
> x <- factor(x)
>
> model <- lm(y ~ x)
> model
Questi numeri indicano le deviazioni
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept)
x2
72.00
13.17
x3
4.00
x4
-8.50
> anova(model)
Analysis of Variance Table
Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x
3 1457.0 485.67 4.3669 0.01609 *
Residuals 20 2224.3 111.22
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Il comando anova genera
una tabella.
Abbiamo trovato che il test è
significativo e quindi si rifiuta
l’ipotesi nulla.
La tabella ANOVA
Fonte di
variabilità
Gradi di
libertà
SS
MS
Statistica F
p-value
Regressio
ne
1
SSB
MSB
F= MSB/MSW
Pr(> F)
Residui
n-2
SSW
MSW
Totale
n-1
SST