# Solución al problema del texto del material de diseños factoriales completos
# Dr. Carlos Téllez Martínez
# Marzo de 2015
# Lectura de datos
## =================================================================================
# Lectura de datos
Duracion <- read.csv("/Carlos Tellez Martinez/SkyDrive/Clases/Diseño de Experimentos/Curso en Blackboard/Curso/Tema 4/Videos/Duracion.csv")
Duracion
## Material Temperatura Duracion
## 1 Material1 15 155
## 2 Material1 80 34
## 3 Material1 125 20
## 4 Material2 15 150
## 5 Material2 80 126
## 6 Material2 125 25
## 7 Material3 15 138
## 8 Material3 80 174
## 9 Material3 125 96
## 10 Material1 15 130
## 11 Material1 80 40
## 12 Material1 125 70
## 13 Material2 15 188
## 14 Material2 80 122
## 15 Material2 125 58
## 16 Material3 15 168
## 17 Material3 80 150
## 18 Material3 125 82
## 19 Material1 15 74
## 20 Material1 80 80
## 21 Material1 125 82
## 22 Material2 15 159
## 23 Material2 80 106
## 24 Material2 125 70
## 25 Material3 15 110
## 26 Material3 80 120
## 27 Material3 125 104
## 28 Material1 15 180
## 29 Material1 80 75
## 30 Material1 125 58
## 31 Material2 15 126
## 32 Material2 80 115
## 33 Material2 125 45
## 34 Material3 15 160
## 35 Material3 80 139
## 36 Material3 125 60
attach(Duracion)
## The following object is masked _by_ .GlobalEnv:
##
## Duracion
names(Duracion)
## [1] "Material" "Temperatura" "Duracion"
str(Duracion)
## 'data.frame': 36 obs. of 3 variables:
## $ Material : Factor w/ 3 levels "Material1","Material2",..: 1 1 1 2 2 2 3 3 3 1 ...
## $ Temperatura: int 15 80 125 15 80 125 15 80 125 15 ...
## $ Duracion : int 155 34 20 150 126 25 138 174 96 130 ...
# Cambio de variables
FactorA_Material <- factor(Material)
FactorB_Temperatura <- factor(Temperatura)
Respuesta_Duracion <- Duracion$Duracion
# Cálculo de la tabla ANOVA
Modelo <- lm(Respuesta_Duracion ~ (FactorA_Material + FactorB_Temperatura)^2)
ANOVA <- aov(Modelo)
summary(ANOVA)
## Df Sum Sq Mean Sq F value Pr(>F)
## FactorA_Material 2 10633 5317 7.983 0.00189
## FactorB_Temperatura 2 39083 19542 29.344 1.69e-07
## FactorA_Material:FactorB_Temperatura 4 9438 2359 3.543 0.01897
## Residuals 27 17981 666
##
## FactorA_Material **
## FactorB_Temperatura ***
## FactorA_Material:FactorB_Temperatura *
## Residuals
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Coeficientes de la ecuación de regresión
coef(ANOVA)
## (Intercept)
## 134.75
## FactorA_MaterialMaterial2
## 21.00
## FactorA_MaterialMaterial3
## 9.25
## FactorB_Temperatura80
## -77.50
## FactorB_Temperatura125
## -77.25
## FactorA_MaterialMaterial2:FactorB_Temperatura80
## 39.00
## FactorA_MaterialMaterial3:FactorB_Temperatura80
## 79.25
## FactorA_MaterialMaterial2:FactorB_Temperatura125
## -29.00
## FactorA_MaterialMaterial3:FactorB_Temperatura125
## 18.75
# Graficas de los efectos principales
Efectos <- data.frame(FactorA_Material, FactorB_Temperatura, Respuesta_Duracion)
plot.design(Efectos, fun="mean", main=" Gráfica de efectos principales", ylab= "Duración", xlab="Factor")

# Gráfica de interacción
interaction.plot(FactorA_Material, FactorB_Temperatura, Respuesta_Duracion,
main="Interacción Material-Temperatura", xlab="Material", ylab="Temperatura", col=c(1:3))

# Análisis de los residuos estándar del modelo
plot(rstandard(Modelo),
main="Gráfica de residuos estándar",
xlab="Observación", ylab="Residuos estandarizados")

## No se observan problemas con los datos
qqnorm(rstandard(Modelo))
qqline(rstandard(Modelo), col="red")

shapiro.test(rstandard(Modelo))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo)
## W = 0.9777, p-value = 0.6672
# Los residuos se comportan de forma normal, no se observan problemas con los datos
# Para ver los valores ajustados por la regresión:
fitted(Modelo)
## 1 2 3 4 5 6 7 8 9 10
## 134.75 57.25 57.50 155.75 117.25 49.50 144.00 145.75 85.50 134.75
## 11 12 13 14 15 16 17 18 19 20
## 57.25 57.50 155.75 117.25 49.50 144.00 145.75 85.50 134.75 57.25
## 21 22 23 24 25 26 27 28 29 30
## 57.50 155.75 117.25 49.50 144.00 145.75 85.50 134.75 57.25 57.50
## 31 32 33 34 35 36
## 155.75 117.25 49.50 144.00 145.75 85.50
# Graficando los valores tanto los ajustados como los reales
plot(fitted(Modelo),
Respuesta_Duracion, col=c("red", "blue"), pch=19,
main="Gráfica de valores ajustados y reales",
ylab="Valores reales", xlab="Valores ajustados")
legend(50, 190, col=c("red","blue"), legend=c("Ajustado", "Real"), pch=19)

# Para hacer predicciones
# Se hace la predicción con los valores que salen del análisis
FactorA_Material2 <- factor(c("Material1", "Material2" ,"Material3"))
FactorB_Temperatura2 <- factor(c(15,15,15))
predict(lm(Respuesta_Duracion ~ (FactorA_Material + FactorB_Temperatura)^2),
data.frame(FactorA_Material= FactorA_Material2, FactorB_Temperatura= FactorB_Temperatura2),
level=0.95, interval="confidence")
## fit lwr upr
## 1 134.75 108.2751 161.2249
## 2 155.75 129.2751 182.2249
## 3 144.00 117.5251 170.4749
## La predicción para Material 2 con Temperatura de 15 es de 155.75 de duración
# Para probar el material más homogéneo
# Se aprecia que el material 3 es el más homogéneo
FactorA_Material2 <- factor(c("Material3", "Material3" ,"Material3"))
FactorB_Temperatura2 <- factor(c(15,80, 125))
predict(lm(Respuesta_Duracion ~ (FactorA_Material + FactorB_Temperatura)^2),
data.frame(FactorA_Material= FactorA_Material2, FactorB_Temperatura= FactorB_Temperatura2),
level=0.95, interval="confidence")
## fit lwr upr
## 1 144.00 117.52515 170.4749
## 2 145.75 119.27515 172.2249
## 3 85.50 59.02515 111.9749
# Es homogéneo a temperatura baja y media, baja a alta temperatura