En esta actividad se explicará probablemente cómo trabajar con datos desbalanceados
evaluar el porcentaje de germinación. El factor principal será la escarificación de la semilla, con tres tratamientos que consisten en concentraciones diferentes de ácido. No se utilizarán bloques en este diseño.
set.seed(123)
germ = c(
rnorm(40, 60, 6),
rnorm(40, 70 ,7),
rnorm(40, 80, 8))
acido = gl(3, 40, 120, c('c0','c1', 'c2' )) #Factor
datos = data.frame(acido,germ)
head(datos)
## acido 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
se crea el data.frame en el cual hay 40 repeticiones por cada tratamiento
table(datos$acido)
##
## c0 c1 c2
## 40 40 40
Inicialmente, se generarán datos balanceados que representan los diferentes tratamientos y se realizarán las evaluaciones correspondientes del porcentaje de germinación. Posteriormente, se eliminarán algunos datos de manera intencional para crear un diseño desbalanceado.
mod1 = aov(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
La hipótesis nula es rechazada debido a que el valor p obtenido, que es menor a 0.05, indica que existe evidencia estadística significativa para concluir que el porcentaje de germinación no fue igual en todas las concentraciones evaluadas.
boxplot(datos$germ ~ datos$acido)
El gráfico evidencia que la germinación fue más favorable a medida que se aumentó la dosis del ácido. Se observa que la germinación fue mejor en comparación con el tratamiento de control, donde no se aplicó ácido y ademas observamos un dato atipico en en C1
datos_des = datos[-c(50, 111, 120),]
table(datos_des$acido)
##
## c0 c1 c2
## 40 39 38
Se desbalancean los datos y se procede hacer su analisis.
mod2 = aov(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
aov no sirve para modelos desbalanceados con más de dos factores en ese caso hacer prueba con lm.
mod3 = lm(germ ~ acido, datos_des)
library(car)
## Loading required package: carData
mod3_res = Anova(mod3, type = 'II')
mod3_res
## Anova Table (Type II tests)
##
## Response: 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
Mientras la prueba tenga un solo factor se puede utilizar aov o lm, se sigue rechazando la hipotesis nula.
Primero se crean los datos balanceados con bloques y luego se hace el desdalanceado.
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), ]
Para el ejercicio se eliminan las filas 50, 111 y 120 datos_des (Datos desbalanceados)
table(datos_des$bloq, datos_des$acido)
##
## C0 C1 C2 C3
## B0 10 10 10 10
## B1 9 10 10 10
## B2 10 10 10 8
La tabla refleja que se eliminaron datos de la muestra, C0 un dato, c1 dos datos y c3 dos datos, se realizan los mismos analisis de varianza para observar las diferencias entre el modelo balanceado y desbalanceado.
mod1 = aov(porc_germ ~ bloq * acido,
datos_des)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## bloq 2 7898 3949 102.076 <2e-16 ***
## acido 3 248 83 2.133 0.100
## bloq:acido 6 266 44 1.145 0.342
## Residuals 105 4062 39
## ---
## 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
## Anova Table (Type II tests)
##
## Response: porc_germ
## Sum Sq Df F value Pr(>F)
## bloq 7850.6 2 101.4603 <2e-16 ***
## acido 247.6 3 2.1333 0.1004
## bloq:acido 265.7 6 1.1447 0.3418
## Residuals 4062.3 105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Las tablas revelan que no existe interacción entre el bloque y el ácido, y tampoco se observa un efecto significativo del ácido en los resultado, es importante destacar que el análisis de varianza (ANOVA) no debe ser utilizado en diseños con más de un factor y datos desbalanceados.
se realizó una prueba de analisis en la que se utilizaron diferentes ordenes,Se utiliza para analizar si se puede presentar alguna diferencia en los resultados al poner los datos en diferente orden
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 7850.6 2 101.4603 <2e-16 ***
## acido 247.6 3 2.1333 0.1004
## bloq:acido 265.7 6 1.1447 0.3418
## Residuals 4062.3 105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
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 247.6 3 2.1333 0.1004
## bloq 7850.6 2 101.4603 <2e-16 ***
## bloq:acido 265.7 6 1.1447 0.3418
## Residuals 4062.3 105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
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 247.6 3 2.1333 0.1004
## bloq 7850.6 2 101.4603 <2e-16 ***
## bloq:acido 265.7 6 1.1447 0.3418
## Residuals 4062.3 105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 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 7850.6 2 101.4603 <2e-16 ***
## acido 247.6 3 2.1333 0.1004
## bloq:acido 265.7 6 1.1447 0.3418
## Residuals 4062.3 105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Al utilizar la suma de cuadrados tipo II, se puede observar que no hay diferencia en los resultados al ajustar las variables en diferentes órdenes. Esto se debe a que la suma de cuadrados tipo II es una medida adecuada para construir modelos ANOVA y, al mismo tiempo, es invariante al orden en el que se introducen los efectos en el modelo.
desbalanceado y con la tecnica de analisis de covarianza,se agrega la COVARIABLE= diametro medio
set.seed(123)
porc_ger = 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_ger, diam_med)
datos_des = datos[-sample(120, 5), ]
datos_des
## acido bloq porc_ger diam_med
## 1 c0 B0 56.63715 9.330779
## 2 c0 B0 58.61894 9.918003
## 3 c0 B0 69.35225 9.956213
## 4 c0 B0 60.42305 10.030932
## 5 c0 B0 60.77573 10.099718
## 6 c0 B0 70.29039 10.101168
## 7 c0 B0 62.76550 10.122939
## 8 c0 B0 52.40963 10.287879
## 9 c0 B0 55.87888 10.295958
## 10 c0 B0 57.32603 10.326860
## 11 c1 B0 67.34449 10.329870
## 12 c1 B0 62.15888 10.361798
## 13 c1 B0 62.40463 10.373347
## 14 c1 B0 60.66410 10.392845
## 15 c1 B0 56.66495 10.458876
## 17 c1 B0 62.98710 10.617676
## 18 c1 B0 48.20030 10.636070
## 19 c1 B0 64.20814 10.679730
## 20 c1 B0 57.16325 10.689110
## 21 c2 B0 53.59306 10.709741
## 23 c2 B0 53.84397 10.768283
## 24 c2 B0 55.62665 10.836028
## 25 c2 B0 56.24976 10.874833
## 26 c2 B0 49.87984 10.974816
## 27 c2 B0 65.02672 10.984003
## 28 c2 B0 60.92024 11.036263
## 29 c2 B0 53.17118 11.039914
## 30 c2 B0 67.52289 11.060014
## 31 c3 B0 62.55879 11.067616
## 32 c3 B0 58.22957 11.084025
## 33 c3 B0 65.37075 11.152465
## 34 c3 B0 65.26880 11.205484
## 35 c3 B0 64.92949 11.226998
## 36 c3 B0 64.13184 11.253295
## 37 c3 B0 63.32351 11.253834
## 38 c3 B0 59.62853 11.309822
## 39 c3 B0 58.16422 11.329117
## 40 c3 B0 57.71717 11.350920
## 41 c0 B1 65.13705 11.362275
## 42 c0 B1 68.54458 11.371085
## 43 c0 B1 61.14223 11.380879
## 44 c0 B1 85.18269 11.404125
## 45 c0 B1 78.45573 11.426488
## 46 c0 B1 62.13824 11.450754
## 47 c0 B1 67.17981 11.458085
## 48 c0 B1 66.73341 11.461358
## 49 c0 B1 75.45976 11.513045
## 50 c0 B1 69.41642 11.515830
## 51 c1 B1 71.77323 11.527246
## 52 c1 B1 69.80017 11.545454
## 53 c1 B1 69.69991 11.577908
## 54 c1 B1 79.58022 11.635486
## 55 c1 B1 68.41960 11.655311
## 56 c1 B1 80.61529 11.659143
## 57 c1 B1 59.15873 11.667080
## 58 c1 B1 74.09230 11.692837
## 59 c1 B1 70.86698 11.720005
## 60 c1 B1 71.51159 11.743671
## 61 c2 B1 72.65748 11.762197
## 62 c2 B1 66.48374 11.844712
## 63 c2 B1 67.66755 11.882585
## 64 c2 B1 62.86997 11.907299
## 65 c2 B1 62.49746 11.929763
## 66 c2 B1 72.12470 11.955713
## 67 c2 B1 73.13747 12.049125
## 68 c2 B1 70.37103 12.053603
## 70 c2 B1 84.35059 12.084881
## 71 c3 B1 66.56278 12.101349
## 72 c3 B1 53.83582 12.110158
## 73 c3 B1 77.04017 12.122959
## 75 c3 B1 65.18394 12.155019
## 76 c3 B1 77.17900 12.278779
## 77 c3 B1 68.00659 12.278900
## 78 c3 B1 61.45498 12.306003
## 79 c3 B1 71.26912 12.316794
## 80 c3 B1 69.02776 12.387696
## 81 c0 B2 80.04611 12.403625
## 82 c0 B2 83.08224 12.421596
## 83 c0 B2 77.03472 12.431863
## 84 c0 B2 85.15501 12.479654
## 85 c0 B2 78.23611 12.544677
## 86 c0 B2 82.65426 12.567481
## 87 c0 B2 88.77471 12.586955
## 88 c0 B2 83.48145 12.671921
## 89 c0 B2 77.39255 12.706152
## 90 c0 B2 89.19046 12.731886
## 91 c1 B2 87.94803 12.780921
## 92 c1 B2 84.38718 12.803382
## 93 c1 B2 81.90985 12.827541
## 95 c1 B2 90.88522 12.912320
## 96 c1 B2 75.19792 12.919865
## 97 c1 B2 97.49866 12.961932
## 98 c1 B2 92.26089 12.980270
## 99 c1 B2 78.11440 12.999755
## 100 c1 B2 71.78863 13.024061
## 101 c2 B2 74.31675 13.150046
## 102 c2 B2 82.05507 13.270065
## 103 c2 B2 78.02646 13.368525
## 104 c2 B2 77.21966 13.442803
## 105 c2 B2 72.38705 13.442896
## 106 c2 B2 79.63978 13.470738
## 107 c2 B2 73.72076 13.602219
## 108 c2 B2 66.65646 13.642141
## 109 c2 B2 76.95819 13.706137
## 110 c2 B2 87.35197 13.877916
## 111 c3 B2 75.39722 14.146180
## 112 c3 B2 84.86371 14.178406
## 113 c3 B2 67.05694 14.397021
## 114 c3 B2 79.55550 14.481835
## 115 c3 B2 84.15526 14.541882
## 116 c3 B2 82.40923 14.596377
## 117 c3 B2 80.84541 14.730142
## 118 c3 B2 74.87435 14.766987
## 119 c3 B2 73.20237 14.858453
## 120 c3 B2 71.80697 16.213352
table(datos_des$bloq, datos_des$acido)
##
## c0 c1 c2 c3
## B0 10 9 9 10
## B1 10 10 9 9
## B2 10 9 10 10
se evidencia el desbalanceo. se realiza Analisis de varianza de las interacciones
mod1 = lm(porc_ger ~ diam_med + bloq + acido + bloq:acido, datos_des)
Anova(mod1, type = 'II')
## Anova Table (Type II tests)
##
## Response: porc_ger
## 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
No existe interaccion entre bloque y acido debido a que el p valor > 5%
Por ultimo, ¿como se pueden registrar los datos que aparecen como NA (desaparecidos)?. El programa imposibilite el analisis al considerar los datos como no existentes.
set.seed(123)
porc_ger = 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_ger, diam_med)
datos_des = datos
datos_des[sample(120, 5), 'porc_ger'] = NA
datos_des
## acido bloq porc_ger diam_med
## 1 c0 B0 56.63715 9.330779
## 2 c0 B0 58.61894 9.918003
## 3 c0 B0 69.35225 9.956213
## 4 c0 B0 60.42305 10.030932
## 5 c0 B0 60.77573 10.099718
## 6 c0 B0 70.29039 10.101168
## 7 c0 B0 62.76550 10.122939
## 8 c0 B0 52.40963 10.287879
## 9 c0 B0 55.87888 10.295958
## 10 c0 B0 57.32603 10.326860
## 11 c1 B0 67.34449 10.329870
## 12 c1 B0 62.15888 10.361798
## 13 c1 B0 62.40463 10.373347
## 14 c1 B0 60.66410 10.392845
## 15 c1 B0 56.66495 10.458876
## 16 c1 B0 NA 10.575205
## 17 c1 B0 62.98710 10.617676
## 18 c1 B0 48.20030 10.636070
## 19 c1 B0 64.20814 10.679730
## 20 c1 B0 57.16325 10.689110
## 21 c2 B0 53.59306 10.709741
## 22 c2 B0 NA 10.749586
## 23 c2 B0 53.84397 10.768283
## 24 c2 B0 55.62665 10.836028
## 25 c2 B0 56.24976 10.874833
## 26 c2 B0 49.87984 10.974816
## 27 c2 B0 65.02672 10.984003
## 28 c2 B0 60.92024 11.036263
## 29 c2 B0 53.17118 11.039914
## 30 c2 B0 67.52289 11.060014
## 31 c3 B0 62.55879 11.067616
## 32 c3 B0 58.22957 11.084025
## 33 c3 B0 65.37075 11.152465
## 34 c3 B0 65.26880 11.205484
## 35 c3 B0 64.92949 11.226998
## 36 c3 B0 64.13184 11.253295
## 37 c3 B0 63.32351 11.253834
## 38 c3 B0 59.62853 11.309822
## 39 c3 B0 58.16422 11.329117
## 40 c3 B0 57.71717 11.350920
## 41 c0 B1 65.13705 11.362275
## 42 c0 B1 68.54458 11.371085
## 43 c0 B1 61.14223 11.380879
## 44 c0 B1 85.18269 11.404125
## 45 c0 B1 78.45573 11.426488
## 46 c0 B1 62.13824 11.450754
## 47 c0 B1 67.17981 11.458085
## 48 c0 B1 66.73341 11.461358
## 49 c0 B1 75.45976 11.513045
## 50 c0 B1 69.41642 11.515830
## 51 c1 B1 71.77323 11.527246
## 52 c1 B1 69.80017 11.545454
## 53 c1 B1 69.69991 11.577908
## 54 c1 B1 79.58022 11.635486
## 55 c1 B1 68.41960 11.655311
## 56 c1 B1 80.61529 11.659143
## 57 c1 B1 59.15873 11.667080
## 58 c1 B1 74.09230 11.692837
## 59 c1 B1 70.86698 11.720005
## 60 c1 B1 71.51159 11.743671
## 61 c2 B1 72.65748 11.762197
## 62 c2 B1 66.48374 11.844712
## 63 c2 B1 67.66755 11.882585
## 64 c2 B1 62.86997 11.907299
## 65 c2 B1 62.49746 11.929763
## 66 c2 B1 72.12470 11.955713
## 67 c2 B1 73.13747 12.049125
## 68 c2 B1 70.37103 12.053603
## 69 c2 B1 NA 12.077675
## 70 c2 B1 84.35059 12.084881
## 71 c3 B1 66.56278 12.101349
## 72 c3 B1 53.83582 12.110158
## 73 c3 B1 77.04017 12.122959
## 74 c3 B1 NA 12.152941
## 75 c3 B1 65.18394 12.155019
## 76 c3 B1 77.17900 12.278779
## 77 c3 B1 68.00659 12.278900
## 78 c3 B1 61.45498 12.306003
## 79 c3 B1 71.26912 12.316794
## 80 c3 B1 69.02776 12.387696
## 81 c0 B2 80.04611 12.403625
## 82 c0 B2 83.08224 12.421596
## 83 c0 B2 77.03472 12.431863
## 84 c0 B2 85.15501 12.479654
## 85 c0 B2 78.23611 12.544677
## 86 c0 B2 82.65426 12.567481
## 87 c0 B2 88.77471 12.586955
## 88 c0 B2 83.48145 12.671921
## 89 c0 B2 77.39255 12.706152
## 90 c0 B2 89.19046 12.731886
## 91 c1 B2 87.94803 12.780921
## 92 c1 B2 84.38718 12.803382
## 93 c1 B2 81.90985 12.827541
## 94 c1 B2 NA 12.894292
## 95 c1 B2 90.88522 12.912320
## 96 c1 B2 75.19792 12.919865
## 97 c1 B2 97.49866 12.961932
## 98 c1 B2 92.26089 12.980270
## 99 c1 B2 78.11440 12.999755
## 100 c1 B2 71.78863 13.024061
## 101 c2 B2 74.31675 13.150046
## 102 c2 B2 82.05507 13.270065
## 103 c2 B2 78.02646 13.368525
## 104 c2 B2 77.21966 13.442803
## 105 c2 B2 72.38705 13.442896
## 106 c2 B2 79.63978 13.470738
## 107 c2 B2 73.72076 13.602219
## 108 c2 B2 66.65646 13.642141
## 109 c2 B2 76.95819 13.706137
## 110 c2 B2 87.35197 13.877916
## 111 c3 B2 75.39722 14.146180
## 112 c3 B2 84.86371 14.178406
## 113 c3 B2 67.05694 14.397021
## 114 c3 B2 79.55550 14.481835
## 115 c3 B2 84.15526 14.541882
## 116 c3 B2 82.40923 14.596377
## 117 c3 B2 80.84541 14.730142
## 118 c3 B2 74.87435 14.766987
## 119 c3 B2 73.20237 14.858453
## 120 c3 B2 71.80697 16.213352
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
tapply(datos_des$porc_ger,
datos_des$acido,
mean)
## c0 c1 c2 c3
## 70.96384 NA NA NA
Una posible solucion es la imputacion de los datos que aparacen como NA
tapply(datos_des$porc_ger,
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