Aspectos generales del diseño experimental

El Diseño Completamente Aleatorizado (DCA) permite comparar distintos tratamientos cuando las unidades experimentales se encuentran en condiciones similares. La asignación de los tratamientos se realiza al azar y cada uno cuenta con varias repeticiones, lo que permite estimar el error experimental y estudiar las diferencias entre los resultados.

Entre sus aspectos principales se encuentran:

Descripción de la evaluación

Se comparó la aceptación sensorial de tres marcas de café: Café Tostao, Café Viejo Molino y Café Colcafé, con el propósito de establecer si las calificaciones otorgadas por los consumidores presentan diferencias entre las marcas. Para cada una se registraron seis valoraciones, correspondientes a seis repeticiones por tratamiento. Las puntuaciones se establecieron en una escala de 1 a 10, donde los valores menores representan una aceptación baja y los valores mayores indican una valoración favorable. Los datos se estudiaron mediante un Diseño Completamente Aleatorizado (DCA).

Construcción de la matriz experimental

En esta etapa se definen los tratamientos y se organizan las seis observaciones correspondientes a cada marca. También se calculan la suma y el promedio de las calificaciones para facilitar la comparación inicial.

library(printr)

Tratamientos <- c("Café Tostao",
                  "Café Viejo Molino",
                  "Café Colcafé")

t <- 3
r <- 6
N <- t*r

r1 <- c(8,7,9)
r2 <- c(9,8,8)
r3 <- c(8,7,10)
r4 <- c(9,6,9)
r5 <- c(10,8,8)
r6 <- c(8,7,10)

replicas <- cbind(r1,r2,r3,r4,r5,r6)

Total <- rowSums(replicas)
medias <- Total/r

Tabla <- data.frame(Tratamientos,r1,r2,r3,r4,r5,r6,Total,medias)

Tabla
Tratamientos r1 r2 r3 r4 r5 r6 Total medias
Café Tostao 8 9 8 9 10 8 52 8.666667
Café Viejo Molino 7 8 7 6 8 7 43 7.166667
Café Colcafé 9 8 10 9 8 10 54 9.000000

Preparación de los registros para el análisis

Para aplicar los procedimientos estadísticos, las calificaciones se organizan en una variable de respuesta y una variable categórica que identifica la marca de café correspondiente a cada observación.

cafe <- c(rep("Café Tostao",6),
          rep("Café Viejo Molino",6),
          rep("Café Colcafé",6))

cafe <- as.factor(cafe)

y <- c(8,9,8,9,10,8,
       7,8,7,6,8,7,
       9,8,10,9,8,10)

DATA <- data.frame(cafe,y)

DATA
cafe y
Café Tostao 8
Café Tostao 9
Café Tostao 8
Café Tostao 9
Café Tostao 10
Café Tostao 8
Café Viejo Molino 7
Café Viejo Molino 8
Café Viejo Molino 7
Café Viejo Molino 6
Café Viejo Molino 8
Café Viejo Molino 7
Café Colcafé 9
Café Colcafé 8
Café Colcafé 10
Café Colcafé 9
Café Colcafé 8
Café Colcafé 10

Representación de la distribución de las calificaciones

El diagrama de cajas permite observar la distribución de las puntuaciones de cada marca, comparar sus medianas y reconocer la dispersión de los datos registrados en la evaluación sensorial.

boxplot(y~cafe,
        col="green",
        main="Comparación de la aceptación entre marcas de café",
        xlab="Marcas evaluadas",
        ylab="Calificación sensorial",
        ylim=c(1,10))

Evaluación de diferencias entre las marcas

Se aplica un análisis de varianza (ANOVA) para determinar si existen diferencias estadísticamente significativas entre las calificaciones promedio de Café Tostao, Café Viejo Molino y Café Colcafé. El modelo considera la marca como factor explicativo y la puntuación sensorial como variable de respuesta.

modelo <- lm(y~cafe)

anova <- aov(modelo)

summary(modelo)
## 
## Call:
## lm(formula = y ~ cafe)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.16667 -0.66667 -0.08333  0.70833  1.33333 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             9.0000     0.3361  26.778 4.44e-14 ***
## cafeCafé Tostao        -0.3333     0.4753  -0.701  0.49386    
## cafeCafé Viejo Molino  -1.8333     0.4753  -3.857  0.00155 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8233 on 15 degrees of freedom
## Multiple R-squared:  0.5296, Adjusted R-squared:  0.4668 
## F-statistic: 8.443 on 2 and 15 DF,  p-value: 0.003498
summary(anova)
##             Df Sum Sq Mean Sq F value Pr(>F)   
## cafe         2  11.44   5.722   8.443 0.0035 **
## Residuals   15  10.17   0.678                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Comparaciones entre los promedios de los tratamientos

Cuando el análisis de varianza evidencia diferencias entre los tratamientos, se realizan procedimientos de comparación múltiple para reconocer cuáles marcas presentan promedios diferentes.

Comparación de medias mediante LSD

La prueba de Diferencia Mínima Significativa (LSD) permite contrastar los promedios de los tratamientos y formar grupos de marcas que presentan o no diferencias significativas.

library(agricolae)

LSD.test(modelo,"cafe",
         group=TRUE,
         console=TRUE,
         main="Diferencias entre las calificaciones de las marcas")
## 
## Study: Diferencias entre las calificaciones de las marcas
## 
## LSD t Test for y 
## 
## Mean Square Error:  0.6777778 
## 
## cafe,  means and individual ( 95 %) CI
## 
##                          y       std r        se      LCL      UCL Min Max  Q25
## Café Colcafé      9.000000 0.8944272 6 0.3360996 8.283621 9.716379   8  10 8.25
## Café Tostao       8.666667 0.8164966 6 0.3360996 7.950287 9.383046   8  10 8.00
## Café Viejo Molino 7.166667 0.7527727 6 0.3360996 6.450287 7.883046   6   8 7.00
##                   Q50  Q75
## Café Colcafé      9.0 9.75
## Café Tostao       8.5 9.00
## Café Viejo Molino 7.0 7.75
## 
## Alpha: 0.05 ; DF Error: 15
## Critical Value of t: 2.13145 
## 
## least Significant Difference: 1.013113 
## 
## Treatments with the same letter are not significantly different.
## 
##                          y groups
## Café Colcafé      9.000000      a
## Café Tostao       8.666667      a
## Café Viejo Molino 7.166667      b

Contraste simultáneo de los tratamientos con Tukey

La prueba de Tukey compara los tratamientos por pares y ajusta las comparaciones para controlar el error asociado al análisis múltiple. Se utiliza un nivel de confianza del 95 %.

tukey <- TukeyHSD(anova,"cafe",conf.level=0.95)

plot(tukey)

tukey
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = modelo)
## 
## $cafe
##                                      diff       lwr        upr     p adj
## Café Tostao-Café Colcafé       -0.3333333 -1.567954  0.9012875 0.7663903
## Café Viejo Molino-Café Colcafé -1.8333333 -3.067954 -0.5987125 0.0041614
## Café Viejo Molino-Café Tostao  -1.5000000 -2.734621 -0.2653791 0.0169072

Agrupación de las marcas según Duncan

El procedimiento de Duncan permite ordenar los tratamientos de acuerdo con sus medias y establecer grupos estadísticos. Las marcas que comparten una misma letra no presentan diferencias significativas bajo el nivel de significancia utilizado.

duncan.test(modelo,"cafe",
            group=TRUE,
            console=TRUE,
            main="Agrupación de las marcas según su valoración")
## 
## Study: Agrupación de las marcas según su valoración
## 
## Duncan's new multiple range test
## for y 
## 
## Mean Square Error:  0.6777778 
## 
## cafe,  means
## 
##                          y       std r        se Min Max  Q25 Q50  Q75
## Café Colcafé      9.000000 0.8944272 6 0.3360996   8  10 8.25 9.0 9.75
## Café Tostao       8.666667 0.8164966 6 0.3360996   8  10 8.00 8.5 9.00
## Café Viejo Molino 7.166667 0.7527727 6 0.3360996   6   8 7.00 7.0 7.75
## 
## Alpha: 0.05 ; DF Error: 15 
## 
## Critical Range
##        2        3 
## 1.013113 1.062016 
## 
## Means with the same letter are not significantly different.
## 
##                          y groups
## Café Colcafé      9.000000      a
## Café Tostao       8.666667      a
## Café Viejo Molino 7.166667      b

Evaluación del comportamiento de los residuos

Los residuos representan las diferencias entre las calificaciones observadas y los valores estimados por el modelo. Su revisión permite examinar si se cumplen algunos de los supuestos necesarios para interpretar el análisis de varianza.

Cálculo y ordenamiento de los residuos

library(car)
## Cargando paquete requerido: carData
residuos <- modelo$residuals

residuos
##             1             2             3             4             5 
## -6.666667e-01  3.333333e-01 -6.666667e-01  3.333333e-01  1.333333e+00 
##             6             7             8             9            10 
## -6.666667e-01 -1.666667e-01  8.333333e-01 -1.666667e-01 -1.166667e+00 
##            11            12            13            14            15 
##  8.333333e-01 -1.666667e-01 -1.942890e-16 -1.000000e+00  1.000000e+00 
##            16            17            18 
## -1.942890e-16 -1.000000e+00  1.000000e+00
sort(residuos)
##            10            14            17             3             6 
## -1.166667e+00 -1.000000e+00 -1.000000e+00 -6.666667e-01 -6.666667e-01 
##             1             7             9            12            13 
## -6.666667e-01 -1.666667e-01 -1.666667e-01 -1.666667e-01 -1.942890e-16 
##            16             2             4             8            11 
## -1.942890e-16  3.333333e-01  3.333333e-01  8.333333e-01  8.333333e-01 
##            15            18             5 
##  1.000000e+00  1.000000e+00  1.333333e+00

Inspección gráfica de normalidad

El gráfico Q-Q permite comparar los cuantiles observados de los residuos con los cuantiles teóricos de una distribución normal. Una disposición aproximadamente lineal de los puntos es compatible con el supuesto de normalidad.

qqnorm(residuos)

qqline(residuos)

qqPlot(residuos,pch=10)

## [1]  5 10

Relación entre residuos y valores estimados

Esta representación permite observar si los errores se distribuyen de manera aleatoria alrededor de cero o si presentan algún patrón que pueda indicar problemas en el ajuste del modelo.

plot(modelo$fitted.values,residuos,
     main="Residuos frente a valores ajustados",
     pch=20)

Revisión gráfica del ajuste estadístico

Los gráficos de diagnóstico reúnen distintas representaciones que ayudan a examinar el comportamiento de los residuos, posibles observaciones influyentes y la adecuación general del modelo.

par(mfrow=c(2,2))

plot(modelo)

par(mfrow=c(1,1))

Resumen de residuos por tratamiento

Se agrupan los residuos según la marca de café para facilitar la revisión de los errores asociados a cada tratamiento.

data2 <- data.frame(cafe,residuos)

data2
cafe residuos
Café Tostao -0.6666667
Café Tostao 0.3333333
Café Tostao -0.6666667
Café Tostao 0.3333333
Café Tostao 1.3333333
Café Tostao -0.6666667
Café Viejo Molino -0.1666667
Café Viejo Molino 0.8333333
Café Viejo Molino -0.1666667
Café Viejo Molino -1.1666667
Café Viejo Molino 0.8333333
Café Viejo Molino -0.1666667
Café Colcafé 0.0000000
Café Colcafé -1.0000000
Café Colcafé 1.0000000
Café Colcafé 0.0000000
Café Colcafé -1.0000000
Café Colcafé 1.0000000

Comprobación de la igualdad de varianzas

La homogeneidad de varianzas supone que la variabilidad de las calificaciones es comparable entre los tratamientos. Para examinar este supuesto se analizan los residuos absolutos y se aplica la prueba de Levene.

Contraste de dispersión mediante residuos absolutos

mod1 <- lm(abs(residuos)~cafe)

anv1 <- aov(mod1)

summary(anv1)
##             Df Sum Sq Mean Sq F value Pr(>F)
## cafe         2 0.0494 0.02469   0.124  0.884
## Residuals   15 2.9815 0.19877

Contraste de normalidad de Shapiro-Wilk

La prueba de Shapiro-Wilk permite evaluar si los residuos se apartan significativamente de una distribución normal. Un valor p superior a 0.05 indica que no se encuentra evidencia estadística suficiente para rechazar la hipótesis de normalidad.

shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.94337, p-value = 0.3305

Evaluación complementaria de Kolmogorov-Smirnov

Como complemento, se presenta la prueba de Kolmogorov-Smirnov para comparar la distribución empírica de los residuos con una distribución normal cuyos parámetros se estiman a partir de los mismos datos. Esta salida se conserva como referencia del ejercicio; debido a la estimación de los parámetros y a la presencia de valores repetidos, no debe considerarse una prueba formal de normalidad.

ks.test(residuos,"pnorm",
        mean=mean(residuos),
        sd=sd(residuos))
## Warning in ks.test.default(residuos, "pnorm", mean = mean(residuos), sd =
## sd(residuos)): ties should not be present for the one-sample Kolmogorov-Smirnov
## test
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuos
## D = 0.13901, p-value = 0.8775
## alternative hypothesis: two-sided

Comprobación de homogeneidad con Levene

La prueba de Levene permite evaluar si las varianzas de los grupos pueden considerarse iguales. Se utiliza la media como centro para el cálculo de la prueba.

leveneTest(residuos~cafe,
           center=mean,
           data=data2)
Df F value Pr(>F)
group 2 0.1242236 0.8840815
15 NA NA

Interpretación general de los resultados

El análisis de varianza permite establecer que existen diferencias estadísticamente significativas entre las calificaciones promedio de las tres marcas de café, debido a que el valor p obtenido es inferior a 0.05. Las comparaciones múltiples muestran que Café Viejo Molino presenta una media inferior a las de Café Tostao y Café Colcafé, mientras que estas dos últimas marcas no presentan diferencias significativas entre sí.

En cuanto a los supuestos del modelo, la prueba de Shapiro-Wilk no evidencia una desviación estadísticamente significativa de la normalidad de los residuos. De igual manera, los resultados de las pruebas de homogeneidad no muestran diferencias significativas en la variabilidad entre los tratamientos. En conjunto, estas comprobaciones permiten respaldar la interpretación del modelo para los datos evaluados.