1 Introducción

El monitoreo de temperatura y humedad relativa permite describir las condiciones ambientales registradas en un lugar y momento determinados. En esta práctica se analizaron 16 mediciones obtenidas en cuatro sectores de la Universidad Central del Ecuador: calle Jerónimo Leiton, FEUE, Área Verde y FIGEMPA.

El análisis incluye la revisión de la estructura de los datos, la identificación de valores faltantes, el cálculo de estadísticos descriptivos y la elaboración de gráficos temporales, diagramas de caja e histogramas.

2 Objetivo

Describir la temperatura y la humedad relativa registradas en cuatro sectores de la Universidad Central del Ecuador mediante tablas estadísticas y gráficos exploratorios elaborados en R.

3 Metodología

Se trabajó con el archivo Datos_Temperatura_RStudio.csv, correspondiente al muestreo del 16 de octubre de 2026. El archivo contiene 16 registros, distribuidos en cuatro mediciones por lugar, entre las 10:20 y las 11:00.

Cada fila representa un registro de medición e incluye el punto, lugar, fecha, hora, temperatura, humedad relativa, coordenadas y observación. La temperatura se expresa en grados Celsius y la humedad relativa en porcentaje.

Las mediciones se analizaron conjuntamente para obtener un resumen del muestreo. En los gráficos temporales se distinguieron los lugares, debido a que existen registros de distintos sectores a la misma hora.

Información de campo pendiente de completar: instrumento utilizado, resolución o precisión, procedimiento de medición y condiciones de exposición del sensor.

4 Importación y revisión de los datos

# El CSV debe estar en la misma carpeta que este archivo R Markdown.

nombre_csv <- "C:/Users/JOSELYN/Downloads/Datos_Temperatura_RStudio.csv"

if (!file.exists(nombre_csv)) {
  stop(
    "No se encontró el CSV. Guarda Datos_Temperatura_RStudio.csv ",
    "en la misma carpeta que Informe_Temperatura.Rmd."
  )
}

datos <- read.csv(
  nombre_csv,
  header = TRUE,
  sep = ",",
  dec = ".",
  fileEncoding = "UTF-8-BOM",
  check.names = FALSE,
  stringsAsFactors = FALSE
)

columnas_necesarias <- c(
  "Lugar", "Fecha", "Hora",
  "Temperatura (°C)", "Humedad Relativa (%)"
)

if (!all(columnas_necesarias %in% names(datos))) {
  stop("Los encabezados del CSV no coinciden con los esperados.")
}

temperatura <- datos[["Temperatura (°C)"]]
humedad <- datos[["Humedad Relativa (%)"]]
lugar <- factor(datos[["Lugar"]])
fecha <- as.Date(datos[["Fecha"]])
hora <- as.character(datos[["Hora"]])

stopifnot(
  is.numeric(temperatura),
  is.numeric(humedad)
)

# Expresar las horas en minutos desde medianoche.
tiempo <- as.numeric(substr(hora, 1, 2)) * 60 +
          as.numeric(substr(hora, 4, 5)) +
          as.numeric(substr(hora, 7, 8)) / 60

fecha_texto <- paste(
  format(sort(unique(fecha)), "%d/%m/%Y"),
  collapse = ", "
)

marcas_hora <- sort(unique(tiempo))

etiquetas_hora <- sprintf(
  "%02d:%02d",
  as.integer(marcas_hora %/% 60),
  as.integer(marcas_hora %% 60)
)

4.1 Estructura del archivo

El archivo importado contiene 16 observaciones y 9 columnas.

str(datos)
## 'data.frame':    16 obs. of  9 variables:
##  $ Punto               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Lugar               : chr  "Calle Jerónimo Leiton" "Calle Jerónimo Leiton" "Calle Jerónimo Leiton" "Calle Jerónimo Leiton" ...
##  $ Fecha               : chr  "2026-10-16" "2026-10-16" "2026-10-16" "2026-10-16" ...
##  $ Hora                : chr  "10:20:00" "10:25:00" "10:30:00" "10:35:00" ...
##  $ Temperatura (°C)    : num  21.4 23.3 22 22.6 20.1 20.1 19.4 19.7 18 17.6 ...
##  $ Humedad Relativa (%): int  37 30 31 31 32 30 35 33 34 33 ...
##  $ Latitud             : num  -0.198 -0.198 -0.198 -0.198 -0.199 ...
##  $ Longitud            : num  -78.5 -78.5 -78.5 -78.5 -78.5 ...
##  $ Observación         : chr  "Ninguna" "Ninguna" "Ninguna" "Ninguna" ...

4.2 Registros del muestreo

datos |>
  gt() |>
  tab_header(
    title = "Datos de temperatura y humedad relativa",
    subtitle = paste("UCE —", fecha_texto)
  ) |>
  cols_hide(
    columns = c(Latitud, Longitud, Observación)
  ) |>
  tab_options(
    heading.background.color = "#E8F0FA",
    column_labels.background.color = "#D6E4F5",
    row.striping.include_table_body = TRUE,
    table.font.size = px(13)
  )
Datos de temperatura y humedad relativa
UCE — 16/10/2026
Punto Lugar Fecha Hora Temperatura (°C) Humedad Relativa (%)
1 Calle Jerónimo Leiton 2026-10-16 10:20:00 21.4 37
2 Calle Jerónimo Leiton 2026-10-16 10:25:00 23.3 30
3 Calle Jerónimo Leiton 2026-10-16 10:30:00 22.0 31
4 Calle Jerónimo Leiton 2026-10-16 10:35:00 22.6 31
5 FEUE 2026-10-16 10:45:00 20.1 32
6 FEUE 2026-10-16 10:50:00 20.1 30
7 FEUE 2026-10-16 10:55:00 19.4 35
8 FEUE 2026-10-16 11:00:00 19.7 33
9 Área Verde 2026-10-16 10:20:00 18.0 34
10 Área Verde 2026-10-16 10:25:00 17.6 33
11 Área Verde 2026-10-16 10:30:00 17.4 33
12 Área Verde 2026-10-16 10:35:00 17.3 33
13 FIGEMPA 2026-10-16 10:45:00 17.2 31
14 FIGEMPA 2026-10-16 10:50:00 17.2 34
15 FIGEMPA 2026-10-16 10:55:00 17.1 33
16 FIGEMPA 2026-10-16 11:00:00 17.2 34

Las coordenadas se conservaron en el archivo, pero no se utilizaron para este análisis descriptivo.

4.3 Revisión de valores faltantes

tabla_faltantes <- data.frame(
  Variable = names(datos),
  Datos_faltantes = as.integer(colSums(is.na(datos)))
)

tabla_faltantes |>
  gt() |>
  cols_label(
    Datos_faltantes = "Datos faltantes"
  ) |>
  tab_header(
    title = "Revisión de valores faltantes"
  )
Revisión de valores faltantes
Variable Datos faltantes
Punto 0
Lugar 0
Fecha 0
Hora 0
Temperatura (°C) 0
Humedad Relativa (%) 0
Latitud 0
Longitud 0
Observación 0

5 Resultados descriptivos

indicadores <- c(
  "Número de observaciones",
  "Datos válidos",
  "Datos faltantes",
  "Mínimo",
  "Máximo",
  "Media",
  "Mediana",
  "Desviación estándar muestral",
  "Amplitud del rango",
  "Primer cuartil (Q1)",
  "Segundo cuartil (Q2)",
  "Tercer cuartil (Q3)"
)

calcular <- function(x) {
  c(
    length(x),
    sum(!is.na(x)),
    sum(is.na(x)),
    min(x, na.rm = TRUE),
    max(x, na.rm = TRUE),
    mean(x, na.rm = TRUE),
    median(x, na.rm = TRUE),
    sd(x, na.rm = TRUE),
    diff(range(x, na.rm = TRUE)),
    as.numeric(quantile(x, 0.25, na.rm = TRUE)),
    as.numeric(quantile(x, 0.50, na.rm = TRUE)),
    as.numeric(quantile(x, 0.75, na.rm = TRUE))
  )
}

5.1 Temperatura

estadisticos_temperatura <- data.frame(
  Estadistico = indicadores,
  Valor = calcular(temperatura)
)

estadisticos_temperatura |>
  gt() |>
  tab_header(
    title = "Tabla 1. Indicadores de temperatura",
    subtitle = paste("UCE —", fecha_texto)
  ) |>
  cols_label(
    Estadistico = "Estadístico"
  ) |>
  fmt_number(
    columns = Valor,
    rows = 1:3,
    decimals = 0
  ) |>
  fmt_number(
    columns = Valor,
    rows = 4:12,
    decimals = 2
  ) |>
  tab_source_note(
    source_note = paste(
      "Temperatura en °C; conteos sin unidad.",
      "Fuente: registros del muestreo."
    )
  ) |>
  tab_options(
    heading.background.color = "#E8F0FA",
    column_labels.background.color = "#D6E4F5",
    row.striping.include_table_body = TRUE
  )
Tabla 1. Indicadores de temperatura
UCE — 16/10/2026
Estadístico Valor
Número de observaciones 16
Datos válidos 16
Datos faltantes 0
Mínimo 17.10
Máximo 23.30
Media 19.23
Mediana 18.70
Desviación estándar muestral 2.16
Amplitud del rango 6.20
Primer cuartil (Q1) 17.28
Segundo cuartil (Q2) 18.70
Tercer cuartil (Q3) 20.43
Temperatura en °C; conteos sin unidad. Fuente: registros del muestreo.

La temperatura media fue de 19.23 °C, con un mínimo de 17.1 °C y un máximo de 23.3 °C.

La desviación estándar muestral fue de 2.16 °C. Este valor describe la dispersión de las mediciones respecto a la media. El resumen reúne observaciones de diferentes lugares y horarios.

5.2 Humedad relativa

estadisticos_humedad <- data.frame(
  Estadistico = indicadores,
  Valor = calcular(humedad)
)

estadisticos_humedad |>
  gt() |>
  tab_header(
    title = "Tabla 2. Indicadores de humedad relativa",
    subtitle = paste("UCE —", fecha_texto)
  ) |>
  cols_label(
    Estadistico = "Estadístico"
  ) |>
  fmt_number(
    columns = Valor,
    rows = 1:3,
    decimals = 0
  ) |>
  fmt_number(
    columns = Valor,
    rows = 4:12,
    decimals = 2
  ) |>
  tab_source_note(
    source_note = paste(
      "Humedad relativa en %.",
      "Desviación y amplitud en puntos porcentuales;",
      "conteos sin unidad.",
      "Fuente: registros del muestreo."
    )
  ) |>
  tab_options(
    heading.background.color = "#E7F3EC",
    column_labels.background.color = "#CEE8D8",
    row.striping.include_table_body = TRUE
  )
Tabla 2. Indicadores de humedad relativa
UCE — 16/10/2026
Estadístico Valor
Número de observaciones 16
Datos válidos 16
Datos faltantes 0
Mínimo 30.00
Máximo 37.00
Media 32.75
Mediana 33.00
Desviación estándar muestral 1.88
Amplitud del rango 7.00
Primer cuartil (Q1) 31.00
Segundo cuartil (Q2) 33.00
Tercer cuartil (Q3) 34.00
Humedad relativa en %. Desviación y amplitud en puntos porcentuales; conteos sin unidad. Fuente: registros del muestreo.

La humedad relativa media fue de 32.75 %. Las mediciones estuvieron entre 30 % y 37 %, con una desviación estándar muestral de 1.88 puntos porcentuales.

6 Análisis gráfico

6.1 Temperatura por hora y lugar

grafico_temporal(
  temperatura,
  "Temperatura (°C)",
  "Temperatura por hora y lugar en la UCE"
)

En los registros, la calle Jerónimo Leiton presentó temperaturas más altas que el Área Verde durante las horas compartidas de observación. Asimismo, FEUE presentó temperaturas superiores a FIGEMPA en sus horarios compartidos.

Estas diferencias describen el muestreo realizado. Por sí solas no demuestran qué factores ocasionaron las diferencias entre los lugares.

6.2 Diagrama de caja de temperatura

boxplot(
  temperatura,
  horizontal = TRUE,
  col = "plum",
  border = "#6A1B9A",
  xlab = "Temperatura (°C)",
  main = paste(
    "Distribución de temperatura en la UCE",
    fecha_texto,
    sep = "\n"
  )
)

La caja representa la zona central de la distribución y la línea interior indica la mediana. El gráfico resume conjuntamente las mediciones de los cuatro lugares.

6.3 Histograma de temperatura

hist(
  temperatura,
  col = "peachpuff",
  border = "white",
  xlab = "Temperatura (°C)",
  ylab = "Frecuencia absoluta",
  main = paste(
    "Histograma de temperatura en la UCE",
    fecha_texto,
    sep = "\n"
  ),
  las = 1
)

El histograma muestra cuántas mediciones se encuentran en cada intervalo de temperatura. Su forma depende tanto de los datos como de los intervalos utilizados y no constituye una prueba de normalidad.

6.4 Humedad relativa por hora y lugar

grafico_temporal(
  humedad,
  "Humedad relativa (%)",
  "Humedad relativa por hora y lugar en la UCE"
)

La humedad relativa presentó variaciones entre registros, con valores entre 30 % y 37 %. Los colores y símbolos permiten identificar el lugar correspondiente a cada medición.

6.5 Diagrama de caja de humedad relativa

boxplot(
  humedad,
  horizontal = TRUE,
  col = "palegreen",
  border = "#238443",
  xlab = "Humedad relativa (%)",
  main = paste(
    "Distribución de humedad relativa en la UCE",
    fecha_texto,
    sep = "\n"
  )
)

El 50 % central de las mediciones se encuentra entre 31 % y 34 %, según los cuartiles calculados. La mediana es de 33 %.

6.6 Histograma de humedad relativa

hist(
  humedad,
  col = "lightsteelblue",
  border = "white",
  xlab = "Humedad relativa (%)",
  ylab = "Frecuencia absoluta",
  main = paste(
    "Histograma de humedad relativa en la UCE",
    fecha_texto,
    sep = "\n"
  ),
  las = 1
)

El histograma permite reconocer los intervalos de humedad relativa que concentran más registros durante el muestreo.

7 Alcance y limitaciones

Los resultados describen únicamente los lugares, fecha y horarios incluidos en el archivo. Las 16 observaciones no representan por sí solas las condiciones de toda la universidad durante el día o el año.

No se realizaron pruebas de hipótesis ni análisis causales. La información disponible tampoco permite evaluar el cumplimiento de un criterio de confort o atribuir las diferencias exclusivamente a la vegetación, al tránsito o a la infraestructura.

Para interpretar mejor los resultados se requiere documentar el instrumento, su calibración, la altura del sensor y las condiciones de exposición. Las coordenadas normalizadas del archivo deben confirmarse con la fuente original antes de emplearse en cartografía.

8 Conclusión

Estos datos permiten describir la temperatura y la humedad relativa de cuatro sectores de la UCE durante el muestreo.
La temperatura media fue de 19,23 °C y la humedad relativa media fue de 32,75 %.
Se observaron diferencias de temperatura entre lugares durante horarios compartidos.
No permiten concluir que estas diferencias sean permanentes ni establecer sus causas.
Para mejorar el monitoreo sería necesario repetir las mediciones y documentar las condiciones e instrumentos utilizados.