DISEÑO FACTORIAL COMPLETO EN ARREGLO COMPLETAMENTE AL AZAR

Creamos lo datos

#Tienen un distribución normal 
set.seed(123)

ce = c(
  rnorm(n =15, mean = 100, sd = 10), 
  rnorm(n =15, mean = 120, sd = 12)
)

#Factor 1: Hora de evaluación 
hora = gl(2, 15, 30, labels = c(6, 12))

#Factor 2: Iluminación 
ilum = gl(3, 5, 30, c("IB", "IM", "IA"))

#Bloque: Parcela 
parc = gl(5, 1, 30)



datos = data.frame(hora, ilum, parc, ce)
head(datos)
##   hora ilum parc        ce
## 1    6   IB    1  94.39524
## 2    6   IB    2  97.69823
## 3    6   IB    3 115.58708
## 4    6   IB    4 100.70508
## 5    6   IB    5 101.29288
## 6    6   IM    1 117.15065
#En cada bloque hay 1 solo dato de conductividad, esto es bloques al azar, ya que no hay repeticiones de tratamiento

Analisis descriptivo

En este caso no vamos a estudiar interacción

library(ggplot2)

ggplot(datos)+
  aes(y = ce)+
  geom_boxplot()

#Grafico por hora 
ggplot(datos)+
  aes(hora, ce)+
  geom_boxplot()

#Grafico por ilum
ggplot(datos)+
  aes(ilum, ce)+
  geom_boxplot()

#Grafico por parcelas 
ggplot(datos)+
  aes(parc, ce)+
  geom_boxplot()

#Grafico de iluminación por respuesta
ggplot(datos)+
  aes(ilum, ce, fill=hora)+
  geom_boxplot()

#Grafico de parcelas, ce y hora
ggplot(datos)+
  aes(parc, ce, color=hora)+
  geom_point(size=5)+
  facet_wrap(~ilum)

#Grafico de barras 
library(ggplot2)


ggplot(datos)+
  aes(parc, ce, fill=hora)+
  geom_col(position = 'dodge') +
  facet_wrap(~ilum)

El grafico que mas nos interesa es de dos factores

Modelo

\[y_{ijk} = \mu + \tau_i + \beta_j + (\tau\beta)_{ij}+\delta_k + \epsilon_{ijk}\]

Analisis de varianza

Creamos las hipotesis

\[H_1:\beta_b = \beta_\mu = \beta_A = 0 \]

\[ \]

\[H_3: (\tau\beta)_{ij} = 0 \]

mod1 = aov(ce~parc + hora + ilum + hora:ilum,
           datos)

summary(mod1)
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## parc         4  262.4    65.6   0.462 0.76262   
## hora         1 1805.8  1805.8  12.725 0.00193 **
## ilum         2  231.5   115.8   0.816 0.45651   
## hora:ilum    2   74.7    37.4   0.263 0.77120   
## Residuals   20 2838.4   141.9                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Extraer residuales y probamos normalidad

resid = mod1$residuals

#Normalidad
shapiro.test(resid)
## 
##  Shapiro-Wilk normality test
## 
## data:  resid
## W = 0.96166, p-value = 0.3413

Los datos son normales, el pvalor es 34% mayor al 5%

El error y la y siempre tienen las mismas letras, esto para plantear el modelo

Tratamientos

En total son 6 tratamientos.

datos$trt = interaction(datos$hora, 
                        datos$ilum)
ggplot(datos)+
  aes(trt, ce)+
  geom_boxplot()

Vemos que sus tamaños son muy diferentes, a pesar de que las medias pueden ser parecidas, estos tratamientos no son iguales.

Calculamos la varianza de cada tratamiento

tapply(datos$ce, datos$trt, var)
##      6.IB     12.IB      6.IM     12.IM      6.IA     12.IA 
##  65.77564 286.70940 135.37080  17.09574  40.89132 229.33821

Como la variabilidad es tan alta vamos a usar el logaritmo de la ce, porque esto “encoge los datos”

#Creamos esta variable y hacemos el boxplot

datos$ce_log =log(datos$ce)
ggplot(datos)+
  aes(trt, ce_log)+
  geom_boxplot()

ce_log_var = tapply(datos$ce_log, datos$trt, var) 

tapply(datos$ce_log, datos$trt, var) 
##        6.IB       12.IB        6.IM       12.IM        6.IA       12.IA 
## 0.005915783 0.021061592 0.013012147 0.001361155 0.003844120 0.016924272
sort(ce_log_var)/min(ce_log_var)
##     12.IM      6.IA      6.IB      6.IM     12.IA     12.IB 
##  1.000000  2.824160  4.346150  9.559637 12.433759 15.473325

La varianza llega a ser de 15.

**Analisis de varianza con la nueva variable (log_ce)

modlog = aov(ce_log ~ parc + hora + ilum + hora:ilum, datos) 

summary(modlog)
##             Df  Sum Sq Mean Sq F value  Pr(>F)   
## parc         4 0.02122 0.00530   0.467 0.75939   
## hora         1 0.14615 0.14615  12.862 0.00185 **
## ilum         2 0.01722 0.00861   0.758 0.48172   
## hora:ilum    2 0.00357 0.00178   0.157 0.85574   
## Residuals   20 0.22726 0.01136                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Normalidad con el log de ce

reslog = modlog$residuals
shapiro.test(reslog)
## 
##  Shapiro-Wilk normality test
## 
## data:  reslog
## W = 0.96786, p-value = 0.4824

Para esto no nos sirve la prueba de Tukey, no es necesario porque ya se cual difiere del otro