DISEÑO FACTORIAL COMPLETO EN ARREGLO COMPLETAMENTE AL AZAR
\[y_{ijk} = \mu + \tau_i + \delta_j +(\tau\delta)_{ij} + \epsilon_{ijk}\] \(i: 1,2,3\)
\(j: 1,2\)
\(k: 1,2\)
#Cultivo tomate
set.seed(123)
#Factor1
aporque <- gl(2,60, 120,c("Con_A", "Sin_A"))
#Factor2
variedad <- gl(3, 20, 120, c('v1', 'v2', 'v3'))
#rta
peso_fresco <- rnorm(n = 120, mean = 3, sd = 0.3)
df = data.frame(aporque, variedad, peso_fresco)
df$peso_fresco[1] = 3.5
df$peso_fresco[81] = 2.5
df
## aporque variedad peso_fresco
## 1 Con_A v1 3.500000
## 2 Con_A v1 2.930947
## 3 Con_A v1 3.467612
## 4 Con_A v1 3.021153
## 5 Con_A v1 3.038786
## 6 Con_A v1 3.514519
## 7 Con_A v1 3.138275
## 8 Con_A v1 2.620482
## 9 Con_A v1 2.793944
## 10 Con_A v1 2.866301
## 11 Con_A v1 3.367225
## 12 Con_A v1 3.107944
## 13 Con_A v1 3.120231
## 14 Con_A v1 3.033205
## 15 Con_A v1 2.833248
## 16 Con_A v1 3.536074
## 17 Con_A v1 3.149355
## 18 Con_A v1 2.410015
## 19 Con_A v1 3.210407
## 20 Con_A v1 2.858163
## 21 Con_A v2 2.679653
## 22 Con_A v2 2.934608
## 23 Con_A v2 2.692199
## 24 Con_A v2 2.781333
## 25 Con_A v2 2.812488
## 26 Con_A v2 2.493992
## 27 Con_A v2 3.251336
## 28 Con_A v2 3.046012
## 29 Con_A v2 2.658559
## 30 Con_A v2 3.376144
## 31 Con_A v2 3.127939
## 32 Con_A v2 2.911479
## 33 Con_A v2 3.268538
## 34 Con_A v2 3.263440
## 35 Con_A v2 3.246474
## 36 Con_A v2 3.206592
## 37 Con_A v2 3.166175
## 38 Con_A v2 2.981426
## 39 Con_A v2 2.908211
## 40 Con_A v2 2.885859
## 41 Con_A v3 2.791588
## 42 Con_A v3 2.937625
## 43 Con_A v3 2.620381
## 44 Con_A v3 3.650687
## 45 Con_A v3 3.362389
## 46 Con_A v3 2.663067
## 47 Con_A v3 2.879135
## 48 Con_A v3 2.860003
## 49 Con_A v3 3.233990
## 50 Con_A v3 2.974989
## 51 Con_A v3 3.075996
## 52 Con_A v3 2.991436
## 53 Con_A v3 2.987139
## 54 Con_A v3 3.410581
## 55 Con_A v3 2.932269
## 56 Con_A v3 3.454941
## 57 Con_A v3 2.535374
## 58 Con_A v3 3.175384
## 59 Con_A v3 3.037156
## 60 Con_A v3 3.064782
## 61 Sin_A v1 3.113892
## 62 Sin_A v1 2.849303
## 63 Sin_A v1 2.900038
## 64 Sin_A v1 2.694427
## 65 Sin_A v1 2.678463
## 66 Sin_A v1 3.091059
## 67 Sin_A v1 3.134463
## 68 Sin_A v1 3.015901
## 69 Sin_A v1 3.276680
## 70 Sin_A v1 3.615025
## 71 Sin_A v1 2.852691
## 72 Sin_A v1 2.307249
## 73 Sin_A v1 3.301722
## 74 Sin_A v1 2.787240
## 75 Sin_A v1 2.793597
## 76 Sin_A v1 3.307671
## 77 Sin_A v1 2.914568
## 78 Sin_A v1 2.633785
## 79 Sin_A v1 3.054391
## 80 Sin_A v1 2.958333
## 81 Sin_A v2 2.500000
## 82 Sin_A v2 3.115584
## 83 Sin_A v2 2.888802
## 84 Sin_A v2 3.193313
## 85 Sin_A v2 2.933854
## 86 Sin_A v2 3.099535
## 87 Sin_A v2 3.329052
## 88 Sin_A v2 3.130554
## 89 Sin_A v2 2.902221
## 90 Sin_A v2 3.344642
## 91 Sin_A v2 3.298051
## 92 Sin_A v2 3.164519
## 93 Sin_A v2 3.071620
## 94 Sin_A v2 2.811628
## 95 Sin_A v2 3.408196
## 96 Sin_A v2 2.819922
## 97 Sin_A v2 3.656200
## 98 Sin_A v2 3.459783
## 99 Sin_A v2 2.929290
## 100 Sin_A v2 2.692074
## 101 Sin_A v3 2.786878
## 102 Sin_A v3 3.077065
## 103 Sin_A v3 2.925992
## 104 Sin_A v3 2.895737
## 105 Sin_A v3 2.714514
## 106 Sin_A v3 2.986492
## 107 Sin_A v3 2.764529
## 108 Sin_A v3 2.499617
## 109 Sin_A v3 2.885932
## 110 Sin_A v3 3.275699
## 111 Sin_A v3 2.827396
## 112 Sin_A v3 3.182389
## 113 Sin_A v3 2.514635
## 114 Sin_A v3 2.983331
## 115 Sin_A v3 3.155822
## 116 Sin_A v3 3.090346
## 117 Sin_A v3 3.031703
## 118 Sin_A v3 2.807788
## 119 Sin_A v3 2.745089
## 120 Sin_A v3 2.692761
library(collapsibleTree)
## Warning: package 'collapsibleTree' was built under R version 4.2.3
collapsibleTreeSummary(df = df, hierarchy = c('variedad', 'aporque', 'peso_fresco'), collapsed = F, fontSize = 16)
Esta jerarquia se utiliza ya que primero se selecciona la variedad luego si se aporca o no
Analisis descriptivo
library(lattice)
bwplot(peso_fresco ~ variedad, df,
panel =function(...)
{panel.bwplot(...,groups=df$variedad, fill=c('red','blue','green'))})
En esta graficamos el peso fresco (respuesta) en función de la variedad,
no se observa diferencias significativas
bwplot(peso_fresco ~ aporque|variedad, df)
En este grafico presentamos los dos factores, la variedad y el aporque, dado que el peso fresco depende de estos dos factores.
tb= tapply(df$peso_fresco, list(df$aporque, df$variedad), mean)
tb
## v1 v2 v3
## Con_A 3.075894 2.984623 3.031946
## Sin_A 2.964025 3.087442 2.892186
addmargins(tb, FUN =mean)
## Margins computed over dimensions
## in the following order:
## 1:
## 2:
## v1 v2 v3 mean
## Con_A 3.075894 2.984623 3.031946 3.030821
## Sin_A 2.964025 3.087442 2.892186 2.981218
## mean 3.019960 3.036032 2.962066 3.006019
tapply(df$peso_fresco, df$variedad, mean)
## v1 v2 v3
## 3.019960 3.036032 2.962066
#mean(df$peso_fresco)
table(list(df$aporque, variedad))
## .2
## .1 v1 v2 v3
## Con_A 20 20 20
## Sin_A 20 20 20
La variedad siempre está en los cuerpos de la tabla y no en los margenes, no miramos las medias de las esquinas y teniendo en cuenta esto concluimos que:
Analisis inferencial
Primero planteamos las hipotesis:
\[H_1=:\mu_1 = \mu_2 = \mu_3 \] \[H_2 =\mu_{aporque} = \mu_{\text{no aporque}}\]
\[H_3:\text{No hay interaccion entre aporque y variedad}\] Teniendo en cuenta el modelo podemos plantear las hipotesis así
\[H_{0_1}:\tau_{v1} = \tau_{v2} = \tau_{v3} = 0 \] \[H_{0_3}:(\tau\sigma)_{ij}) = 0; \forall_{i,j}\] #FCCA
mod1 = aov(peso_fresco ~ variedad + aporque+ variedad*aporque, df)
summary(mod1)
## Df Sum Sq Mean Sq F value Pr(>F)
## variedad 2 0.121 0.06054 0.813 0.4461
## aporque 1 0.074 0.07381 0.991 0.3216
## variedad:aporque 2 0.352 0.17619 2.366 0.0985 .
## Residuals 114 8.491 0.07448
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Vamos a analizarla: - como no se rechaza la hipotesis de interaccion nula, podemos interpretar las hipotesis de variedad y de aporque (0.0985 > 5%)
Hipotesis de aporque p = 0.3216 >5%, no se rechaza la hipotesis, efecto de aporque nulo. No existe diferencia estadistica en los pesos frescos entre aporcar y no aporcar
Hipotesis de variedad p = 0.4461 >5%, no se rechaza la hipotesis, efecto de variedad nulo. No existe diferencia estadistica en los pesos frescos promedio entre las varieddades
¿Entonces que hacemos cuando SI se rechaza la hipotesis de interaccion?
Para esto vamos a cambiar los datos un poco…
#Cultivo tomate
set.seed(123)
#Factor1
aporque <- gl(2,60, 120,c("Con_A", "Sin_A"))
#Factor2
variedad <- gl(3, 20, 120, c('v1', 'v2', 'v3'))
#rta
peso_fresco <- c(rnorm(n = 40, mean = 3, sd = 0.3),
rnorm(n = 80, mean = 4, sd = 0.4))
df1 = data.frame(aporque, variedad, peso_fresco)
df$peso_fresco[1] = 3.5
df$peso_fresco[81] = 2.5
df1
## aporque variedad peso_fresco
## 1 Con_A v1 2.831857
## 2 Con_A v1 2.930947
## 3 Con_A v1 3.467612
## 4 Con_A v1 3.021153
## 5 Con_A v1 3.038786
## 6 Con_A v1 3.514519
## 7 Con_A v1 3.138275
## 8 Con_A v1 2.620482
## 9 Con_A v1 2.793944
## 10 Con_A v1 2.866301
## 11 Con_A v1 3.367225
## 12 Con_A v1 3.107944
## 13 Con_A v1 3.120231
## 14 Con_A v1 3.033205
## 15 Con_A v1 2.833248
## 16 Con_A v1 3.536074
## 17 Con_A v1 3.149355
## 18 Con_A v1 2.410015
## 19 Con_A v1 3.210407
## 20 Con_A v1 2.858163
## 21 Con_A v2 2.679653
## 22 Con_A v2 2.934608
## 23 Con_A v2 2.692199
## 24 Con_A v2 2.781333
## 25 Con_A v2 2.812488
## 26 Con_A v2 2.493992
## 27 Con_A v2 3.251336
## 28 Con_A v2 3.046012
## 29 Con_A v2 2.658559
## 30 Con_A v2 3.376144
## 31 Con_A v2 3.127939
## 32 Con_A v2 2.911479
## 33 Con_A v2 3.268538
## 34 Con_A v2 3.263440
## 35 Con_A v2 3.246474
## 36 Con_A v2 3.206592
## 37 Con_A v2 3.166175
## 38 Con_A v2 2.981426
## 39 Con_A v2 2.908211
## 40 Con_A v2 2.885859
## 41 Con_A v3 3.722117
## 42 Con_A v3 3.916833
## 43 Con_A v3 3.493841
## 44 Con_A v3 4.867582
## 45 Con_A v3 4.483185
## 46 Con_A v3 3.550757
## 47 Con_A v3 3.838846
## 48 Con_A v3 3.813338
## 49 Con_A v3 4.311986
## 50 Con_A v3 3.966652
## 51 Con_A v3 4.101327
## 52 Con_A v3 3.988581
## 53 Con_A v3 3.982852
## 54 Con_A v3 4.547441
## 55 Con_A v3 3.909692
## 56 Con_A v3 4.606588
## 57 Con_A v3 3.380499
## 58 Con_A v3 4.233845
## 59 Con_A v3 4.049542
## 60 Con_A v3 4.086377
## 61 Sin_A v1 4.151856
## 62 Sin_A v1 3.799071
## 63 Sin_A v1 3.866717
## 64 Sin_A v1 3.592570
## 65 Sin_A v1 3.571284
## 66 Sin_A v1 4.121411
## 67 Sin_A v1 4.179284
## 68 Sin_A v1 4.021202
## 69 Sin_A v1 4.368907
## 70 Sin_A v1 4.820034
## 71 Sin_A v1 3.803588
## 72 Sin_A v1 3.076332
## 73 Sin_A v1 4.402295
## 74 Sin_A v1 3.716320
## 75 Sin_A v1 3.724797
## 76 Sin_A v1 4.410229
## 77 Sin_A v1 3.886091
## 78 Sin_A v1 3.511713
## 79 Sin_A v1 4.072521
## 80 Sin_A v1 3.944443
## 81 Sin_A v2 4.002306
## 82 Sin_A v2 4.154112
## 83 Sin_A v2 3.851736
## 84 Sin_A v2 4.257751
## 85 Sin_A v2 3.911805
## 86 Sin_A v2 4.132713
## 87 Sin_A v2 4.438736
## 88 Sin_A v2 4.174073
## 89 Sin_A v2 3.869627
## 90 Sin_A v2 4.459523
## 91 Sin_A v2 4.397402
## 92 Sin_A v2 4.219359
## 93 Sin_A v2 4.095493
## 94 Sin_A v2 3.748838
## 95 Sin_A v2 4.544261
## 96 Sin_A v2 3.759896
## 97 Sin_A v2 4.874933
## 98 Sin_A v2 4.613044
## 99 Sin_A v2 3.905720
## 100 Sin_A v2 3.589432
## 101 Sin_A v3 3.715837
## 102 Sin_A v3 4.102753
## 103 Sin_A v3 3.901323
## 104 Sin_A v3 3.860983
## 105 Sin_A v3 3.619353
## 106 Sin_A v3 3.981989
## 107 Sin_A v3 3.686038
## 108 Sin_A v3 3.332823
## 109 Sin_A v3 3.847909
## 110 Sin_A v3 4.367599
## 111 Sin_A v3 3.769861
## 112 Sin_A v3 4.243186
## 113 Sin_A v3 3.352847
## 114 Sin_A v3 3.977775
## 115 Sin_A v3 4.207763
## 116 Sin_A v3 4.120461
## 117 Sin_A v3 4.042270
## 118 Sin_A v3 3.743718
## 119 Sin_A v3 3.660118
## 120 Sin_A v3 3.590348
mod2 = aov(peso_fresco ~ variedad + aporque +
variedad*aporque, df1)
summary(mod2)
## Df Sum Sq Mean Sq F value Pr(>F)
## variedad 2 4.738 2.369 22.42 6.13e-09 ***
## aporque 1 11.890 11.890 112.54 < 2e-16 ***
## variedad:aporque 2 10.312 5.156 48.81 4.87e-16 ***
## Residuals 114 12.044 0.106
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Concluimos que: si hay interaccion pval<5%, por lo tanto, las 2 hipotesis de arriba no pueden ser interpretadas.
Grafico de interacciones
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.2
ggplot(df1,
aes(x=variedad, peso_fresco,
colour=aporque, group =aporque))+
stat_summary(fun = mean, geom = "point", size=2) +
stat_summary(fun = mean, geom = "line", linetype = 2) +
labs (y= "mean(peso_fresco")+
theme_bw()
En este caso, se recomienda, dado que la variable es variedad, las
lineas del grafico sean discontinuas