## ============================================
# Dr. Carlos Téllez Martínez
# Abril 2015
# Análisis de diseños 2k con réplica por medio
# del paquete FrF2
# Diseño y Análisis de Experimentos
# Tecnológico de Monterrey, Campus Guadalajara
## ============================================

# Lectura de datos
Ejemplo2 <- read.csv("/Carlos Tellez Martinez/SkyDrive/Clases/Diseño de Experimentos/Curso en Blackboard/Curso/Tema 5/Videos/Analisis diseño 2k/Ejemplo2.csv")
View(Ejemplo2)
attach(Ejemplo2)
names(Ejemplo2)
## [1] "Carbonatacion" "Presion"       "Velocidad"     "Llenado"
str(Ejemplo2)
## 'data.frame':    16 obs. of  4 variables:
##  $ Carbonatacion: int  -1 1 -1 1 -1 1 -1 1 -1 1 ...
##  $ Presion      : int  -1 -1 1 1 -1 -1 1 1 -1 -1 ...
##  $ Velocidad    : int  -1 -1 -1 -1 1 1 1 1 -1 -1 ...
##  $ Llenado      : int  -3 0 -1 2 -1 2 1 6 -1 1 ...
# Creación del diseño
library(FrF2)
## Loading required package: DoE.base
## Loading required package: grid
## Loading required package: conf.design
## 
## Attaching package: 'DoE.base'
## 
## The following objects are masked from 'package:stats':
## 
##     aov, lm
## 
## The following object is masked from 'package:graphics':
## 
##     plot.design
## 
## The following object is masked from 'package:base':
## 
##     lengths
Tabla <- FrF2(nruns = 8, 
              nfactors = 3, 
              factor.names = list(Carbonatacion=c(-1,1), 
                                  Presion=c(-1,1), 
                                  Velocidad=c(-1,1)), 
              replications = 2, randomize = F)
## creating full factorial with 8 runs ...
Tabla
##    run.no run.no.std.rp Carbonatacion Presion Velocidad
## 1       1           1.1            -1      -1        -1
## 2       2           2.1             1      -1        -1
## 3       3           3.1            -1       1        -1
## 4       4           4.1             1       1        -1
## 5       5           5.1            -1      -1         1
## 6       6           6.1             1      -1         1
## 7       7           7.1            -1       1         1
## 8       8           8.1             1       1         1
## 9       9           1.2            -1      -1        -1
## 10     10           2.2             1      -1        -1
## 11     11           3.2            -1       1        -1
## 12     12           4.2             1       1        -1
## 13     13           5.2            -1      -1         1
## 14     14           6.2             1      -1         1
## 15     15           7.2            -1       1         1
## 16     16           8.2             1       1         1
## class=design, type= full factorial 
## NOTE: columns run.no and run.no.std.rp are annotation, not part of the data frame
# Se agrega la respuesta
Tabla <- add.response(design = Tabla, response = Llenado)
Tabla
##    run.no run.no.std.rp Carbonatacion Presion Velocidad Llenado
## 1       1           1.1            -1      -1        -1      -3
## 2       2           2.1             1      -1        -1       0
## 3       3           3.1            -1       1        -1      -1
## 4       4           4.1             1       1        -1       2
## 5       5           5.1            -1      -1         1      -1
## 6       6           6.1             1      -1         1       2
## 7       7           7.1            -1       1         1       1
## 8       8           8.1             1       1         1       6
## 9       9           1.2            -1      -1        -1      -1
## 10     10           2.2             1      -1        -1       1
## 11     11           3.2            -1       1        -1       0
## 12     12           4.2             1       1        -1       3
## 13     13           5.2            -1      -1         1       0
## 14     14           6.2             1      -1         1       1
## 15     15           7.2            -1       1         1       1
## 16     16           8.2             1       1         1       5
## class=design, type= full factorial 
## NOTE: columns run.no and run.no.std.rp are annotation, not part of the data frame
## Análisis de la tabla ANOVA
Carbonatacion <- factor(Carbonatacion)
Presion <- factor(Presion)
Velocidad <- factor(Velocidad)

Modelo <- lm(Llenado~(Carbonatacion+Presion+Velocidad)^3)
ANOVA <- aov(Modelo)
summary(ANOVA)
##                                 Df Sum Sq Mean Sq F value   Pr(>F)    
## Carbonatacion                    1  36.00   36.00    57.6 6.37e-05 ***
## Presion                          1  20.25   20.25    32.4 0.000459 ***
## Velocidad                        1  12.25   12.25    19.6 0.002205 ** 
## Carbonatacion:Presion            1   2.25    2.25     3.6 0.094350 .  
## Carbonatacion:Velocidad          1   0.25    0.25     0.4 0.544737    
## Presion:Velocidad                1   1.00    1.00     1.6 0.241504    
## Carbonatacion:Presion:Velocidad  1   1.00    1.00     1.6 0.241504    
## Residuals                        8   5.00    0.63                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Solamente son significativos los efectos principales

## Gráficas de efectos principales
MEPlot(Tabla, lwd = 2)
abline(h=0, col="red")

## Lo mejor es todos a nivel bajo, pero la velocidad impacta en
## la productividad por lo que hay que considerar

## Gráficas de Interacciones
IAPlot(Tabla, lwd = 2)

## Se observa que es posible aumentar la velocidad

# Gráfica de interacción triple
cubePlot(obj = Llenado, 
         eff1 = Carbonatacion, 
         eff2 = Presion, 
         eff3 = Velocidad, 
         main = " Gráfica de interacción triple")

# Para elaborar una predicción
predict(object = Modelo, data.frame(Carbonatacion=factor(c(-1,-1)), Presion=factor(c(-1,-1)), Velocidad=factor(c(-1, 1))), interval = "confidence")
##    fit       lwr        upr
## 1 -2.0 -3.289096 -0.7109045
## 2 -0.5 -1.789096  0.7890955
## Se puede aumentar la velocidad

## Verificación del modelo
qqnorm(rstandard(Modelo))
qqline(rstandard(Modelo))

shapiro.test(rstandard(Modelo))
## 
##  Shapiro-Wilk normality test
## 
## data:  rstandard(Modelo)
## W = 0.87436, p-value = 0.03173
## Hay problemas con las observaciones