## ============================================
# Dr. Carlos Téllez Martínez
# Marzo de 2015
# MODELO DE BLOQUES ALEATORIOS
# Diseño y Análisis de Experimentos
# Tecnológico de Monterrey Campus Guadalajara
## ============================================

# Llamada de datos
Datos <- read.csv("/Carlos Tellez Martinez/SkyDrive/Clases/Diseño de Experimentos/Curso en Blackboard/Curso/Tema 3/Bloques aleatorios 1/Datos.csv")
View(Datos)
# Apertura base de datos
attach(Datos)
names(Datos)
## [1] "Rendimiento"  "Proceso_Trat" "Mezcla_Bloq"
str(Datos)
## 'data.frame':    20 obs. of  3 variables:
##  $ Rendimiento : int  89 88 97 94 84 77 92 79 81 87 ...
##  $ Proceso_Trat: Factor w/ 4 levels "A","B","C","D": 1 2 3 4 1 2 3 4 1 2 ...
##  $ Mezcla_Bloq : Factor w/ 5 levels "Mezcla 1","Mezcla 2",..: 1 1 1 1 2 2 2 2 3 3 ...
# Generación de los bloques y los tratamientos
Proceso_Trat <- factor(Proceso_Trat)
Mezcla_Bloq <- factor(Mezcla_Bloq)


# Tabla ANOVA
Modelo <- lm(Rendimiento ~ Mezcla_Bloq+Proceso_Trat)
ANOVA  <- aov(Modelo)
summary(ANOVA)
##              Df Sum Sq Mean Sq F value Pr(>F)  
## Mezcla_Bloq   4    264   66.00   3.504 0.0407 *
## Proceso_Trat  3     70   23.33   1.239 0.3387  
## Residuals    12    226   18.83                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Los tratamientos no son significativos, esto significa que
## Las variantes en el proceso básico no afectan el rendimiento del 
## proceso, todas dan el mismo rendimiento
## Los bloques si son significativos lo cual indica que hay diferencia
## en las mezclas

# Análisis de comparación de medias para las Mezclas
# Se requiere el paquete "agricolae"
library(agricolae)
# Comando LSD.test(Respuesta, Variable, glError, MSError)
Grupos.Mezclas <- LSD.test(y = ANOVA, trt = "Mezcla_Bloq",group = T, console = T)
## 
## Study: ANOVA ~ "Mezcla_Bloq"
## 
## LSD t Test for Rendimiento 
## 
## Mean Square Error:  18.83333 
## 
## Mezcla_Bloq,  means and individual ( 95 %) CI
## 
##          Rendimiento      std r      LCL      UCL Min Max
## Mezcla 1          92 4.242641 4 87.27226 96.72774  88  97
## Mezcla 2          83 6.683313 4 78.27226 87.72774  77  92
## Mezcla 3          85 2.828427 4 80.27226 89.72774  81  87
## Mezcla 4          88 3.366502 4 83.27226 92.72774  84  92
## Mezcla 5          82 4.082483 4 77.27226 86.72774  79  88
## 
## alpha: 0.05 ; Df Error: 12
## Critical Value of t: 2.178813 
## 
## Least Significant Difference 6.686033
## Means with the same letter are not significantly different.
## 
## Groups, Treatments and means
## a     Mezcla 1    92 
## ab    Mezcla 4    88 
## b     Mezcla 3    85 
## b     Mezcla 2    83 
## b     Mezcla 5    82
# Gráficamente:
bar.group(x = Grupos.Mezclas$groups, 
          ylim=c(0,110),
          main="Prueba de comparación de medias por medio del método LSD",
          xlab="Tipo de Mezcla",
          ylab="Rendimiento del proceso",
          col="red")

# Estadísticos de la prueba LSD
Grupos.Mezclas$statistics
##   Mean       CV  MSerror      LSD
##     86 5.046208 18.83333 6.686033
# Prueba de comparaciones múltiples de Duncan
Grupos.Mezclas.Duncan <-duncan.test(y = ANOVA, trt = "Mezcla_Bloq", group = T, console = T)
## 
## Study: ANOVA ~ "Mezcla_Bloq"
## 
## Duncan's new multiple range test
## for Rendimiento 
## 
## Mean Square Error:  18.83333 
## 
## Mezcla_Bloq,  means
## 
##          Rendimiento      std r Min Max
## Mezcla 1          92 4.242641 4  88  97
## Mezcla 2          83 6.683313 4  77  92
## Mezcla 3          85 2.828427 4  81  87
## Mezcla 4          88 3.366502 4  84  92
## Mezcla 5          82 4.082483 4  79  88
## 
## alpha: 0.05 ; Df Error: 12 
## 
## Critical Range
##        2        3        4        5 
## 6.686033 6.998357 7.187591 7.312833 
## 
## Means with the same letter are not significantly different.
## 
## Groups, Treatments and means
## a     Mezcla 1    92 
## ab    Mezcla 4    88 
## b     Mezcla 3    85 
## b     Mezcla 2    83 
## b     Mezcla 5    82
# Gráficamente:
bar.group(x = Grupos.Mezclas.Duncan$groups, 
          ylim=c(0,110),
          main="Prueba de comparación de medias por medio del método Duncan",
          xlab="Tipo de Mezcla",
          ylab="Rendimiento del proceso",
          col="blue")

## Análisis de la adecuación del modelo
# Normalidad de los residuos
qqnorm(rstandard(Modelo))
qqline(rstandard(Modelo))

shapiro.test(rstandard(Modelo))
## 
##  Shapiro-Wilk normality test
## 
## data:  rstandard(Modelo)
## W = 0.9505, p-value = 0.3743
## No hay problemas con las observaciones