Introducción

El objetivo de este estudio es analizar los niveles de sonido en diferentes edificios del campus universitario, identificando patrones espaciales en la distribución del ruido. ## Pregunta de investigación

¿Existen diferencias significativas en los niveles de sonido entre los distintos edificios del campus universitario?

Preparación de los datos

Base de datos

# Verificar las columnas existentes
names(ruido)
## [1] "ObjectID"     "Session_Name" "Timestamp"    "Latitude"     "Longitude"   
## [6] "Valor"
summary(ruido$Valor_ok)
## Length  Class   Mode 
##      0   NULL   NULL
summary(ruido$Longitude_ok)
## Length  Class   Mode 
##      0   NULL   NULL
# 1. Quitar todos los puntos de las coordenadas
ruido$Latitude  <- gsub("\\.", "", ruido$Latitude)
ruido$Longitude <- gsub("\\.", "", ruido$Longitude)

# 2. Insertar el punto en la posición correcta
ruido$Latitude_ok  <- as.numeric(sub("(\\d{1})(\\d+)", "\\1.\\2", ruido$Latitude))
ruido$Longitude_ok <- as.numeric(sub("(-\\d{2})(\\d+)", "\\1.\\2", ruido$Longitude))

# Verificar que caigan en el rango correcto
summary(ruido[, c("Latitude_ok", "Longitude_ok")])
##   Latitude_ok     Longitude_ok   
##  Min.   :3.346   Min.   :-76.53  
##  1st Qu.:3.347   1st Qu.:-76.53  
##  Median :3.347   Median :-76.53  
##  Mean   :3.347   Mean   :-76.53  
##  3rd Qu.:3.348   3rd Qu.:-76.53  
##  Max.   :3.349   Max.   :-76.53
# Corregir los valores de ruido
ruido$Valor=as.numeric(ruido$Valor)
ruido$Valor_ok=ruido$Valor/10^(nchar(ruido$Valor)-2)

Se realizó el siguiente código para poder hacer una limpia de la base de datos tomados del nivel de sonido en el campus. Esta preparación fue necesaria para hacer una análisis estadístico correcto

Mapa del trayecto realizado

# Mapa interactivo de puntos de medición
leaflet(ruido) %>%
  addTiles() %>%
  addCircleMarkers(
    lng = ~Longitude_ok, 
    lat = ~Latitude_ok, 
    label = ~paste("Sonido:", Valor_ok, "dB"),
    color = ~colorNumeric("YlOrRd", Valor_ok)(Valor_ok),
    fillOpacity = 0.7,
    radius = 6
  ) %>%
  addLegend(
    position = "bottomright",
    pal = colorNumeric("YlOrRd", ruido$Valor_ok),
    values = ruido$Valor_ok,
    title = "Nivel de sonido (dB)"
  )

Se realizó un transecto que abarque los distintos edificios del campus universitario de la Pontificia Universidad Javeriana Cali, en un día viernes de 10 a 11am. El trayecto se desarrolló en el siguiente orden: Cedro Rosado, Samán, Almendros, Palmas, Central, Guayacanes, Lago, Acacias, Biblioteca. La toma de datos se hizo con la aplicación “Air Casting”, usando los dos teléfonos celulares de los investigadores (ambos realizaron simultáneamente el mismo camino).

Categorizar según los edificios del campus

Finalmente, se determinó los centroides de las coordenadas de cada edificio muestrado. Con ello, se pudo determinar qué datos corresponden a su respectivo edificio. Esto permitió la descarga de una base de datos, añadiendo la variable “edificio”, para posteriormente facilitar el análisis estadístico y responder a la pregunta de investigación planteada.

Análisis estadístico

# PREPARACIÓN CORRECTA DE DATOS - USAR el data.frame sonido_edificios
cat("Estructura de sonido_edificios:\n")
## Estructura de sonido_edificios:
str(sonido_edificios)
## tibble [670 × 13] (S3: tbl_df/tbl/data.frame)
##  $ ObjectID    : num [1:670] 51 52 53 54 55 56 57 58 59 60 ...
##  $ Session_Name: chr [1:670] "Bioestadística" "Bioestadística" "Bioestadística" "Bioestadística" ...
##  $ Integrante  : chr [1:670] "Juan Camilo Patiño" "Juan Camilo Patiño" "Juan Camilo Patiño" "Juan Camilo Patiño" ...
##  $ Timestamp   : chr [1:670] "2025-08-15T10:21:24.000" "2025-08-15T10:21:25.000" "2025-08-15T10:21:26.000" "2025-08-15T10:21:27.000" ...
##  $ Latitude    : chr [1:670] "3345645516" "3345659898" "3345669182" "3345681127" ...
##  $ Longitude   : chr [1:670] "-76533385878" "-76533384085" "-76533391923" "-76533391617" ...
##  $ Valor       : num [1:670] 55295986 57910328 6110987 61687874 57740334 ...
##  $ Latitude_ok : num [1:670] 3.35 3.35 3.35 3.35 3.35 ...
##  $ Longitude_ok: num [1:670] -76.5 -76.5 -76.5 -76.5 -76.5 ...
##  $ Valor_ok    : num [1:670] 55.3 57.9 61.1 61.7 57.7 ...
##  $ edificio    : chr [1:670] "cedro_rosado" "cedro_rosado" "cedro_rosado" "cedro_rosado" ...
##  $ lat         : num [1:670] 3.35 3.35 3.35 3.35 3.35 ...
##  $ long        : num [1:670] -76.5 -76.5 -76.5 -76.5 -76.5 ...
# Crear data.frame para análisis
datos_ok <- data.frame(
  sonido = sonido_edificios$Valor_ok,
  edificio = sonido_edificios$edificio
)

cat("Resumen de datos para análisis:\n")
## Resumen de datos para análisis:
str(datos_ok)
## 'data.frame':    670 obs. of  2 variables:
##  $ sonido  : num  55.3 57.9 61.1 61.7 57.7 ...
##  $ edificio: chr  "cedro_rosado" "cedro_rosado" "cedro_rosado" "cedro_rosado" ...
# Análisis descriptivo
cat("=== ESTADÍSTICAS DESCRIPTIVAS ===\n")
## === ESTADÍSTICAS DESCRIPTIVAS ===
table1(~ sonido | edificio, 
       data = datos_ok,
       caption = "Niveles de sonido (dB) por edificio")
Niveles de sonido (dB) por edificio
acacias
(N=123)
almendros
(N=30)
biblioteca
(N=60)
cedro_rosado
(N=77)
central
(N=58)
guayacanes
(N=66)
lago
(N=86)
palmas
(N=112)
saman
(N=58)
Overall
(N=670)
sonido
Mean (SD) 65.2 (4.81) 72.4 (5.80) 69.1 (5.80) 63.2 (4.26) 68.3 (4.67) 65.3 (7.31) 67.5 (5.50) 62.4 (4.77) 72.6 (4.15) 66.4 (6.09)
Median [Min, Max] 66.0 [54.7, 77.0] 74.0 [57.4, 80.0] 68.0 [57.6, 80.0] 64.0 [55.2, 73.0] 67.3 [59.2, 78.0] 63.1 [55.9, 81.0] 67.3 [56.0, 79.0] 64.0 [52.1, 73.0] 73.0 [62.8, 79.0] 66.2 [52.1, 81.0]
# Visualización
ggplot(datos_ok, aes(x = edificio, y = sonido, fill = edificio)) +
  geom_boxplot() +  # Solo caja, sin puntos
  theme_minimal() +
  scale_fill_brewer(palette = "Set3") +
  labs(x = "Edificio", y = "Nivel de sonido (dB)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position = "none")

Interpretación

Tanto la tabla descriptiva como el diagrama de cajas y bigotes evidencia que los edificios que aparentemente presentaron un mayor ruido, son los edificios de “Samán” y “Almendros”. En contraste, los edficios “Palmas” y “Cedro Rosado” son los que menor ruido hubo en el momento de la recolección de datos.

# Modelo lineal
mod <- lm(sonido ~ edificio, data = datos_ok)
cat("=== MODELO LINEAL ===\n")
## === MODELO LINEAL ===
summary(mod)
## 
## Call:
## lm(formula = sonido ~ edificio, data = datos_ok)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -15.0095  -4.4122   0.6662   3.8265  15.6629 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           65.1643     0.4701 138.625  < 2e-16 ***
## edificioalmendros      7.1971     1.0616   6.780 2.67e-11 ***
## edificiobiblioteca     3.9278     0.8210   4.784 2.12e-06 ***
## edificiocedro_rosado  -1.9908     0.7576  -2.628 0.008794 ** 
## edificiocentral        3.1640     0.8304   3.810 0.000152 ***
## edificioguayacanes     0.1728     0.7955   0.217 0.828083    
## edificiolago           2.3383     0.7328   3.191 0.001486 ** 
## edificiopalmas        -2.7250     0.6809  -4.002 6.99e-05 ***
## edificiosaman          7.4266     0.8304   8.943  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.213 on 661 degrees of freedom
## Multiple R-squared:  0.2765, Adjusted R-squared:  0.2677 
## F-statistic: 31.57 on 8 and 661 DF,  p-value: < 2.2e-16
# Prueba de comparaciones múltiples
cat("\n=== PRUEBA LSD ===\n")
## 
## === PRUEBA LSD ===
compara <- LSD.test(mod, "edificio")
print(compara)
## $statistics
##    MSerror  Df     Mean       CV
##   27.17936 661 66.38797 7.852904
## 
## $parameters
##         test p.ajusted   name.t ntr alpha
##   Fisher-LSD      none edificio   9  0.05
## 
## $means
##                sonido      std   r        se      LCL      UCL      Min Max
## acacias      65.16433 4.805193 123 0.4700749 64.24131 66.08735 54.67034  77
## almendros    72.36146 5.804936  30 0.9518292 70.49248 74.23043 57.35198  80
## biblioteca   69.09208 5.801873  60 0.6730449 67.77052 70.41364 57.59580  80
## cedro_rosado 63.17353 4.264882  77 0.5941202 62.00694 64.34012 55.18698  73
## central      68.32836 4.672310  58 0.6845508 66.98420 69.67251 59.22809  78
## guayacanes   65.33714 7.309716  66 0.6417231 64.07708 66.59720 55.93562  81
## lago         67.50259 5.499737  86 0.5621736 66.39873 68.60645 56.04396  79
## palmas       62.43928 4.774661 112 0.4926184 61.47200 63.40657 52.05883  73
## saman        72.59095 4.154944  58 0.6845508 71.24680 73.93511 62.84004  79
##                   Q25      Q50      Q75
## acacias      61.02002 66.00000 69.00000
## almendros    68.50000 74.00000 77.00000
## biblioteca   64.00000 68.00000 74.00000
## cedro_rosado 59.09010 64.00000 66.00000
## central      64.75209 67.32687 72.50000
## guayacanes   59.38501 63.08068 69.92878
## lago         64.00000 67.27006 71.00000
## palmas       57.65175 64.00000 66.00000
## saman        69.96290 73.00000 76.00000
## 
## $comparison
## NULL
## 
## $groups
##                sonido groups
## saman        72.59095      a
## almendros    72.36146      a
## biblioteca   69.09208      b
## central      68.32836      b
## lago         67.50259      b
## guayacanes   65.33714      c
## acacias      65.16433      c
## cedro_rosado 63.17353      d
## palmas       62.43928      d
## 
## attr(,"class")
## [1] "group"
# Gráfico de grupos estadísticos
bar.group(compara$groups, 
          ylim = c(0, 90), 
          las = 2, 
          cex.names = 0.8,
          main = "Comparación de medias de niveles de sonido",
          ylab = "Nivel de sonido (dB)")

Interpretación

El modelo lineal planteado corrobora que efectivamente existen diferencias significativas del nivel de sonido entre los edificios. No obstante, no se vislumbra bien todas las diferencias entre los edificios, ya que solamente toma uno de referencia. Por lo tanto, se aplicó una prueba LSD para ampliar el análisis. Se evidenciaron cuatro grupos distintos: todos los edficios perteneciente a cada grupo muestra un nivel de sonido equivalente.

Sin embargo, es necesario señalar que la variabilidad del sonido solamente abarca un 28%, lo que indica que deben haber otros factores, además de los lugares, que determinan el nivel del sonido.

Conclusión

El análisis estadístico mediante la prueba LSD de Fisher reveló la existencia de diferencias estadísticamente significativas (p < 0.05) en los niveles de sonido entre los distintos edificios del campus universitario. No todos los espacios presentan las mismas condiciones acústicas. Por consiguiente, del campus universitario, en el horario que se recolectaron los datos, se puede determinar que los edificios de “Samán” y “Almendros” son los lugares con mayor ruido, en contraste a los edificios “Palmas” y “Cedro Rosado”.

Dicho esto, futuros estudios deberían abarcar una muestra mayor y considerar otros factores que podrían tener un mayor peso, estadísticamente significativo, en el nivel de ruido de los distintos edificios del campus.