DISEÑO DESBALANCEADO

En esta clase se va a explicar como se haria el analisis de los resultados de un diseño experimental, si dado el caso hubieran datos faltantes, a esto se le conoce como diseño desbalanceado.

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)
##   acido porc_germ
## 1    c0  56.63715
## 2    c0  58.61894
## 3    c0  69.35225
## 4    c0  60.42305
## 5    c0  60.77573
## 6    c0  70.29039
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

#Hipotesis del modelo todas las medias de los tratamietos son iguales \[H_0:\mu_{co}=\mu_{c1}=\mu_{c2}\] #Analisis de varianza baleanceado

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

#Conclusion: con un nivel de significiencia del 0.05, hay evidencia estadistica para rechazar la hipotesis nula, lo que significa que por lo menos una de las medias de los acidos empleados en el experimentos es diferente, por lo tanto hay diferencia en el porcentanje de germinacion.

mu=mean(datos$porc_germ)
boxplot(datos$porc_germ ~datos$acido)
abline(h=mu, lty=2, col="purple")

Interpretacion: Se observa que en c1 hay un dato atipico, ademas de que se obseva que usando el acido c2 se obtiene un mayor porcentaje de germinacion, y se observa que las medias son diferentes.

Analisis de varianza desbalanceado (con los datos desbalanceados)

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

Se observa que la media del acido incremento, al tener que estimar nuevos datos en esta tambien se rechaza la hipotesis nula.

mod3 = lm(porc_germ ~ acido, datos_des)
library(car)
## Loading required package: carData
library(carData)
mod3_res = Anova(mod3, type = 'II')
mod3_res
## Anova Table (Type II tests)
## 
## Response: porc_germ
##           Sum Sq  Df F value    Pr(>F)    
## acido     7898.3   2  98.392 < 2.2e-16 ***
## Residuals 4575.6 114                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Conclusion Con un nivel de significiencia del 0.05, hay evidencia estadistica para rechazar la hipotesis nula, lo que significa que por lo menos una de las medias de los acidos empleados en el experimentos es diferente, por lo tanto hay diferencia en el porcentanje de germinacion. Nota: Se usa test tipo II(metodo de yates) para ordenar los datos para realizar el analisis de varianza, en cuanto a los bloques y los tratamientos, no afectara los resltados del ANOVA La veracidad de los 2 metodos anteriores, y con ello se concluye que al tener un solo factor, los metodos son utiles sin importar si son balanceados o desbalanceados; al añadir mas variables (bloques, etc) es necesario otro metodo de analisis.

#Ahora se va a aplicar bloques completos y generalizados, al mismo diseño desbalanceado.

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
##     acido bloq porc_germ
## 1      C0   B0  56.63715
## 2      C0   B0  58.61894
## 3      C0   B0  69.35225
## 4      C0   B0  60.42305
## 5      C0   B0  60.77573
## 6      C0   B0  70.29039
## 7      C0   B0  62.76550
## 8      C0   B0  52.40963
## 9      C0   B0  55.87888
## 10     C0   B0  57.32603
## 11     C1   B0  67.34449
## 12     C1   B0  62.15888
## 13     C1   B0  62.40463
## 15     C1   B0  56.66495
## 17     C1   B0  62.98710
## 18     C1   B0  48.20030
## 19     C1   B0  64.20814
## 20     C1   B0  57.16325
## 21     C2   B0  53.59306
## 22     C2   B0  58.69215
## 23     C2   B0  53.84397
## 24     C2   B0  55.62665
## 25     C2   B0  56.24976
## 26     C2   B0  49.87984
## 27     C2   B0  65.02672
## 28     C2   B0  60.92024
## 29     C2   B0  53.17118
## 30     C2   B0  67.52289
## 31     C3   B0  62.55879
## 32     C3   B0  58.22957
## 34     C3   B0  65.26880
## 35     C3   B0  64.92949
## 36     C3   B0  64.13184
## 37     C3   B0  63.32351
## 38     C3   B0  59.62853
## 39     C3   B0  58.16422
## 40     C3   B0  57.71717
## 41     C0   B1  65.13705
## 42     C0   B1  68.54458
## 43     C0   B1  61.14223
## 44     C0   B1  85.18269
## 45     C0   B1  78.45573
## 46     C0   B1  62.13824
## 47     C0   B1  67.17981
## 48     C0   B1  66.73341
## 49     C0   B1  75.45976
## 50     C0   B1  69.41642
## 51     C1   B1  71.77323
## 52     C1   B1  69.80017
## 53     C1   B1  69.69991
## 54     C1   B1  79.58022
## 55     C1   B1  68.41960
## 56     C1   B1  80.61529
## 57     C1   B1  59.15873
## 58     C1   B1  74.09230
## 59     C1   B1  70.86698
## 60     C1   B1  71.51159
## 61     C2   B1  72.65748
## 62     C2   B1  66.48374
## 63     C2   B1  67.66755
## 64     C2   B1  62.86997
## 65     C2   B1  62.49746
## 66     C2   B1  72.12470
## 67     C2   B1  73.13747
## 68     C2   B1  70.37103
## 69     C2   B1  76.45587
## 70     C2   B1  84.35059
## 71     C3   B1  66.56278
## 72     C3   B1  53.83582
## 73     C3   B1  77.04017
## 74     C3   B1  65.03559
## 75     C3   B1  65.18394
## 76     C3   B1  77.17900
## 77     C3   B1  68.00659
## 78     C3   B1  61.45498
## 79     C3   B1  71.26912
## 80     C3   B1  69.02776
## 81     C0   B2  80.04611
## 82     C0   B2  83.08224
## 83     C0   B2  77.03472
## 84     C0   B2  85.15501
## 85     C0   B2  78.23611
## 86     C0   B2  82.65426
## 88     C0   B2  83.48145
## 89     C0   B2  77.39255
## 90     C0   B2  89.19046
## 91     C1   B2  87.94803
## 92     C1   B2  84.38718
## 93     C1   B2  81.90985
## 94     C1   B2  74.97675
## 95     C1   B2  90.88522
## 96     C1   B2  75.19792
## 97     C1   B2  97.49866
## 98     C1   B2  92.26089
## 99     C1   B2  78.11440
## 100    C1   B2  71.78863
## 101    C2   B2  74.31675
## 102    C2   B2  82.05507
## 103    C2   B2  78.02646
## 104    C2   B2  77.21966
## 105    C2   B2  72.38705
## 106    C2   B2  79.63978
## 107    C2   B2  73.72076
## 108    C2   B2  66.65646
## 109    C2   B2  76.95819
## 110    C2   B2  87.35197
## 111    C3   B2  75.39722
## 112    C3   B2  84.86371
## 113    C3   B2  67.05694
## 114    C3   B2  79.55550
## 115    C3   B2  84.15526
## 116    C3   B2  82.40923
## 118    C3   B2  74.87435
## 119    C3   B2  73.20237
## 120    C3   B2  71.80697
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

Diseño usando aov con diferencias en la salida de datos ya que si se encuentra los cuadrados medios

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

Diseño usando lm con diferencias en la salida de datos ya que no se encuentra los cuadrados medios

mod2 = lm(porc_germ ~ bloq * acido,
          datos_des)
mod2_res = Anova(mod2, type='II')
mod2_res
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value Pr(>F)    
## bloq       7399.0   2 96.8208 <2e-16 ***
## acido       237.7   3  2.0734 0.1083    
## bloq:acido  275.8   6  1.2030 0.3108    
## Residuals  3935.6 103                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Para este caso no se presentan diferencias notorias, se debe hacer la aclaracion de que para este tipo de modelos con varios factores, un analisis de varianzas convencional (aov), NO es viable, y se debe emplear el metodo especifico dada la falta de datos. En este caso el modelo lineal.

Ajustando desbalanceado con diferente orden

Se modifico el orden de las variables para evaluar si habian diferencias. se sigue aplicando el tipo II

###1
mod3 = lm(porc_germ ~ bloq + acido+ bloq:acido, datos_des)
Anova(mod3, type='II')
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value Pr(>F)    
## bloq       7399.0   2 96.8208 <2e-16 ***
## acido       237.7   3  2.0734 0.1083    
## bloq:acido  275.8   6  1.2030 0.3108    
## Residuals  3935.6 103                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
###2
mod3 = lm(porc_germ ~ acido + bloq + bloq:acido, datos_des)
Anova(mod3, type='II')
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value Pr(>F)    
## acido       237.7   3  2.0734 0.1083    
## bloq       7399.0   2 96.8208 <2e-16 ***
## acido:bloq  275.8   6  1.2030 0.3108    
## Residuals  3935.6 103                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
###3
mod3 = lm(porc_germ ~ bloq:acido + acido + bloq, datos_des)
Anova(mod3, type='II')
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value Pr(>F)    
## acido       237.7   3  2.0734 0.1083    
## bloq       7399.0   2 96.8208 <2e-16 ***
## bloq:acido  275.8   6  1.2030 0.3108    
## Residuals  3935.6 103                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
###4
mod3 = lm(porc_germ ~ bloq:acido + bloq + acido, datos_des)
Anova(mod3, type='II')
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value Pr(>F)    
## bloq       7399.0   2 96.8208 <2e-16 ***
## acido       237.7   3  2.0734 0.1083    
## bloq:acido  275.8   6  1.2030 0.3108    
## Residuals  3935.6 103                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

tipo II para organizar los datos cuando el diseño es desbalanceado, referenciar el articulo de porque se usa este tipo de analisis Conclusion: Con esto se puede intuir que la organizacion de los datos no es relevante SIEMPRE Y CUANDO se realice la correcta seleccion del tipo de analisis. se tienen en total 3 metodos de analisis en diseños desbalanceados, de los cuales unicamente el 3ro. se emplea de forma generalizada como un ANOVA desbalanceado mediante sumas de cuadrados. el tipo II ofrece 1) apropiado para la construcción de modelosANOVA.(2) más potente cuando no hay interacción (3) invariante al orden en que se introducen los efectos en el modelo ANOVA tambbien se menciona que si no hay un efecto de interacción significativo, entonces el tipo II es más potente en este caso la interaccion entre bloques y acido no es sinificativa.

Ahora con una covariable

Diseño factorial simple en bloques completos generalizados y al azar, desbalanceado (FSBCGA-D)

diametro medio de la semilla como covariable media geometrica

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

#Analisis de covarianza

mod1 = lm(porc_germ ~ diam_med + bloq+ acido+ bloq:acido, datos_des)
Anova(mod1, type='II')
## Anova Table (Type II tests)
## 
## Response: porc_germ
##            Sum Sq  Df F value    Pr(>F)    
## diam_med      6.0   1  0.1574    0.6924    
## bloq       1069.4   2 14.0706 4.013e-06 ***
## acido       151.8   3  1.3315    0.2683    
## bloq:acido  235.4   6  1.0325    0.4087    
## Residuals  3876.1 102                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

-Para este caso la interaccion entre bloque y acido no es significativa para el experimento

#Para tener la media del experimento cuando hay datos faltantes en este caso se van a ignorar los datos faltantes en este caso cuando se teien na

tapply(datos_des$porc_germ,
       datos_des$acido,
       mean)
##       C0       C1       C2       C3 
## 70.96384       NA       NA       NA

y esta seria la correcion usando la media, imputando los datos

tapply(datos_des$porc_germ,
       datos_des$acido,
       mean, na.rm=TRUE)
##       C0       C1       C2       C3 
## 70.96384 72.04659 68.44023 69.07068

###Referencias

-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