Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TEMA 8 – ANOVA
Repaso
Pensemos en el siguiente ejemplo. Se desea analizar la influencia del tipo de suelos sobre la abundancia de romeros.
Para ello se toman 20 unidades de muestreo de 2x2 m2 sobre suelo rocoso y otras 15 sobre suelo calizo y para cada
unidad se contó la cantidad de plantas de romero en cada una. (romero.text)
boxplot(rom~sust,names=c("calizo","rocoso"))
viendo los boxplot pareciera que las varianzas no son iguales, pero para tener una mejor idea de esto y considerando
que tenemos los datos debemos realizar un test
Ho: sigma1^2/sigma2^2 = 1
H1: sigma1^2/sigma2^2 ≠ 1
var.test(rom~sust)
[2.077427 15.730538]
p-value = 0.0008138
Como el intervalo de confianza no contiene al 1 y además el pvalor es mucho más chico que el nivel de significancia pod
emos decir que las varianzas son iguales.
Como el intervalo de confianza no contiene al 0 y además el pvalor es más bajo que el nivel de significancia podemos
afirmar con un 95% de confianza que las medias no son iguales, es decir, tenemos evidencia suficiente para rechazar la
hipótesis nula
En base a todos estos resultados gráficos y numéricos podemos afirmar que las medias no son iguales, además nos
hemos basados en los correspondientes test de hipótesis para tener una idea más clara
Modelo corregido,
Donde media1 = media de cantidad de romero para el suelo tipo 1 y media2 = media de cantidad de romero para el tipo
de suelo 2
La hipótesis nula será entonces
Ho: media1 = media2
Lo aprendido hasta ahora era válido cuando solo queríamos comparar entre dos medias, ahora el problema surge al
pensar que haríamos en el caso de querer comparar más de 2 medias a la vez
El ejemplo de los romeros puede pensarse como un caso particular de lo que se denomina Problema de un factor con
dos niveles
Factor: Tipo de suelo
Niveles: Rocoso, Calizo
Veamos el siguiente ejemplo: Para estudiar si el tipo de dieta influye en el tiempo de supervivencia de ratas, se midió el
tiempo de supervivencia de 349 ratas femeninas que fueron asignados aleatoriamente a uno de los 6 tipos diferentes de
dietas das a continuación:
Factor: Tipo de dieta
Niveles: N/R50 lopro, N/N85, NP, N/R40, N/R50,R/R50
resumen grafico
boxplot(cuantovive~dieta)
3
viendo todos los boxplot no podemos decir nada concreto en cuanto a si la dieta afecta en la vida
resumen numérico
ns = tapply(cuantovive, dieta, length)
Promedio = tapply(cuantovive ,dieta, mean)
Desvio = tapply(cuantovive, dieta, sd)
print(cbind(ns, Promedio, Desvio), digits = 3)
ns Promedio Desvio
lopro 56 39.7 6.99
N/N85 57 32.7 5.13
N/R40 60 45.1 6.70
N/R50 71 42.3 7.77
NP 49 27.4 6.13
R/R50 56 42.9 6.68
Con base a los resultados graficos y numéricos podemos ver que según cual sea la dieta que comparemos habrá o no
diferencia entre el promedio de vida de las ratas. Por citar un ejemplo, si comparamos R/R50 y N/R50 puede verse clara
mente que no hay diferencia entre ellas, ni en su media ni en su variabilidad, pero si comparamos cualquiera de ellas dos
con NP si observamos una gran diferencia en sus medias, con lo cual lo aprendido hasta ahora es un poco burdo para
realizar este tipo de comparaciones, y necesitamos recurrir a algo mucho más poderoso, para esto recurriremos a lo que
denominamos como anjova
Generalizando lo anterior
Para analizar este tipo de datos suele plantearse el siguiente modelo lineal
En donde
Por lo tanto
4
Antes de efectuar el análisis definitivo, estas hipótesis deberán ser chequeadas pues si no se verifican podemos llegar a
obtener conclusiones erróneas. Para ello utilizaremos el método análisis de los residuos (ya volveremos a este punto).
Además de la pregunta inicial acerca de la igualdad de las medias de todas las poblaciones, podríamos estar interesados
en responder preguntas como:
1. ¿Se ve afectado el tiempo de vida si durante la lactancia se provee una dieta reducida y después de la lactancia se
provee una dieta reducida de 50 kcal/sm?
2. ¿Excede el tiempo de vida en una dieta reducida de 40 kcal/sm al de una dieta reducida de 50 kcal/sm?
3. Dada una dieta reducida de 50 kcal/sm, ¿existe algún efecto adicional en el tiempo de vida debido a consumo
decreciente de proteínas?
Algo MUUUYYYY IMPORTANTEEEEE!!! que debemos recalcar es que hemos supuesto que todas las poblaciones tienen
varianza constante sigma2 por lo tanto, podemos estimar simga2 con cualquiera de las varianzas muéstrales sigmai2
Antes, planteando el estadístico para el test de hipótesis de diferencia de medias, con varianzas desconocidas pero
supuestas iguales, el spull y el estadístico quedaban expresados de la siguiente manera
𝑥̅R/R50 − 𝑥̅N/R50
~ 𝑡nR/R50 + nN/R50 −2
1 1
𝑠𝑝 ∗ √n + n
R/R50 N/R50
Con el supuesto de que todas las varianzas son iguales se puede obtener un mejor estimador de sigma2, que lo
denominaremos con
Lo denominaremos como varianza agrupada “pooled”
Parece que las medias de todos los grupos son iguales? Las hipótesis a plantear serían las siguientes
Para realizar este test utilizaremos el método estadístico llamado análisis de la varianza o ANOVA. Aunque utilizamos el
termino varianza, ANOVA es un método acerca de medias pero que se basa en investigar diferencias en medias
comparando diferentes fuentes de variabilidad en los datos.
6
Si las medias de cada grupo son muy cercanas, podremos detectar una diferencia significativa (como en el caso
B) solo si la variabilidad de cada muestra (dentro de cada grupo) es chica.
Si la variabilidad es grande (como en el caso A) es posible que no detectemos tales diferencias.
Si las muestras tienen mucha variabilidad, necesitaremos que las medias de cada grupo estén más alejadas
(variabilidad entre grupos) para poder detectar diferencias (como en el caso C).
En el procedimiento del análisis de varianza se supone que cualquier variación que exista entre los promedios de los
agregados se atribuye a 1) la variación en la absorción entre observaciones dentro de los tipos de agregados, y 2) la
variación entre los tipos de agregados, es decir, a las diferencias en la composición química de los agregados. Por
supuesto, la variación dentro de los agregados se debe a varias causas. Quizá las condiciones de temperatura y humedad
no se mantuvieron constantes durante el experimento.
Es posible que haya habido cierta cantidad de heterogeneidad en los lotes de materias primas que se usaron. En todo
caso debe considerarse la variación dentro de la muestra como una variación aleatoria o al azar. Parte del objetivo del
análisis de varianza consiste en determinar si las diferencias entre las 5 medias muéstrales son lo que se esperaría
debido sólo a la variación aleatoria o si, más bien, se trata de una variación más allá de los simples efectos del azar,
como las diferencias en la composición química de los agregados.
En pocas palabras, las unidades experimentales son las unidades (ratones, pacientes, espécimen de concreto, tiempo)
que proporcionan la heterogeneidad que conduce al error experimental en una investigación científica. La asignación
aleatoria elimina el sesgo que podría originarse con una asignación sistemática. El objetivo consiste en distribuir en
forma uniforme entre los niveles de los factores los riesgos que introduce la heterogeneidad de las unidades
experimentales. Una asignación al azar simula mejor las condiciones que se asumen en el modelo.
Surge el problema ahora que conocer las medias muéstrales para cada grupo NO es suficiente para decir si son
diferentes o no
El método de ANOVA consiste en descomponer la variabilidad total de las observaciones en dos fuentes
1. La variabilidad DENTRO de cada nivel del factor: esto es, cuanto difieren las observaciones yi1,yi2,…,yin con
respecto a su media yi- para cada grupo i=1,2,…,I
7
2. la variabilidad ENTRE los niveles del factor: cuanto difieren las medias muéstrales y-1; y-2,…,y-I con respecto a la
media global muestral y-..
Fuentes de variabilidad
Dividimos la variabilidad total, medida por la Suma Total de Cuadrados (STC):
Como la suma de la variabilidad dentro de cada grupo y entre los grupos de la siguiente manera
Sin embargo, SCdentro y SCentre no son cantidades comparables. Para poder compararlas dividimos por sus grados de
libertad y así obtenemos las correspondientes Medias Cuadráticas:
8
Si H0 es cierta
si miramos cuan dispersos están los puntos rojos con respecto a la variabilidad de los puntos en cada caja, vemos que
Si H1 es cierta
si miramos cuan dispersos están los puntos rojos con respecto a la variabilidad de los puntos en cada caja, vemos que
𝑠𝑃2 ~ 𝜒 2 𝐼−1
𝜒 2 𝐼−1
𝑠𝑃2
𝐹0 = 2 = 𝐼 2− 1 ~ 𝐹(𝐼 − 1, 𝑛 − 1)
𝑠𝐹 𝜒 𝑛−1
𝑛−1
𝑠𝐹2 ~ 𝜒 2 𝑛−1
N = 1000
FF = numeric(N)
for (i in 1:N){
muestra = sample(cuantovive, replace = FALSE)
promedio = tapply(muestra, dieta, mean)
9
# s_Fˆ2
SFcuadrado=sum(ns*(promedio-mean(muestra))^2)/(I-1)
Desvio = tapply(muestra, dieta, sd)
# s_pˆ2
Spcuadrado = sum((ns-1)*Desvio^2)/(n-I)
#estadistico
FF[i] = SFcuadrado/Spcuadrado
}
hist(FF, freq = FALSE, ylim = c(0,1))
curve(df(x, I-1, n-I), add = TRUE)
Si H0 es cierta, este cociente está cercano a 1. Si H0 no es cierta este cociente es mayor que 1. Luego, este test rechaza
H0 con nivel de significación alfa si
#estadistico original
#medias
Promedio = tapply(cuantovive, dieta, mean)
#entre varianza
SFcuadrado=sum(ns*(Promedio-mean(cuantovive))^2)/(I-1)
Desvio = tapply(cuantovive, dieta, sd)
#dentro varianza
Spcuadrado = sum((ns-1)*Desvio^2)/(n-I)
Forig = SFcuadrado/Spcuadrado
# p-valor
mean(FF > Forig)
# pvalor=0
10
Por suerte en R podemos trabajarlo de manera directa a través del comando aov
dieta = as.factor(dieta)
modelo = aov(cuantovive~dieta)
summary(modelo)
Dado que el p-valor es muy chico, hay evidencia suficiente para afirmar que existen diferencias entre las medias de las
dietas.
# 1) Grafico exploratorio
boxplot(Serum~Grupo)
# Podemos observar que las cajas se hallan bastantes superpuestas unas con otras. G2 y G3 parecen tener la mayor
# variabilidad y G3 la mayor media
# 2) resumen numérico
ns = tapply(Serum, Grupo, length)
Promedio = tapply(Serum, Grupo, mean)
Desvio = tapply(Serum, Grupo, sd)
print(cbind(ns, Promedio, Desvio), digits = 3)
# ns Promedio Desvio
11
# G1 20 73.0 25.7
|# G2 9 48.9 47.1
# G3 9 93.6 46.6
# G4 7 101.1 30.8
# Si comparamos 2 con 4 parece haber una gran diferencia entre sus medias, mientras que si comparamos 4 y 3
# no parecería que la diferencia sea muy significativa
# 3) Hipótesis a testear
# Ho: mu1=mu2=mu3=mu4
# H1: mui=!muj (Cualquiera sea, no importa cuál)
# 4) Análisis estadistico
Grupo = as.factor(Grupo)
modelo = aov(Serum~Grupo)
summary(modelo)
# Df Sum Sq Mean Sq F value Pr(>F)
# Grupo 3 13939 4646 3.569 0.022 *
# Residuals 41 53376 1302
#---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#5) Conclusión
# Como pvalor es menos a alfa, contamos con la evidencia suficiente para rechazar Ho y decir que existe
# diferencia entre las medias observadas
Para el caso de querer comparar de manera múltiple existen varios métodos que minimizan la probabilidad de error,
siendo dos de los más importantes el de Bonferroni y el de Tukey
Método de Bonferroni
consiste en bajar el valor de significación individual alfa, usando en su lugar alfa~ = alfa/k donde k es la cantidad de
comparaciones y realizar todos los contrastes de a pares con este nuevo alfa~
12
Desventaja: es muy conservador ya que el alfa~ es muy pequeño y por lo tanto rechaza menos de lo que debería
rechazar.
Se puede usar para testear todas las hipótesis simultáneamente:
Método de Tukey
Permite la formación de intervalos de confianza del 100(1 – α)% simultáneos para todas las comparaciones por pares. El
método se basa en la distribución del rango estudentizado. El punto apropiado del percentil es una función de α, k y v =
grados de libertad para s2.
Este método se basa en el siguiente estadístico
modelo = aov(cuantovive~dieta)
tukey = TukeyHSD(modelo)
# 7) ordenar las medias de menor a mayor en indicar cuales son estadísticamente equivalentes a un nivel alfa 5%
# Como lo hago?
14
Para probar la hipótesis nula especificada con H0 en comparación con alternativas bilaterales para una situación
experimental donde existen k tratamientos, sin incluir el control, y n observaciones por tratamiento, primero calculamos
los valores
Este método es menos conservador (Compara solo con el que tenemos que comparar, es decir, achica el número de
comparaciones a realizar)
library(multcomp)
dieta1 = relevel(dieta,"N/N85")
modelo1 = aov(cuantovive~dieta1)
dunnett = glht(modelo1, linfct = mcp(dieta1 = "Dunnett"))
summary(dunnett)
ANOVA de un factor
De k poblaciones se seleccionan muestras aleatorias de tamaño n. Las k poblaciones diferentes se clasifican con base en
un criterio único, como tratamientos o grupos distintos. El término tratamiento se utiliza por lo general para designar las
diversas clasificaciones, ya sean diferentes agregados, analistas, fertilizadores o regiones del país.
Hipótesis del ANOVA de un solo factor
Se supone que las k poblaciones son independientes y que están distribuidas en forma normal con medias μ1, μ2,..., μk,
y varianza común sigma2. Se desean obtener métodos adecuados para probar las hipótesis
Sea que yij denote la j-ésima observación del i-ésimo tratamiento. Yi es el total de todas las observaciones de la muestra,
del i-ésimo tratamiento, y-i, es la media de todas las observaciones en la muestra del i-ésimo tratamiento, Y.. es el total
de todas las nk observaciones, y y-... es la media de todas las nk observaciones.
donde eij mide la desviación que tiene la observación j-ésima de la i-ésima muestra, con respecto de la media del
tratamiento correspondiente. El término eij representa el error aleatorio
Una forma alternativa y preferible de esta ecuación se obtiene sustituyendo sujeta a la restricción
.Por lo tanto
Entonces, la identidad de la suma de los cuadrados se puede representar simbólicamente con la ecuación
La identidad anterior expresa cómo las variaciones entre los tratamientos y dentro de los tratamientos contribuyen a la
suma total de cuadrados. Sin embargo, se puede obtener mucha información si se investiga el valor esperado tanto de
SCT como de SCE
y s12 estima a simga2 más un término adicional, que mide la variación debida a los efectos sistemáticos.
Cuando H0 es verdadera, la razón f = s12 /s22 es un valor de la variable aleatoria F, que tiene la distribución F con k – 1 y
k(n – 1) grados de libertad. Como s12 sobrestima a sigma2 cuando H0 es falsa, se tiene una prueba de una cola con la
región crítica localizada por completo en la cola derecha de la distribución. A un nivel de significancia de α se rechaza la
hipótesis nula H0 cuando
Para concluir nuestro estudio del análisis de varianza para la clasificación de un solo factor mencionaremos las ventajas
de elegir muestras del mismo tamaño en vez de otras de tamaños distintos. La primera ventaja es que la razón f no es
sensible a pequeñas desviaciones de la suposición de varianzas iguales para las k poblaciones cuando las muestras son
del mismo tamaño. La segunda consiste en que muestras del mismo tamaño minimizan la probabilidad de cometer un
error tipo II.
hemos supuesto que los errores aleatorios son independientes con distribución
En principio, los errores no son observables, sin embargo, podemos estimarlos a partir de los residuos
Por lo tanto, chequearemos si las hipótesis del modelo (es decir, sobre los errores) se verifican a través del análisis de los
residuos.
par(mfrow=c(2,2))
18
plot(modelo)
Analisis de residuos
Para testear homogeneidad de varianzas
library(lawstat)
levene.test(cuantovive, dieta, location = ‘’median’’)
modified robust Brown-Forsythe Levene-type test based on the absolute deviations from the
median
data: cuantovive
Test Statistic = 2.7212, p-value = 0.01989
#Como el pvalor es menor al alfa, al menos una de las varianzas son distintas, contamos c
on elementos suficientes para descartar la Ho
El test de Levene utilizando la mediana es más robusto a la no normalidad de los datos que otros test
library(car)
19
influenceIndexPlot(modelo)
Bloques
la división de las unidades experimentales en pares homogéneos denominados bloques.
Para ensamblar un producto específico una empresa considera cuatro máquinas diferentes M1, M2, M3 y M4.
La empresa desea testear si las máquinas se desempeñan con la misma velocidad media.
Para ello se registró ´o la cantidad de tiempo (en segundos) que tomo ensamblar un producto. Tomándose para cada
máquina 6 mediciones diferentes.
attach(maquinas)
names(maquinas)
# análisis grafico
boxplot(tiempo~maq)
20
# resumen numerico
ns = tapply(tiempo, maq, length)
Promedio = tapply(tiempo, maq, mean)
Desvio = tapply(tiempo, maq, sd)
print(cbind(ns, Promedio, Desvio), digits = 3)
ns Promedio Desvio
1 6 41.3 1.90
2 6 41.4 1.41
3 6 42.6 2.19
4 6 43.2 1.66
maq = as.factor(maq)
modelo = aov(tiempo~maq)
summary(modelo)
Df Sum Sq Mean Sq F value Pr(>F)
maq 3 15.92 5.308 1.61 0.219
Residuals 20 65.94 3.297
# Como pvalor es grande, no se rechazó Ho y no se cuenta con evidencia suficiente para decir que exista
# diferencia entre los tiempos medios de operación de las maquinas
En este ejemplo no se ha tenido en cuenta que operario manejaba cada máquina, sin embargo, la operación de
las máquinas requiere destreza física y por lo tanto habrá diferencias en las velocidades con la que los
operadores trabajan con las máquinas.
No rechazamos H0, aunque en el grafico parezca lo contrario, probablemente porque la variación debida a la no
homogeneidad de las unidades experimentales es tan grande que no permite detectar si existen diferencias
entre las medias de cada tratamiento.
La solución sería que el mismo operario opere con las 4 máquinas a fin de considerar grupos más homogéneos.
Es decir, asignar al azar las máquinas a cada operador. Este plan experimental se denomina diseño por bloques
completamente aleatorio.
En general
21
Fuentes de variabilidad
La Suma Total de Cuadrados (STC) ahora queda de la siguiente manera
Medias Cuadráticas
Dividiendo por los grados de libertad obtenemos las correspondientes Medias Cuadráticas
Si H0 es cierta, este cociente esta ´a cerca de 1. Si H0 no es cierta este cociente es mayor que 1. Luego, este test rechaza
H0 con nivel de significación alfa si:
oper = as.factor(oper)
modelo = aov(tiempo~maq+oper)
summary(modelo)
Df Sum Sq Mean Sq F value Pr(>F)
22
Rechazamos H0, es decir, existe evidencia suficiente para afirmar que hay al menos un par de medias de las máquinas
que son diferentes.
$maq
diff lwr upr p adj
2-1 0.08333333 -2.0148109 2.181478 0.9994381
3-1 1.26666667 -0.8314776 3.364811 0.3386299
4-1 1.93333333 -0.1648109 4.031478 0.0760099
3-2 1.18333333 -0.9148109 3.281478 0.3947312
4-2 1.85000000 -0.2481443 3.948144 0.0934325
4-3 0.66666667 -1.4314776 2.764811 0.7968901
$oper
diff lwr upr p adj
2-1 -0.425 -3.32174356 2.471744 0.9963219
3-1 0.275 -2.62174356 3.171744 0.9995412
4-1 1.500 -1.39674356 4.396744 0.5621076
5-1 3.100 0.20325644 5.996744 0.0326736
6-1 2.575 -0.32174356 5.471744 0.0960135
3-2 0.700 -2.19674356 3.596744 0.9659089
4-2 1.925 -0.97174356 4.821744 0.3108748
5-2 3.525 0.62825644 6.421744 0.0131909
6-2 3.000 0.10325644 5.896744 0.0403207
4-3 1.225 -1.67174356 4.121744 0.7410812
5-3 2.825 -0.07174356 5.721744 0.0579800
6-3 2.300 -0.59674356 5.196744 0.1625780
5-4 1.600 -1.29674356 4.496744 0.4971631
6-4 1.075 -1.82174356 3.971744 0.8275424
6-5 -0.525 -3.42174356 2.371744 0.9902750
Aunque haya heterogeneidad en las unidades experimentales, no siempre bloquear tiene ventajas. El propósito
de bloquear es reducir la varianza del error y por lo tanto aumentar la potencia del test para detectar ciertas
diferencia entre las medias de los tratamientos. Esta ´ última se incrementa cuando la varianza del error
disminuye., sin embargo, también se ve afectada por los grados de libertad con los que se estima la varianza, y la
formación de bloques reduce los grados de libertad. De modo que si no hubiera una reducción significativa de la
varianza del error, con la formación de bloques podría perderse potencia del test.
Una suposición importante que está implícita en la escritura del modelo para un diseño por bloques es que se
supone que no hay interacción entre los niveles del factor. Si existe interacción, esta puede ser real o puede
deberse al error experimental. En el ejemplo hemos supuesto que la interacción aparente se debía por
completo al error experimental.
Si la variabilidad de nuestros datos se debiera en parte al efecto de la interacción, esa fuente de variación
también formaría parte de la suma de cuadrados del error, por lo que el error cuadrático medio (o como lo
23
hemos llamado MCE) sobreestimaría sigma2 incrementando la probabilidad de error de tipo II (prob. de no
rechazar H0 cuando es falsa).