## =================================================================================
# Análisis de diseño factoriales completo
# Incluye paquete de visualización phia
# Dr. Carlos Téllez Martínez
# Julio de 2020
## =================================================================================
# Problema a analizar:
# Se desea seleccionar un material para un producto de manera
# que la afectación a los cambios de temperatura sea la menor posible.
# Para esto se analizaron 3 materiales a 3 temperaturas diferentes
# donde la respuesta es el tiempo de duración del producto a las
# condiciones dadas.
# Lectura de datos
library(readxl)
Duracion <- read_excel("Duracion.xlsx")
attach(Duracion)
names(Duracion)
## [1] "Material" "Temperatura" "Tiempo_duracion"
str(Duracion)
## tibble [36 × 3] (S3: tbl_df/tbl/data.frame)
## $ Material : chr [1:36] "Material1" "Material1" "Material1" "Material2" ...
## $ Temperatura : num [1:36] 15 80 125 15 80 125 15 80 125 15 ...
## $ Tiempo_duracion: num [1:36] 155 34 20 150 126 25 138 174 96 130 ...
# Cambio de variables
FactorA_Material <- factor(Material)
FactorB_Temperatura <- factor(Temperatura)
Respuesta_Tiempo_duracion <- Duracion$Tiempo_duracion
# Cálculo de la tabla ANOVA
Modelo <- lm(Respuesta_Tiempo_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
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Gráficas de efectos principales e interacciones
library(phia)
## Loading required package: car
## Loading required package: carData
Grafica <- interactionMeans(Modelo)
plot(Grafica)
par(mfrow=c(1,1))

# Análisis de la idoneidad del modelo
# Normalidad de residuos
shapiro.test(rstandard(Modelo))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo)
## W = 0.9777, p-value = 0.6672
# No hay observaciones anormales
# Prueba de homocedasticidad o igualdad de varianzas
library(car)
ncvTest(Modelo)
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 0.8336819, Df = 1, p = 0.36121
# No tenemos problemas con la igualdad de varianzas
# Recuerde:
# Un modelo predictivo presenta homocedasticidad cuando la varianza
# del error condicional a las variables explicativas es constante
# a lo largo de las observaciones.
# 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(object = Modelo,
newdata = data.frame(FactorA_Material=FactorA_Material2,
FactorB_Temperatura=FactorB_Temperatura2),
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(object = Modelo,
newdata = data.frame(FactorA_Material=FactorA_Material2,
FactorB_Temperatura=FactorB_Temperatura2),
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
# El mejor material es el 3.
# ============================