## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Descripción de los datos

La Librería dplyr

dplyr es un paquete de R especializado en manipulación y transformación de datos de manera eficiente e intuitiva. Forma parte del ecosistema tidyverse y proporciona herramientas para realizar operaciones complejas sobre marcos de datos (data frames) de forma clara y legible.

Características principales de dplyr:

  • Verbos de transformación: Funciones como select(), filter(), mutate(), arrange(), summarise() y group_by() permiten manipular datos de forma lógica y secuencial.
  • Sintaxis consistente: Utiliza el operador pipe (%>% o |>) para encadenar operaciones de manera fluida.
  • Rendimiento: Está optimizado para trabajar con grandes volúmenes de datos, incluso más eficiente que operaciones base de R.
  • Compatibilidad: Funciona con múltiples fuentes de datos (data frames, tibbles, bases de datos remotas).
  • Legibilidad: El código es fácil de leer y entender, similar al lenguaje natural.

En este proyecto, utilizamos dplyr para explorar, agrupar y sumarizar los datos del dataset storms, permitiéndonos calcular estadísticas, identificar patrones y preparar datos para visualización.


La Base de Datos: Storms

El dataset storms es una base de datos que contiene información sobre la trayectoria e intensidad de huracanes y tormentas tropicales del Atlántico Norte. Este conjunto de datos es ampliamente utilizado en educación y investigación meteorológica para comprender el comportamiento de sistemas ciclónicos.

Origen y alcance:

  • Fuente: Los datos provienen del National Hurricane Center (NHC) de los Estados Unidos.
  • Período de cobertura: La base de datos abarca observaciones desde 1975 hasta 2015 (40 años de registros).
  • Cobertura geográfica: Enfocada en el Atlántico Norte, incluyendo el Océano Atlántico, el Mar Caribe y el Golfo de México.
  • Resolución temporal: Observaciones registradas aproximadamente cada 6 horas durante la vida de cada sistema tormentoso.

Importancia científica:

El dataset storms es valioso para: - Análisis climatológico: Identificar tendencias en la frecuencia e intensidad de huracanes. - Predicción y modelado: Entrenar modelos que predigan el comportamiento de tormentas futuras. - Evaluación de riesgos: Cuantificar el peligro potencial de sistemas ciclónicos en zonas pobladas. - Educación: Enseñar conceptos de análisis de datos y estadística con datos reales y relevantes.

Características del dataset:

  • Tamaño: Contiene aproximadamente 11,000 observaciones de múltiples tormentas.
  • Variables: 13 variables que capturan posición geográfica, intensidad, clasificación y características físicas de cada evento.
  • Calidad de datos: Algunos campos presentan valores faltantes (NA), especialmente en variables históricas registradas antes de 2004.
  • Escala utilizada: La intensidad se clasifica usando la escala Saffir-Simpson, que va desde depresiones tropicales hasta huracanes de categoría 5.

Tabla resumen de variables:

Variable Descripción
name Nombre de la tormenta.
year Año de la observación.
month Mes de la observación.
day Día de la observación.
hour Hora de la observación (en formato UTC).
lat Latitud del centro de la tormenta.
long Longitud del centro de la tormenta.
status Clasificación de la tormenta (ej. depresión tropical, tormenta tropical, huracán).
category Categoría de la tormenta según la escala Saffir-Simpson (estimada a partir del viento).
wind Velocidad máxima sostenida del viento (en nudos).
pressure Presión atmosférica mínima en el centro de la tormenta (en milibares).
tropicalstorm_force_diameters Diámetro del área que experimenta vientos con fuerza de tormenta tropical (34 nudos).
hurricane_force_diameter Diámetro del área que experimenta vientos con fuerza de huracán (64 nudos).

Visualizaciones de datos

# cargar de datos y visualización
print(head(storms))
## # A tibble: 6 × 13
##   name   year month   day  hour   lat  long status       category  wind pressure
##   <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <fct>           <dbl> <int>    <int>
## 1 Amy    1975     6    27     0  27.5 -79   tropical de…       NA    25     1013
## 2 Amy    1975     6    27     6  28.5 -79   tropical de…       NA    25     1013
## 3 Amy    1975     6    27    12  29.5 -79   tropical de…       NA    25     1013
## 4 Amy    1975     6    27    18  30.5 -79   tropical de…       NA    25     1013
## 5 Amy    1975     6    28     0  31.5 -78.8 tropical de…       NA    25     1012
## 6 Amy    1975     6    28     6  32.4 -78.7 tropical de…       NA    25     1012
## # ℹ 2 more variables: tropicalstorm_force_diameter <int>,
## #   hurricane_force_diameter <int>
# Configuración visual común para mantener consistencia en todas las figuras.
tema_proyecto <- theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 13),
    plot.subtitle = element_text(size = 10),
    axis.title = element_text(face = "bold")
  )

Gráfico 1: Relación entre Presión Atmosférica y Velocidad del Viento

# Escriba el código R aquí para crear su primer gráfico
grafico_dispersion <- ggplot(storms, aes(x = pressure, y = wind)) +
  geom_point(alpha = 0.35, color = "firebrick") +
  geom_smooth(method = "lm", se = FALSE, color = "black", linewidth = 0.8) +
  labs(
    title = "Relación entre la Presión Atmosférica y la Velocidad del Viento",
    subtitle = "A menor presión atmosférica, mayor velocidad del viento (tendencia negativa)",
    x = "Presión mínima central (mbar)",
    y = "Velocidad máxima sostenida del viento (nudos)"
  ) +
  tema_proyecto

print(grafico_dispersion)
## `geom_smooth()` using formula = 'y ~ x'

Este gráfico de dispersión muestra la relación inversa entre la presión atmosférica central y la velocidad máxima del viento en las tormentas. Cada punto representa una observación individual de una tormenta en el dataset. La línea de tendencia negra indica que a menor presión atmosférica, mayor es la velocidad del viento, lo cual es una característica fundamental de los sistemas tormentosos: la intensidad de la tormenta está directamente correlacionada con la profundidad de la presión central. Este patrón es consistente con la física de los huracanes y tormentas tropicales.

Gráfico 2: Distribución de la Velocidad del Viento

# Escriba el código R aquí para crear su segundo gráfico
grafico_histograma <- ggplot(storms, aes(x = wind)) +
  geom_histogram(binwidth = 10, fill = "steelblue", color = "white", alpha = 0.95) +
  labs(
    title = "Distribución de la Velocidad del Viento en las Tormentas Registradas",
    subtitle = "Concentración principal de observaciones en velocidades bajas y medias",
    x = "Velocidad máxima sostenida (nudos)",
    y = "Frecuencia (Cantidad de registros)"
  ) +
  tema_proyecto

print(grafico_histograma)

Este histograma presenta la frecuencia de observaciones agrupadas por intervalos de velocidad del viento (cada intervalo de 10 nudos). Los datos revelan que la mayoría de las observaciones se concentran en velocidades menores a 60 nudos, con una disminución progresiva conforme aumenta la intensidad del viento. Esto indica que en el dataset hay más registros de sistemas de baja intensidad (depresiones tropicales y tormentas tropicales débiles) que de huracanes potentes. La cola derecha de la distribución muestra que hay relativamente pocas observaciones de vientos extremadamente fuertes (>120 nudos), lo que refleja que los huracanes de categoría 4 y 5 son eventos menos frecuentes.

Gráfico 3: Evolución Temporal del Viento Promedio Anual

# Crear resumen anual del viento promedio
resumen_viento_anual <- storms %>%
  group_by(year) %>%
  summarise(viento_promedio = mean(wind, na.rm = TRUE), registros = n(), .groups = "drop")

# Gráfico de línea con tendencia anual
grafico_linea <- ggplot(resumen_viento_anual, aes(x = year, y = viento_promedio)) +
  geom_line(color = "darkorange3", linewidth = 0.9) +
  geom_point(color = "darkorange4", size = 1.7) +
  labs(
    title = "Evolución Anual del Viento Promedio en Tormentas",
    subtitle = "Serie temporal del promedio de velocidad del viento por año",
    x = "Año",
    y = "Viento promedio (nudos)"
  ) +
  tema_proyecto

print(grafico_linea)

Este gráfico de línea muestra la evolución temporal de la velocidad promedio del viento en las tormentas registradas a lo largo de los años. Cada punto representa el promedio de velocidad de viento para todas las observaciones de tormentas en ese año particular. Este análisis permite identificar tendencias a largo plazo en la intensidad de las tormentas: si hay un incremento o disminución en la intensidad promedio, o si se mantiene relativamente estable. Las fluctuaciones año a año pueden reflejar variaciones naturales en la actividad ciclónica, mientras que las tendencias sostenidas podrían indicar cambios climáticos a largo plazo.

Gráfico 4: Distribución por Categoría Saffir-Simpson

# Diagrama de barras por categoría de tormenta
grafico_barras <- storms %>%
  filter(!is.na(category)) %>%
  ggplot(aes(x = factor(category))) +
  geom_bar(fill = "forestgreen", color = "black", alpha = 0.85) +
  labs(
    title = "Cantidad de Registros por Categoría de Tormenta/Huracán",
    subtitle = "Frecuencia de registros clasificados en la escala Saffir-Simpson",
    x = "Categoría Saffir-Simpson",
    y = "Cantidad de registros"
  ) +
  tema_proyecto

print(grafico_barras)

Este diagrama de barras presenta la composición de eventos por categoría utilizando la escala Saffir-Simpson. La escala clasifica los huracanes según su intensidad: desde depresiones tropicales (sin categoría) hasta huracanes de categoría 5 (más destructivos). El gráfico muestra que la mayoría de los eventos registrados corresponden a categorías bajas (categorías 0, 1, 2), mientras que las categorías más altas (4, 5) tienen una frecuencia considerablemente menor. Esto es consistente con lo observado en el histograma anterior y refleja que eventos extremos son más raros en la naturaleza. Este patrón es importante para la evaluación de riesgos meteorológicos, ya que indica que los huracanes de gran intensidad son eventos excepcionales.