set.seed(123)
porc_germ = c(
rnorm(40,60,6),
rnorm(40,70,7),
rnorm(40,80,8)
)
acido= gl(3, 40, 120, c("c0", "c1", "c2"))
datos = data.frame(acido,porc_germ)
head(datos)
table(datos$acido)
##
## c0 c1 c2
## 40 40 40
datos_des = datos[-c(50,111,120),]
table(datos_des$acido)
##
## c0 c1 c2
## 40 39 38
\[H_0:\mu_{co} = \mu_{c1} = \mu_{c2}\]
mod1 = aov(porc_germ~acido, datos)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## acido 2 7835 3918 98.15 <2e-16 ***
## Residuals 117 4670 40
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mu=mean(datos$porc_germ)
boxplot(datos$porc_germ ~datos$acido)
abline(h=mu, lty=2, col="purple")
mod2 = aov(porc_germ~acido, datos_des)
summary(mod2)
## Df Sum Sq Mean Sq F value Pr(>F)
## acido 2 7898 3949 98.39 <2e-16 ***
## Residuals 114 4576 40
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod3 = lm(porc_germ ~ acido, datos_des)
library(car)
## Warning: package 'car' was built under R version 4.2.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.2.3
library(carData)
mod3_res = Anova(mod3, type = 'II')
mod3_res
Siendo que el nivel de significiencia es del 0.05 (5%), se evidencia estadísticamente que se rechaza la hiótesis nula, significando que, al menos una de las medias de los ácidos empleados durante el experimento es diferente, por lo tanto, hay diferencia en el porcentaje de germinación.
Nota: Se usa test tipo II o conocido como método de Yates, para ordenar los datos y realizar el análisis de varianza de los bloques y tratamientos.
La veracidad de los dos métodos anteriores no afectarán los resultados del ANOVA.
Al tener un solo factor, los metodos son útiles sin importar si son balanceados o desbalanceados. Si se añaden más variables (bloques, etc), es necesario otro metodo de análisis.
set.seed(123)
porc_germ = c(
rnorm(40, 60, 6),
rnorm(40, 70, 7),
rnorm(40, 80, 8)
)
bloq = gl(3, 40, 120, c('B0','B1','B2'))
acido = gl(4, 10, 120, c('C0','C1','C2','C3'))
datos = data.frame(acido, bloq, porc_germ)
# datos_des = datos[-c(50, 111, 120), ]
datos_des = datos [-sample(120, 5), ]
datos_des
table(datos_des$bloq, datos_des$acido)
##
## C0 C1 C2 C3
## B0 10 8 10 9
## B1 10 10 10 10
## B2 9 10 10 9
mod1 = aov(porc_germ ~ bloq * acido,
datos_des)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## bloq 2 7478 3739 97.858 <2e-16 ***
## acido 3 238 79 2.073 0.108
## bloq:acido 6 276 46 1.203 0.311
## Residuals 103 3936 38
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod2 = lm(porc_germ ~ bloq * acido,
datos_des)
mod2_res = Anova(mod2, type='II')
mod2_res
mod3 = lm(porc_germ ~ bloq + acido+ bloq:acido, datos_des)
Anova(mod3, type='II')
mod3 = lm(porc_germ ~ acido + bloq + bloq:acido, datos_des)
Anova(mod3, type='II')
mod3 = lm(porc_germ ~ bloq:acido + acido + bloq, datos_des)
Anova(mod3, type='II')
mod3 = lm(porc_germ ~ bloq:acido + bloq + acido, datos_des)
Anova(mod3, type='II')
La organización de los datos no es relevante, siempre y cuando se realice la correcta selección del tipo de análisis.
Se tiene un total de 3 métodos de análisis en diseños desbalanceados, de los cuales, unicamente el tercero se emplea de forma generalizada como un ANOVA, desbalanceado mediante sumas de cuadrados.
El tipo II ofrece:
El método apropiado para la construcción de modelos ANOVA.
El método más potente cuando no hay interacción.
La invariante al orden en que se introducen los efectos en el modelo ANOVA, también se menciona que, si no hay un efecto interactivo significativo, entonces el tipo II es más potente en este caso, la interacción entre bloques y ácido no es significativa.
set.seed(123)
porc_germ = c(
rnorm(40, 60, 6),
rnorm(40, 70, 7),
rnorm(40, 80, 8)
)
diam_med = sort(rnorm(120, 12, 1.3))
bloq = gl(3, 40, 120, c('B0','B1','B2'))
acido = gl(4, 10, 120, c('C0','C1','C2','C3'))
datos = data.frame(acido, bloq,
porc_germ, diam_med)
datos_des = datos
datos_des[sample(120, 5), 'porc_germ'] = NA
table(datos_des$bloq, datos_des$acido)
##
## C0 C1 C2 C3
## B0 10 10 10 10
## B1 10 10 10 10
## B2 10 10 10 10
mod1 = lm(porc_germ ~ diam_med + bloq+ acido+ bloq:acido, datos_des)
Anova(mod1, type='II')
tapply(datos_des$porc_germ,
datos_des$acido,
mean)
## C0 C1 C2 C3
## 70.96384 NA NA NA
tapply(datos_des$porc_germ,
datos_des$acido,
mean, na.rm=TRUE)
## C0 C1 C2 C3
## 70.96384 72.04659 68.44023 69.07068
-Langsrud, Øyvind. 2003. ANOVA for unbalanced data: Use type II instead of type III sums of squares. Statistics and Computing. volume 13. pages 163-167. doi = 10.1023/A:1023260610025