Sei sulla pagina 1di 23

1

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

Haciendo un resumen numérico


ns = tapply(rom, sust, length)
Promedio = tapply(rom, sust, mean)
Desvio = tapply(rom, sust, sd)
print(cbind(ns, Promedio, Desvio), digits = 3)
ns Promedio Desvio
0 15 7.67 4.19
1 20 1.85 1.79

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.

Planteando entonces ahora el estadístico


Ho: muc-mur = 0
H1: muc-mur ≠ 0
Estadistico: T=((xbarrac-xbarrar))/(sp*sqrt(1/nc + 1/nr))~t
xbarrac: media para el suelo calizo
xbarrar: media para el suelo rocoso
t.test(rom~sust)
[3.394349 8.238984]
p-value = 8.595e-05
2

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

ns = tapply(rosm, sust, length)


Promedio = tapply(rosm, sust, mean)
Desvio = tapply(rosm, sust, sd)
print(cbind(ns, Promedio, Desvio), digits = 3)

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

Imaginemos que queremos pensar esto como un modelo

Sea Y= la cantidad de romero.


Modelo básico, si media=media de cantidad de romero

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

Supongamos que tenemos los datos ordenados como sigue

Generalizando lo anterior

Para analizar este tipo de datos suele plantearse el siguiente modelo lineal

En donde

Por lo tanto
4

Para el desarrollo de dicho modelo hemos de hacer algunos supuestos


 Normalidad de las poblaciones
 Varianzas constantes sigma1 = sigma2 = … = sigma
 Independencia de las observaciones dentro de cada muestra
 Independencia de las observaciones entre cada muestra

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).

Introduciendo algo más de notación

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?

Intentemos responder a la pregunta 1)


Planteando las hipótesis

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

(nR/R50 − 1) ∗ varR/R50 + (nN/R50 − 1) ∗ varN/R50


𝑠𝑝 = √
nR/R50 + nN/R50 − 2
5

𝑥̅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”

De donde los grados de libertad asociados a sp2 son n-I

Calculando la varianza agrupada para el ejemplo anterior de las dietas


dieta = as.factor(dieta)
I = length(levels(dieta))
n = length(cuantovive)
sp2 = sum((ns-1)*Desvio^2)/(n-I)
sp = sqrt(sp2)
sp=6.678239

Calculando ahora si el estadístico del test


# ESTADISTICO
RR50 = cuantovive[dieta=="R/R50"]
NR50 = cuantovive[dieta=="N/R50"]
t0 = (mean(RR50)-mean(NR50))/
(sp*sqrt(1/length(RR50) + 1/length(NR50)))
t0
t0= 0.493093
t = qt(0.975,n-I)
t= 1.966904
PVALOR
pvalor = 2*(1-pt(t0, df = n-I))
# pvalor= 0.6222624
Dado que el p-valor es grande, no rechazamos H0, es decir, no tenemos evidencia suficiente para afirmar que el tiempo
de vida se ve afectado si durante la lactancia se provee una dieta reducida y después de la lactancia se provee una dieta
reducida de 50 kcal/sm., Lo cual coincide con la conclusión exploratoria

Entremos de lleno al concepto de ANOVA


El material que se refiere a las inferencias de dos muestras representa un caso especial de lo que se denomina problema
de un solo factor. En este caso decimos que hay un factor, es decir, un tratamiento, y el factor se halla en dos niveles..
Un procedimiento muy común que se utiliza cuando se prueban medias de la población se denomina análisis de
varianza, o ANOVA

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

Veamos los siguientes 3 ejemplos ilustradores

 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.

Comenzaremos a hablar de 2 clases de variabilidades a partir de ahora


1. Cuanta variabilidad existe DENTRO de cada grupo (se refiere al ancho propio de una caja en particular)
2. Cuanta variabilidad existe ENTRE los grupos (se refiere a la mayor distancia que podamos encontrar entre una
cola inferior de una de las cajas y una cola superior de la otra, por ejemplo, en dataset C, la variabilidad ente las
cajas será la distancia de la cola inferior de la caja 3 hasta la cola superior de la caja 2)

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

Para testear las hipótesis utilizamos el estadístico

Y como se distribuye F0?

𝑠𝑃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)

Para testear las hipótesis utilizamos el estadistico

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

Pvalor vía test de permutaciones.


Hemos simulado bajo la hipótesis nula cuando vimos la distribución del estadistico bajo la hipótesis nula. Entonces, para
calcular el p-valor solo necesitamos calcular el estadistico original y comparar con la muestra

#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)

Df Sum Sq Mean Sq F value Pr(>F)


dieta 5 12734 2546.8 57.1 <2e-16 ***
Residuals 343 15297 44.6
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Dado que el p-valor es muy chico, hay evidencia suficiente para afirmar que existen diferencias entre las medias de las
dietas.

Analicemos el siguiente ejemplo


# Parte de un estudio que se llevó acabo en el Instituto Politécnico y Universidad Estatal de Virginia
# se diseñó para medir los niveles de actividad de fosfata alcalina en suero de niños con trastornos
# convulsivos que reciben terapia contra convulsiones bajo el cuidado de un medico particular. Para una
# muestra de 45 niños, se determinó el nivel de actividad de la fosfatasa alcalina en suero a partir de
# muestras sanguíneas y se realizó una clasificación de acuerdo al medicamento administrado
# (los datos se encuentran en ’serum.txt’)
attach(serum)
names(serum)
# Factor: niveles de actividad de fosfata alcalina en sueros de niños con trastornos convulsivos
# Niveles: G1(control),G2(Fenobarbital),G3(Carbamacepina),G4(Otros anticonvulsionantes)
# Queremos ver si existen diferencias entre los niveles promedios de actividad fosfata alcalina

# 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

Que haceos una vez finalizado el ANOVA?


 Si no rechazamos H0: es que no hemos encontrado diferencias significativas en las medias de los diferentes
niveles del factor, por lo tanto nuestro análisis ha terminado.
 Si rechazamos H0: es que hemos encontrado diferencias significativas en las medias de los diferentes niveles del
factor, ahora todo está en saber cuáles son las medias que significativamente difieren.

Porque no utilizar pruebas de a dos?


En el ejemplo de las dietas hemos rechazado H0, es decir, existen diferencias significativas entre al menos un par de
medias. Para buscar cuales parejas son distintas entre sí, supongamos que hacemos comparaciones dos a dos con nivel
alfa= 0.05
 Comparaciones: k=6(6-1)/2=15
 Para un test, alfa=P(falso rechazo)= P(rechazo Ho|Ho es verdadera)
 La probabilidad de al menos un falso rechazo en los 15 test es mucho más grande, ya que

CONCLUSION!!!: Realizar comparaciones de a dos NUNCA ES BUENA ESTRATATEGIA

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

bonferroni = pairwise.t.test(cuantovive, dieta, "bonferroni")


Pairwise comparisons using t tests with pooled SD
data: cuantovive and dieta
lopro N/N85 N/R40 N/R50 NP
N/N85 7.9e-07 - - - -
N/R40 0.00024 < 2e-16 - - -
N/R50 0.44018 1.6e-13 0.24881 - -
NP < 2e-16 0.00089 < 2e-16 < 2e-16 -
R/R50 0.17507 1.3e-13 1.00000 1.00000 < 2e-16
P value adjustment method: bonferroni

Observar que en este caso

 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:

para todo i, j no igual. Cada hipótesis separadamente se rechazan o se aceptan.


 Para construir intervalos de confianza simultáneos para todas las diferencias de medias.
 NO es necesario usar anova (acepta más que anova).
 Es muy conservador, acepta más hipótesis nulas no verdaderas que el 5%.

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)

Tukey multiple comparisons of means


95% family-wise confidence level
Fit: aov(formula = cuantovive ~ dieta)
$dieta
diff lwr(LI) upr(LS) p adj
N/N85-lopro -6.9944862 -10.5955556 -3.3934168 0.0000008
13

N/R40-lopro 5.4309524 1.8747778 8.9871269 0.0002306


N/R50-lopro 2.6114688 -0.8091319 6.0320696 0.2460200
NP-lopro -12.2836735 -16.0275913 -8.5397556 0.0000000
R/R50-lopro 3.2000000 -0.4169683 6.8169683 0.1167873
N/R40-N/N85 12.4254386 8.8854359 15.9654413 0.0000000
N/R50-N/N85 9.6059550 6.2021702 13.0097399 0.0000000
NP-N/N85 -5.2891873 -9.0177476 -1.5606269 0.0008380
R/R50-N/N85 10.1944862 6.5934168 13.7955556 0.0000000
N/R50-N/R40 -2.8194836 -6.1757356 0.5367684 0.1564608
NP-N/R40 -17.7146259 -21.3998448 -14.0294069 0.0000000
R/R50-N/R40 -2.2309524 -5.7871269 1.3252222 0.4684413
NP-N/R50 -14.8951423 -18.4497127 -11.3405719 0.0000000
R/R50-N/R50 0.5885312 -2.8320696 4.0091319 0.9963976
R/R50-NP 15.4836735 11.7397556 19.2275913 0.0000000

Otra forma de hacerlo


library(multcomp)
TT = glht(modelo, linfct = mcp(dieta ="Tukey"))
summary(TT)

 Se puede usar para testear todas las hipótesis simultáneamente:

para todo i, j no igual. Cada hipótesis separadamente se rechazan o se aceptan.


 Para construir intervalos de confianza simultáneos para todas las diferencias de medias.
 NO es necesario usar anova (acepta más que anova).
 Cuando el tamaño muestral no es el mismo, acepta más hipótesis nulas no verdaderas que el 5%. Es exacto
cuando el tamaño muestral en cada nivel es el mismo.

Cual conviene elegir? Tukey o Bonferroni?


El que de intervalos más pequeños. Si nos interesa comparar todas las medias cualquier de los dos está bien, así que
usaremos el que de intervalos más pequeños. (Porque así vemos más diferencias).

# Prosiguiendo con el ejemplo del serum


#6) comparaciones múltiples para decidir cuales pares de anticombulsionantes son equivalentes a nivel 5%
modelo = aov(Serum~Grupo)
tukey = TukeyHSD(modelo)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Serum ~ Grupo)
$Grupo
diff lwr upr p adj
G2-G1 -24.083611 -62.8623719 14.69515 0.3559919
G3-G1 20.593056 -18.1857052 59.37182 0.4932701
G4-G1 28.046071 -14.3815851 70.47373 0.3021631
G3-G2 44.676667 -0.8666781 90.22001 0.0562625
G4-G2 52.129683 3.4417990 100.81757 0.0317756
G4-G3 7.453016 -41.2348677 56.14090 0.9764492

# 7) ordenar las medias de menor a mayor en indicar cuales son estadísticamente equivalentes a un nivel alfa 5%
# Como lo hago?
14

Comparaciones con un control


En muchas aplicaciones en Ingeniería no interesa hacer todas las comparaciones posibles entre las medias de los
diferentes niveles del factor sino comparar cada nivel con un control. Es decir, interesa testear

Donde media0 representa la media para la población de control.


Para ello nos basamos en el Método de Dunnet
En muchos problemas científicos y de ingeniería no nos interesa hacer inferencias acerca de todas las comparaciones
posibles entre las medias de los tratamientos del tipo μi – μj. En vez de ello es frecuente que el experimento dicte la
necesidad de comparar simultáneamente cada tratamiento con un control. Un procedimiento de prueba desarrollado
por C. W. Dunnett determina diferencias significativas entre cada media de tratamiento y el control, con un solo nivel
conjunto de significancia
En general, se desea probar las k hipótesis

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)

Simultaneous Tests for General Linear Hypotheses


Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = cuantovive ~ dieta1)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
lopro - N/N85 == 0 6.994 1.257 5.567 < 1e-04 ***
N/R40 - N/N85 == 0 12.425 1.235 10.059 < 1e-04 ***
N/R50 - N/N85 == 0 9.606 1.188 8.088 < 1e-04 ***
NP - N/N85 == 0 -5.289 1.301 -4.065 0.000291 ***
R/R50 - N/N85 == 0 10.194 1.257 8.113 < 1e-04 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

# Siguiendo con el ejemplo de serum


#8) Compare los diferentes anticonvulsivos con el control (G1) a nivel 5 %. ¿Cuáles de los 3 anticonvulsivos
# es estadísticamente equivalente al control (es decir, a no dar nada)?
library(multcomp)
grupo1 = relevel(Grupo,"G1")
modelo1 = aov(Serum~grupo1)
15

dunnett = glht(modelo1, linfct = mcp(grupo1 = "Dunnett"))


summary(dunnett)

Simultaneous Tests for General Linear Hypotheses


Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = Serum ~ grupo1)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
G2 - G1 == 0 -24.08 14.48 -1.663 0.264
G3 - G1 == 0 20.59 14.48 1.422 0.391
G4 - G1 == 0 28.05 15.85 1.770 0.218
(Adjusted p values reported -- single-step method)

PREGUNTAR. PUEDE SER QUE SEA NINGUNO?

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.

Modelo del ANOVA de un solo factor


Cada observación puede escribirse en la forma

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

donde μ tan sólo es la media general de todas las μi, es decir,

y αi se denomina el efecto del i-ésimo tratamiento.


La hipótesis nula de que k medias de la población son iguales, en comparación con la alternativa de que al menos dos de
las medias son distintas, ahora se puede reemplazar por las hipótesis equivalentes.
16

Solución de la variabilidad total en componentes


Nuestra prueba se basará en una comparación de dos estimados independientes de la varianza poblacional común
sigma2. Dichos estimadores se obtendrán haciendo la partición de la variabilidad total de nuestros datos, denotados
mediante la sumatoria doble

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

Eventualmente calcularemos estimados de la varianza que determinan la razón que

Si H0 es verdadera, un estimado de σ 2 basado en k – 1 grados de libertad es dado por la expresión:

y s12 es un estimado no sesgado de sigma2. Sin embargo, si H1 es verdadera, se tiene que

y s12 estima a simga2 más un término adicional, que mide la variación debida a los efectos sistemáticos.

Otro estimado independiente de σ 2, basado en k(n – 1) grados de libertad, es la fórmula familiar:


17

Uso de la prueba F en el ANOVA


El estimado s2 es no sesgado, independientemente de la veracidad o falsedad de la hipótesis nula, la identidad de la
suma de cuadrados ha hecho la partición no sólo de la variabilidad total de los datos, sino también del número total de
grados de libertad. Es decir:

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

Otro método, el del valor P, sugiere que la evidencia a favor o en contra de H0 es

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.

Comprobación de las hipótesis del modelo


Esto debe realizarse antes de hacer las comparaciones múltiples

Recordemos que en el modelo

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

Siguiendo con serum


9) Realice un análisis de residuos
library(car)
outlierTest(modelo)
No Studentized residuals with Bonferonni p < 0.05
Largest |rstudent|:
rstudent unadjusted p-value Bonferonni p
34 2.547918 0.014783 0.66523
Vemos que del archivo serum.txt, el dato número 34 es un outlier y tiene un pvalor que lo confirma (mirar el pvalor de
Bonferroni siempre
Este test es utilizado para testear la hipótesis nula de que un punto (el más extremo) no es un outliers vs. que lo es.

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.

El diseño por bloques aleatorizados en este caso es el siguiente

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

Para testear las hipótesis utilizamos el estadístico

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

maq 3 15.92 5.308 3.339 0.04790 *


oper 5 42.09 8.417 5.294 0.00533 **
Residuals 15 23.85 1.590
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Rechazamos H0, es decir, existe evidencia suficiente para afirmar que hay al menos un par de medias de las máquinas
que son diferentes.

Analizando los outliers


outlierTest(modelo)
No Studentized residuals with Bonferonni p < 0.05
Largest |rstudent|:
rstudent unadjusted p-value Bonferonni p
1 2.911355 0.011384 0.27321

Aplicando el método de tukey


tukey = TukeyHSD(modelo)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = tiempo ~ maq + oper)

$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).

Potrebbero piacerti anche