Diseño factorial simple en arreglo en bloques completos al azar

set.seed(1249)
# Respuestas
clorofila = rnorm(30, 300, 50)# cada dato representa el promedio de los datos de cada parcela
# clorofila = rnorm(30, 300, 50)

# Factor (tres tratamientos)
densidad = gl(3, 10, 30, c('d1','d2','d3'))
# Bloques: terreno dividido en 10 secciones, cada una de estas tendra cada uno de los tratamientos
bloq = gl(10, 1, 30, paste0('bloq',1:10))

df = data.frame(densidad, bloq, clorofila)
head(df)
##   densidad  bloq clorofila
## 1       d1 bloq1  219.7305
## 2       d1 bloq2  264.1672
## 3       d1 bloq3  281.1646
## 4       d1 bloq4  350.8318
## 5       d1 bloq5  308.5925
## 6       d1 bloq6  347.6609

bloques completos al azar.

Modelo del diseño

\[ y_{ij}= \mu + \tau_i+\beta_j+\epsilon_{ij}\\ i:1\dots3\\ j:1\dots10\]

library(lattice)

bwplot(clorofila ~ densidad, df,main="valores de clorofila segun el tratamiento aplicado",xlab="Tratamiento aplicado") # boxplot de clorofila respecto a cada valor de densidad

bwplot(clorofila ~ densidad | bloq, df,main="Valores de clorofila segun el tratamiento separado por bloques") # boxplot de clorofila respecto a cada valor de densidad para cada uno de los bloques

Hipotesis \[H_0: \mu_{d1}=\mu_{d2}=\mu_{d3}\] DISEÑO FACTORIAL SIMPLE EN ARREGLO EN BLOQUES COMPLETOS AL AZAR

mod1 = aov(clorofila ~ bloq + densidad, df)
summary(mod1)
##             Df Sum Sq Mean Sq F value Pr(>F)
## bloq         9  25083    2787   0.952  0.507
## densidad     2   7945    3973   1.357  0.282
## Residuals   18  52684    2927

*Estadisticamente los tratamientos son diferentes

Revision de supuestos

res_mod1=residuals(mod1)
shapiro.test(res_mod1) #Normalidad de los residuos
## 
##  Shapiro-Wilk normality test
## 
## data:  res_mod1
## W = 0.97424, p-value = 0.6605
bartlett.test(clorofila,densidad) # Homogeneidad de varianzas
## 
##  Bartlett test of homogeneity of variances
## 
## data:  clorofila and densidad
## Bartlett's K-squared = 0.73732, df = 2, p-value = 0.6917
plot(res_mod1, pch=16)

Dependencia espacial

xy = expand.grid(x=1:3, y=1:10)
plot(xy, col=clorofila, pch=16,xlab="columnas", ylab="filas")

d = as.matrix(dist(xy)) # matriz de distancias de las parcelas
di = 1/d # matriz de los inversos de las distancias
diag(di) = 0 # la distancia de cada parcela con si misma es cero

library(ape)

Moran.I(res_mod1, di) #indice de moran (mide dependencia espacial), aplicar para datos areales, tipo raster
## $observed
## [1] -0.05398053
## 
## $expected
## [1] -0.03448276
## 
## $sd
## [1] 0.03177785
## 
## $p.value
## [1] 0.539503

No existe dependencia espacial entre los bloques