PARTE 1: ANÁLISIS DE TIEMPOS POR PROGRAMA

CARGAR DATOS

En esta sección se realiza la importación de la base de datos desde el archivo Excel.

library(readxl)
datos1 <- read_excel("datos1.xlsx")

MODELO DCA (ANOVA)

Se define el modelo lineal para un Diseño Completamente al Azar (DCA).

modelo <- lm(Tiempo ~ Programa, data = datos1)
modelo
## 
## Call:
## lm(formula = Tiempo ~ Programa, data = datos1)
## 
## Coefficients:
##   (Intercept)   ProgramaBeta  ProgramaGamma  ProgramaSigma  
##          64.6           -5.6            0.4           -4.8

Parámetros del modelo:

  • yi: tiempo observado usando el programa en la repetición j.
  • u: tiempo promedio general considerando todos los programas.
  • ti: efecto del programa (qué tanto cambia el tiempo respecto al promedio).
  • eij: error aleatorio.

Generando los residuales del modelo

Calculamos los residuales para verificar que el modelo sea adecuado.

em <- residuals(modelo)

Gráficos de los residuales

Visualización para el análisis exploratorio de los errores.

hist(em)

library(car)
qqPlot(em)

## [1] 12  3

Prueba de normalidad de los errores del modelo

Se utiliza la prueba de Anderson-Darling para verificar el supuesto de normalidad.

library(nortest)
ad.test(em)
## 
##  Anderson-Darling normality test
## 
## data:  em
## A = 0.52875, p-value = 0.1553

Resultados de la Prueba de Normalidad:

  • H0: Los errores se ajustan a una distribución normal.
  • H1: Los errores NO se ajustan a una distribución normal.
  • Alfa: 0.05
  • Prueba Estadística: A = 0.2532
  • Criterio de decisión: p-valor = 0.7012 > alfa (0.05), por lo tanto, no se rechaza Ho.

Conclusión: Los errores se distribuyen normalmente.

Prueba de homocedasticidad de los errores del modelo

Verificamos la igualdad de varianzas entre los grupos.

bartlett.test(em ~ datos1$Programa)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  em by datos1$Programa
## Bartlett's K-squared = 0.95898, df = 3, p-value = 0.8112
# Valor crítico
qchisq(0.05, 3, lower.tail = F)
## [1] 7.814728
# Criterio de decisión utilizando valor crítico
qchisq(0.95, 3)
## [1] 7.814728

Resultados de la prueba de Bartlett:

  • Ho: Los errores del modelo presentan homocedasticidad.
  • H1: Los errores del modelo no presentan homocedasticidad.
  • Alfa: 0.05
  • Prueba Estadística: Bartlett’s k-squared = 0.60458
  • Criterio de decisión: p-valor = 0.8954, no se rechaza Ho.
  • Respuesta valor crítico: 7.814728

Conclusión: Los errores del modelo presentan homocedasticidad.

Cuadro ANOVA

anova(modelo)
# Valor crítico
qf(0.05, 3, 18, lower.tail = F)
## [1] 3.159908
# Valor critico (1-alfa, df factor, df residuals)
qf(0.95, 3, 18)
## [1] 3.159908

Resultados del cuadro de Anova:

  • Ho: U1 = U2 = U3 = U4
  • H1: Al menos un Ui es diferente a los demás.
  • Nivel de significación: 0.05
  • Prueba Estadística: F value = 8.8654
  • Criterio de decisión: p-valor = 0.0007991 < alfa, se rechaza Ho.
  • Respuesta valor crítico: 2.975154

Conclusión: Se rechaza Ho, es decir, al menos una de las agencias es diferente a las demás al evaluar los tiempos promedio.

Grafica de la region critica

library(fastGraph)
shadeDist(qf(0.05, 3, 18, lower.tail = F), "df", 3, 26, lower.tail = F)

Prueba Tukey

La prueba de Tukey es una prueba de comparación múltiple que se aplica después de realizar un ANOVA, cuando se ha rechazado la hipótesis nula, con el objetivo de identificar qué pares de medias presentan diferencias significativas.

library(agricolae)
HSD.test(modelo, "Programa", group = T, console = T, alpha = 0.05)
## 
## Study: modelo ~ "Programa"
## 
## HSD Test for Tiempo 
## 
## Mean Square Error:  2.75 
## 
## Programa,  means
## 
##       Tiempo      std r        se Min Max Q25 Q50 Q75
## Alfa    64.6 1.949359 5 0.7416198  62  67  64  64  66
## Beta    59.0 1.224745 5 0.7416198  58  61  58  59  59
## Gamma   65.0 1.870829 5 0.7416198  63  68  64  65  65
## Sigma   59.8 1.483240 5 0.7416198  58  62  59  60  60
## 
## Alpha: 0.05 ; DF Error: 16 
## Critical Value of Studentized Range: 4.046093 
## 
## Minimun Significant Difference: 3.000663 
## 
## Treatments with the same letter are not significantly different.
## 
##       Tiempo groups
## Gamma   65.0      a
## Alfa    64.6      a
## Sigma   59.8      b
## Beta    59.0      b
# Alternativa con aov
modelo2 <- aov(Tiempo ~ Programa, data = datos1)
TukeyHSD(modelo2)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Tiempo ~ Programa, data = datos1)
## 
## $Programa
##             diff       lwr       upr     p adj
## Beta-Alfa   -5.6 -8.600663 -2.599337 0.0003499
## Gamma-Alfa   0.4 -2.600663  3.400663 0.9804511
## Sigma-Alfa  -4.8 -7.800663 -1.799337 0.0015898
## Gamma-Beta   6.0  2.999337  9.000663 0.0001678
## Sigma-Beta   0.8 -2.200663  3.800663 0.8698923
## Sigma-Gamma -5.2 -8.200663 -2.199337 0.0007409

Hipótesis para cada comparación de medias:

  • H0: mui = muj (las medias de los programas son iguales)
  • H1: mui ≠ muj (las medias de los programas son diferentes)

Nivel de significancia: alfa = 0.05

ESTADÍSTICO DE PRUEBA La prueba de Tukey utiliza el rango studentizado (q). Fórmula: HSD = q * sqrt(CMerror / n)

En conclusión: Se rechaza la hipótesis de igualdad de medias y se determina que existen programas con desempeños significativamente diferentes, siendo recomendable seleccionar aquellos que presentan menores tiempos promedio según los resultados obtenidos.

Prueba de Duncan

library(agricolae)

duncan <- duncan.test(modelo, "Programa", 
                      alpha = 0.05, 
                      group = TRUE, 
                      console = TRUE)
## 
## Study: modelo ~ "Programa"
## 
## Duncan's new multiple range test
## for Tiempo 
## 
## Mean Square Error:  2.75 
## 
## Programa,  means
## 
##       Tiempo      std r        se Min Max Q25 Q50 Q75
## Alfa    64.6 1.949359 5 0.7416198  62  67  64  64  66
## Beta    59.0 1.224745 5 0.7416198  58  61  58  59  59
## Gamma   65.0 1.870829 5 0.7416198  63  68  64  65  65
## Sigma   59.8 1.483240 5 0.7416198  58  62  59  60  60
## 
## Alpha: 0.05 ; DF Error: 16 
## 
## Critical Range
##        2        3        4 
## 2.223375 2.331506 2.399099 
## 
## Means with the same letter are not significantly different.
## 
##       Tiempo groups
## Gamma   65.0      a
## Alfa    64.6      a
## Sigma   59.8      b
## Beta    59.0      b
duncan
## $statistics
##   MSerror Df Mean      CV
##      2.75 16 62.1 2.67039
## 
## $parameters
##     test   name.t ntr alpha
##   Duncan Programa   4  0.05
## 
## $duncan
##      Table CriticalRange
## 2 2.997999      2.223375
## 3 3.143802      2.331506
## 4 3.234945      2.399099
## 
## $means
##       Tiempo      std r        se Min Max Q25 Q50 Q75
## Alfa    64.6 1.949359 5 0.7416198  62  67  64  64  66
## Beta    59.0 1.224745 5 0.7416198  58  61  58  59  59
## Gamma   65.0 1.870829 5 0.7416198  63  68  64  65  65
## Sigma   59.8 1.483240 5 0.7416198  58  62  59  60  60
## 
## $comparison
## NULL
## 
## $groups
##       Tiempo groups
## Gamma   65.0      a
## Alfa    64.6      a
## Sigma   59.8      b
## Beta    59.0      b
## 
## attr(,"class")
## [1] "group"

Hipótesis:

  • H0: ui = uj (las medias de los programas son iguales)
  • H1: ui ≠ uj (las medias de los programas son diferentes)

Nivel de significancia: alfa = 0.05

Estadístico de prueba: La prueba de Duncan utiliza el rango studentizado (q) para calcular el Rango Mínimo Significativo (RMS): D = q * sqrt(CMerror / n)

Donde: * q: valor crítico de Duncan (depende del número de medias) * CMerror: cuadrado medio del error (obtenido del ANOVA) * n: número de observaciones por grupo

CRITERIO DE DECISIÓN:

  • Si |Yi - Yj| > D → se rechaza H0 (hay diferencia significativa)
  • Si |Yi - Yj| ≤ D → no se rechaza H0 (no hay diferencia)

Forma práctica en R (agrupación por letras): * Letras iguales → no hay diferencia significativa * Letras diferentes → sí hay diferencia significativa

CONCLUSIÓN: Dado que en el ANOVA se rechazó H0 (pvalor < 0.05), se procede a aplicar la prueba de Duncan.

La prueba de Duncan permite identificar qué programas presentan diferencias significativas en sus medias.

Los resultados muestran agrupaciones de programas con letras donde programas con la misma letra no difieren entre sí mientras que aquellos con letras distintas sí presentan diferencias.

COMPARACIÓN: DUNCAN vs TUKEY

Ambas pruebas comparan medias bajo: H0: mui = muj

Prueba Diferencia clave Conclusión
Duncan Es menos estricta (más liberal), detecta más diferencias significativas Duncan se usa para análisis más exploratorio
Tukey Es más conservadora, detecta menos diferencias pero con mayor control del error Tukey para conclusiones más rigurosas

PARTE 2: ANÁLISIS DE CRECIMIENTO POR FERTILIZANTE

Cargar Datos y Modelo

En esta sección cargamos los datos de crecimiento de plantas sometidas a 4 tipos de fertilizantes (Tipo_A, Tipo_B, Tipo_C, Tipo_D).

library(readxl)
datos2 <- read_excel("datos2.xlsx")

modelo_fert <- lm(Crecimiento ~ Fertilizante, data = datos2)
modelo_fert
## 
## Call:
## lm(formula = Crecimiento ~ Fertilizante, data = datos2)
## 
## Coefficients:
##        (Intercept)  FertilizanteTipo_B  FertilizanteTipo_C  FertilizanteTipo_D  
##              25.44                3.72               -2.90                2.08

Parámetros:

  • yi: crecimiento observado usando el fertilizante en la repetición j.
  • u: crecimiento promedio general considerando todos los fertilizantes.
  • ti: efecto del fertilizante (qué tanto cambia el crecimiento respecto al promedio).
  • eij: error aleatorio.

Residuales del modelo

em_fert <- residuals(modelo_fert)
em_fert
##     1     2     3     4     5     6     7     8     9    10    11    12    13 
## -0.04  0.66 -0.64  0.46 -0.44 -0.96  0.34 -0.36  0.94  0.04 -0.44  0.86 -0.74 
##    14    15    16    17    18    19    20 
##  0.36 -0.04 -0.02  0.58 -0.62  0.28 -0.22
hist(em_fert)

library(car)
qqPlot(em_fert)

## [1] 6 9

Pruebas de Supuestos (Normalidad y Homocedasticidad)

# 1. Normalidad (Anderson-Darling)
library(nortest)
ad.test(em_fert)
## 
##  Anderson-Darling normality test
## 
## data:  em_fert
## A = 0.20801, p-value = 0.8434
# 2. Homocedasticidad (Bartlett)
bartlett.test(em_fert ~ datos2$Fertilizante)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  em_fert by datos2$Fertilizante
## Bartlett's K-squared = 0.74333, df = 3, p-value = 0.863
qchisq(0.05, 3, lower.tail = F)
## [1] 7.814728
qchisq(0.95, 3)
## [1] 7.814728

Criterio de Decisión General (Alfa = 0.05):

  • Si p-valor > 0.05 → No se rechaza H0 (Se cumple el supuesto).
  • Si p-valor ≤ 0.05 → Se rechaza H0 (No se cumple el supuesto).

Conclusión de los Supuestos: De acuerdo con la naturaleza de los datos evaluados, el p-valor > 0.05 en ambas pruebas, por lo tanto no se rechaza H0. Se concluye que los errores se ajustan a una distribución normal y que las varianzas entre los tipos de fertilizantes son homogéneas (homocedasticidad). El modelo es válido.

Análisis de Varianza (ANOVA)

anova(modelo_fert)
qf(0.05, 3, 16, lower.tail = F)
## [1] 3.238872
qf(0.95, 3, 16)
## [1] 3.238872
library(fastGraph)
shadeDist(qf(0.05, 3, 16, lower.tail = F), "df", 3, 16, lower.tail = F)

Hipótesis ANOVA:

  • H0: μ1 = μ2 = μ3 = μ4 (Los fertilizantes tienen el mismo crecimiento promedio).
  • H1: Al menos un μi es diferente.

Conclusión del ANOVA: Al observar los promedios (Tipo B ~ 29.16 vs Tipo C ~ 22.54), el estadístico F calculado cae en la región de rechazo (p-valor < 0.05). Se rechaza H0. Existe evidencia estadística suficiente para afirmar que el tipo de fertilizante genera un efecto significativo sobre el crecimiento.

Pruebas de Comparación Múltiple

Como se rechazó H0 en el ANOVA, procedemos a identificar qué fertilizantes son diferentes entre sí.

library(agricolae)

# Prueba de Tukey
HSD.test(modelo_fert, "Fertilizante", group = TRUE, console = TRUE, alpha = 0.05)
## 
## Study: modelo_fert ~ "Fertilizante"
## 
## HSD Test for Crecimiento 
## 
## Mean Square Error:  0.36025 
## 
## Fertilizante,  means
## 
##        Crecimiento       std r        se  Min  Max  Q25  Q50  Q75
## Tipo_A       25.44 0.5594640 5 0.2684213 24.8 26.1 25.0 25.4 25.9
## Tipo_B       29.16 0.7162402 5 0.2684213 28.2 30.1 28.8 29.2 29.5
## Tipo_C       22.54 0.6348228 5 0.2684213 21.8 23.4 22.1 22.5 22.9
## Tipo_D       27.52 0.4604346 5 0.2684213 26.9 28.1 27.3 27.5 27.8
## 
## Alpha: 0.05 ; DF Error: 16 
## Critical Value of Studentized Range: 4.046093 
## 
## Minimun Significant Difference: 1.086058 
## 
## Treatments with the same letter are not significantly different.
## 
##        Crecimiento groups
## Tipo_B       29.16      a
## Tipo_D       27.52      b
## Tipo_A       25.44      c
## Tipo_C       22.54      d
modelo_aov <- aov(Crecimiento ~ Fertilizante, data = datos2)
TukeyHSD(modelo_aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Crecimiento ~ Fertilizante, data = datos2)
## 
## $Fertilizante
##                diff        lwr        upr     p adj
## Tipo_B-Tipo_A  3.72  2.6339424  4.8060576 0.0000002
## Tipo_C-Tipo_A -2.90 -3.9860576 -1.8139424 0.0000055
## Tipo_D-Tipo_A  2.08  0.9939424  3.1660576 0.0002666
## Tipo_C-Tipo_B -6.62 -7.7060576 -5.5339424 0.0000000
## Tipo_D-Tipo_B -1.64 -2.7260576 -0.5539424 0.0026705
## Tipo_D-Tipo_C  4.98  3.8939424  6.0660576 0.0000000
# Prueba de Duncan
duncan_fert <- duncan.test(modelo_fert, "Fertilizante", alpha = 0.05, group = TRUE, console = TRUE)
## 
## Study: modelo_fert ~ "Fertilizante"
## 
## Duncan's new multiple range test
## for Crecimiento 
## 
## Mean Square Error:  0.36025 
## 
## Fertilizante,  means
## 
##        Crecimiento       std r        se  Min  Max  Q25  Q50  Q75
## Tipo_A       25.44 0.5594640 5 0.2684213 24.8 26.1 25.0 25.4 25.9
## Tipo_B       29.16 0.7162402 5 0.2684213 28.2 30.1 28.8 29.2 29.5
## Tipo_C       22.54 0.6348228 5 0.2684213 21.8 23.4 22.1 22.5 22.9
## Tipo_D       27.52 0.4604346 5 0.2684213 26.9 28.1 27.3 27.5 27.8
## 
## Alpha: 0.05 ; DF Error: 16 
## 
## Critical Range
##         2         3         4 
## 0.8047268 0.8438636 0.8683281 
## 
## Means with the same letter are not significantly different.
## 
##        Crecimiento groups
## Tipo_B       29.16      a
## Tipo_D       27.52      b
## Tipo_A       25.44      c
## Tipo_C       22.54      d
duncan_fert
## $statistics
##   MSerror Df   Mean       CV
##   0.36025 16 26.165 2.293936
## 
## $parameters
##     test       name.t ntr alpha
##   Duncan Fertilizante   4  0.05
## 
## $duncan
##      Table CriticalRange
## 2 2.997999     0.8047268
## 3 3.143802     0.8438636
## 4 3.234945     0.8683281
## 
## $means
##        Crecimiento       std r        se  Min  Max  Q25  Q50  Q75
## Tipo_A       25.44 0.5594640 5 0.2684213 24.8 26.1 25.0 25.4 25.9
## Tipo_B       29.16 0.7162402 5 0.2684213 28.2 30.1 28.8 29.2 29.5
## Tipo_C       22.54 0.6348228 5 0.2684213 21.8 23.4 22.1 22.5 22.9
## Tipo_D       27.52 0.4604346 5 0.2684213 26.9 28.1 27.3 27.5 27.8
## 
## $comparison
## NULL
## 
## $groups
##        Crecimiento groups
## Tipo_B       29.16      a
## Tipo_D       27.52      b
## Tipo_A       25.44      c
## Tipo_C       22.54      d
## 
## attr(,"class")
## [1] "group"

Interpretación de Grupos (Letras):

  • Letras iguales → No hay diferencia significativa.
  • Letras diferentes → Sí hay diferencia significativa.

Conclusión Final de Pruebas Post-Hoc: Las pruebas determinan que existen grupos claramente diferenciados. El Tipo_B produce el mayor crecimiento promedio (aprox. 29.16), siendo estadísticamente superior al resto. Le sigue el Tipo_D (aprox. 27.52) y luego el Tipo_A (aprox. 25.44). Finalmente, el Tipo_C presenta el peor rendimiento promedio (aprox. 22.54). Se recomienda enfáticamente el uso del Fertilizante Tipo B para maximizar el crecimiento.


RESUMEN: DUNCAN vs TUKEY

Prueba Diferencias Uso recomendado
Duncan Menos estricta (más liberal), detecta más diferencias significativas. Análisis exploratorio.
Tukey Más conservadora, mayor control del error tipo I. Conclusiones rigurosas y definitivas.