Introducción

Este análisis aplica un Diseño de Cuadrado Latino (DCL) para evaluar la variabilidad de concentraciones de monóxido de carbono (ppm) en distintos puntos de una ciudad. Se emplean pruebas estadísticas para evaluar los efectos de los factores y validar los supuestos del modelo.


#1. Carga de Librerías

library(data.table)
library(tidyverse)
library(agricolae)
library(car)
library(lmtest)

#**2. Importado de datos**
DCL <- fread("https://archive.org/download/byrong_DCL/DCL.txt", header=TRUE, sep="\t", dec=",")
print(head(DCL))
##    Puntos       Dia  Hora   ppm
##    <char>    <char> <int> <int>
## 1:  Norte     Lunes     8   124
## 2:   Este     Lunes    11   112
## 3:    Sur     Lunes    14   123
## 4:  Oeste     Lunes    17   118
## 5: Centro     Lunes    20   102
## 6:    Sur Miercoles     8   124
attach(DCL)  # Permite acceso directo a variables

#**3. transformacion de variables**
TRC <- factor(DCL$Puntos)
FILA <- factor(DCL$Dia)
COL <- factor(DCL$Hora)
Resp <- as.vector(DCL$ppm)
Resp1 <- as.numeric(Resp)

#**4.Boxplot**
#Hay diferencias en la distribución de las concentraciones de CO entre las zonas de la ciudad.

#El Centro tiene una variabilidad alta, lo que podría indicar fluctuaciones en la contaminación dependiendo del momento del día.

#El Sur parece tener las concentraciones más altas de forma consistente.

boxplot(split(Resp1, TRC), xlab="Puntos de Ciudad", ylab="Concentraciones de monóxido de carbono")

#**5.Modelo estadistico**
#FILA (Día):𝑝=0.07757 No es estadísticamente significativo
#COL (Hora del día):𝑝=0.46626 No es estadisticamente significativo
#TRC (Puntos de ciudad):𝑝=0.01224 Existe una diferencia estadísticamente significativa entre las concentraciones de CO en los distintos puntos de la ciudad.

#Se tiene un CV menor al 10% indicando las medidas son bastante precisas pues este es dde 5.52%

DCL.lm <- lm(Resp1 ~ FILA + COL + TRC)
summary(DCL.lm)
## 
## Call:
## lm(formula = Resp1 ~ FILA + COL + TRC)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -9.08  -2.28  -0.28   3.32   9.32 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    123.480      4.868  25.365 8.57e-12 ***
## FILAS\xe1bado   -1.800      4.270  -0.422  0.68078    
## FILALunes      -11.800      4.270  -2.764  0.01716 *  
## FILAMiercoles   -9.400      4.270  -2.202  0.04800 *  
## FILAViernes     -4.200      4.270  -0.984  0.34468    
## COL11           -6.200      4.270  -1.452  0.17211    
## COL14            0.800      4.270   0.187  0.85450    
## COL17            0.600      4.270   0.141  0.89057    
## COL20           -2.400      4.270  -0.562  0.58438    
## TRCEste          0.800      4.270   0.187  0.85450    
## TRCNorte        13.800      4.270   3.232  0.00719 ** 
## TRCOeste         1.000      4.270   0.234  0.81877    
## TRCSur          12.200      4.270   2.857  0.01442 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.751 on 12 degrees of freedom
## Multiple R-squared:  0.7463, Adjusted R-squared:  0.4925 
## F-statistic: 2.941 on 12 and 12 DF,  p-value: 0.03678
DCL.aov <- aov(Resp1 ~ FILA + COL + TRC)
anova(DCL.aov)
## Analysis of Variance Table
## 
## Response: Resp1
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## FILA       4 502.56 125.640  2.7569 0.07757 .
## COL        4 174.16  43.540  0.9554 0.46626  
## TRC        4 931.76 232.940  5.1113 0.01224 *
## Residuals 12 546.88  45.573                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(DCL.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## FILA         4  502.6  125.64   2.757 0.0776 .
## COL          4  174.2   43.54   0.955 0.4663  
## TRC          4  931.8  232.94   5.111 0.0122 *
## Residuals   12  546.9   45.57                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cv.model(DCL.aov)  # Coeficiente de variación
## [1] 5.526197
#**6.Evaluacion de supuestos**
#H₀ (Hipótesis nula): Los residuos siguen una distribución normal.

#H₁ (Hipótesis alternativa): Los residuos no siguen una distribución normal.
#NO se rechaza H₀. Es decir que los residuos siguen una distribución normal
#qqplot:
#La mayoría de los puntos están alineados con la diagonal, lo que confirma la normalidad de los residuos.

#Hay algunas pequeñas desviaciones en los extremos, pero no son significativas.
shapiro.test(DCL.lm$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  DCL.lm$residuals
## W = 0.97948, p-value = 0.8746
qqPlot(DCL.aov)

## [1] 10 13
#**6.1 homogeneidad e independencia**
#los puntos parecen estar distribuidos sin un patrón claro, lo que sugiere que la homocedasticidad se cumple.
#no se observa un patrón sistemático en la distribución de los puntos, por lo que no hay evidencia clara de dependencia
#no hay evidencia de autocorrelación en los residuos pues dw esta proximo a 2.
fitc <- fitted(DCL.aov)
res_stc <- rstandard(DCL.aov)  

plot(fitc, res_stc, xlab="Valores predichos", ylab="Residuos estandarizados", abline(h=0))

dwtest(DCL.lm, order.by = ~ Puntos, data = DCL, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  DCL.lm
## DW = 2.2798, p-value = 0.9786
## alternative hypothesis: true autocorrelation is not 0
#**Comparacion de medias**
#*LSD*
#NO presentan diferencias significativas entre
#Norte y Sur (letra "a")
#Centro, Este y Oeste (letra "b")
#Presentan diferencias significativas
#Norte y Sur tienen concentraciones significativamente mayores que Centro, Este y Oeste.
#Ademas estas zonas tienen mayores niveles de contaminación, posiblemente debido a mayor tráfico
#*HSD*
#NO presentan diferencias significativas entre
#Centro, Este, Oeste y Sur (letra "ab")
#Norte y Sur (letra "a" y "ab")
#Presentan diferenccias significativas
#Norte tiene una concentración significativamente mayor que Centro.

outLSD <- LSD.test(DCL.aov, "TRC", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## LSD t Test for Resp1 
## 
## Mean Square Error:  45.57333 
## 
## TRC,  means and individual ( 95 %) CI
## 
##        Resp1       std r       se      LCL      UCL Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 110.0221 123.1779 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 110.8221 123.9779 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 123.8221 136.9779 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 111.0221 124.1779 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 122.2221 135.3779 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12
## Critical Value of t: 2.178813 
## 
## least Significant Difference: 9.302621 
## 
## Treatments with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8      a
## Oeste  117.6      b
## Este   117.4      b
## Centro 116.6      b
outHSD <- HSD.test(DCL.aov, "TRC", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## HSD Test for Resp1 
## 
## Mean Square Error:  45.57333 
## 
## TRC,  means
## 
##        Resp1       std r       se Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12 
## Critical Value of Studentized Range: 4.50771 
## 
## Minimun Significant Difference: 13.609 
## 
## Treatments with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8     ab
## Oeste  117.6     ab
## Este   117.4     ab
## Centro 116.6      b
SNK.test(DCL.aov, "TRC", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## Student Newman Keuls Test
## for Resp1 
## 
## Mean Square Error:  45.57333 
## 
## TRC,  means
## 
##        Resp1       std r       se Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12 
## 
## Critical Range
##         2         3         4         5 
##  9.302621 11.390664 12.675968 13.609004 
## 
## Means with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8      a
## Oeste  117.6      b
## Este   117.4      b
## Centro 116.6      b
scheffe.test(DCL.aov, "TRC", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## Scheffe Test for Resp1 
## 
## Mean Square Error  : 45.57333 
## 
## TRC,  means
## 
##        Resp1       std r       se Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12 
## Critical Value of F: 3.259167 
## 
## Minimum Significant Difference: 15.41589 
## 
## Means with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8      a
## Oeste  117.6      a
## Este   117.4      a
## Centro 116.6      a
duncan.test(DCL.aov, "TRC", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## Duncan's new multiple range test
## for Resp1 
## 
## Mean Square Error:  45.57333 
## 
## TRC,  means
## 
##        Resp1       std r       se Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12 
## 
## Critical Range
##         2         3         4         5 
##  9.302621  9.737174 10.000463 10.174719 
## 
## Means with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8      a
## Oeste  117.6      b
## Este   117.4      b
## Centro 116.6      b
LSD.test(DCL.aov, "TRC", p.adj= "bon", console=TRUE)
## 
## Study: DCL.aov ~ "TRC"
## 
## LSD t Test for Resp1 
## P value adjustment method: bonferroni 
## 
## Mean Square Error:  45.57333 
## 
## TRC,  means and individual ( 95 %) CI
## 
##        Resp1       std r       se      LCL      UCL Min Max Q25 Q50 Q75
## Centro 116.6 14.724130 5 3.019051 110.0221 123.1779 100 133 102 124 124
## Este   117.4  5.366563 5 3.019051 110.8221 123.9779 112 124 112 118 121
## Norte  130.4  3.911521 5 3.019051 123.8221 136.9779 124 134 130 131 133
## Oeste  117.6  4.560702 5 3.019051 111.0221 124.1779 112 122 114 118 122
## Sur    128.8  4.919350 5 3.019051 122.2221 135.3779 123 133 124 131 133
## 
## Alpha: 0.05 ; DF Error: 12
## Critical Value of t: 3.428444 
## 
## Minimum Significant Difference: 14.63802 
## 
## Treatments with the same letter are not significantly different.
## 
##        Resp1 groups
## Norte  130.4      a
## Sur    128.8      a
## Oeste  117.6      a
## Este   117.4      a
## Centro 116.6      a
detach(DCL)
rm(list=ls())  # Borra todos los objetos del entorno

#*Conclusion*
#El nivel de monóxido de carbono varía según la ubicación en la ciudad (p = 0.012), siendo Norte y Sur las zonas con mayor contaminación.
#El día y la hora no tienen un efecto significativo en la concentración (p > 0.05).
#Las pruebas estadísticas validan el modelo, cumpliendo con los supuestos de normalidad, homogeneidad de varianzas e independencia de residuos.
#El coeficiente de variación (CV = 5.53%) indica baja variabilidad, lo que respalda la confiabilidad del análisis.