Kaggle es una plataforma ampliamente utilizada en la comunidad científica y de análisis de datos, que proporciona acceso a diversos conjuntos de datos para la investigación y el desarrollo de modelos analíticos. En este informe, utilizamos un conjunto de datos extraído de Kaggle, el cual contiene la ubicación geográfica de hospitales en los 50 estados de EE.UU., Washington D.C., y territorios estadounidenses como Puerto Rico, Guam, Islas Marianas del Norte, Islas Vírgenes, Palau y Samoa Americana.
El conjunto de datos ha sido recopilado a partir de fuentes estatales y federales, limpiado, geocodificado y convertido en una base de datos espacial. Incluye hospitales categorizados en distintas especialidades como atención general, pediátrica, psiquiátrica, militar, entre otras. Sin embargo, no incluye centros de salud o residencias para ancianos.
Con el objetivo de garantizar la reproducibilidad del código, he optado por hacer públicos estos datos a través de Google Drive, permitiendo el acceso a cualquier persona que disponga del enlace. Esto se debe a que los datos originales, publicados en Kaggle por Carlos Aguayo, no están disponibles en formato URL y Kaggle solo permite su descarga en formato CSV.
Aunque la API de Kaggle es una alternativa, su uso resulta más complejo, ya que requiere que cada usuario configure manualmente una carpeta con un archivo JSON en un directorio específico. Por esta razón, la opción de importar los datos mediante una URL pública es la solución más práctica y accesible para asegurar que cualquier usuario pueda ejecutar el código sin configuraciones adicionales.
Tras observar las variables que componen el dataframe, eliminaremos aquellas que son redundantes. Por tanto, nos quedaremos únicamente con las siguientes: X e Y, que representan la latitud y longitud, NAME, ADDRESS, CITY, STATE, ZIP, COUNTY y COUNTRY.
Escogemos unicamente las variables mencionadas
library(dplyr)hospitals<-hospitals%>%select(X, Y, NAME, ADDRESS, CITY, STATE, ZIP, COUNTY, COUNTRY)hospitals<-hospitals%>%filter(COUNTRY=="USA")head(hospitals, 5)
# A tibble: 5 × 9
X Y NAME ADDRESS CITY STATE ZIP COUNTY COUNTRY
<dbl> <dbl> <chr> <chr> <chr> <chr> <dbl> <chr> <chr>
1 -94.9 29.7 HOUSTON METHODIST SAN JA… 1700 J… BAYT… TX 77520 HARRIS USA
2 -82.9 40.0 WOODS AT PARKSIDE,THE 349 OL… COLU… OH 43230 FRANK… USA
3 -84.2 39.8 DAYTON CHILDREN'S HOSPIT… ONE CH… DAYT… OH 45404 MONTG… USA
4 -80.6 41.0 VIBRA HOSPITAL OF MAHONI… 8049 S… BOAR… OH 44512 MAHON… USA
5 -84.2 39.7 HAVEN BEHAVIORAL SENIOR … ONE EL… DAYT… OH 45417 MONTG… USA
A continuación vamos a comprobar si hay NA’s en las columnas X e Y, por si fuera necesario eliminarlos antes de convertir el dataset a un objeto sf con CRS 4326. Dado que no hay Na’s en las columnas mencionadas, podemos transformar los datos directamente sin necesidad de tratarlos nuevamente.
Realizamos una primera proyección cartográfica en la que visualizamos todos los hospitales del dataset que se encuentran dentro del territorio de Estados Unidos.
leaflet(hospitals_sf)%>%addTiles()%>%addCircleMarkers( radius =1.0, fillOpacity =1.0, color ="blue", stroke =FALSE)
Al visualizar los datos en el mapa interactivo, observamos que, además del territorio continental de Estados Unidos, existen hospitales georreferenciados en varias ubicaciones insulares y territorios no contiguos.
En concreto, identificamos hospitales en:
Hawái, con presencia en ciudades como Honolulu, Lahaina, Kihei, Hana, Waimea, Hilo, Pahala, Kailua y Hawaiian Ocean View.
Alaska, incluyendo hospitales en diversas islas aledañas.
Territorios de EE.UU. en el Pacífico, como American Samoa, Guam y Saipan (Garapan).
Puerto Rico y sus islas circundantes.
Palau, específicamente en Ngerulmud.
Tratamiento
Para garantizar que nuestro análisis se centre exclusivamente en los hospitales ubicados dentro del territorio continental de Estados Unidos, aplicaremos un filtrado espacial utilizando la función st_intersects() de la librería sf.
El procedimiento consiste en obtener un polígono geoespacial que represente los límites de los 50 estados de EE.UU., excluyendo Alaska, Hawái y los territorios insulares. Por otro lado, compararemos las coordenadas de los hospitales con dicho polígono para mantener solo aquellos que se encuentren dentro de esta área geográfica.
# Obtenemos los límites de EE.UU. desde rnaturalearthusa<-ne_states(country ="United States of America", returnclass ="sf")%>%filter(!name%in%c("Hawaii", "Alaska", "Puerto Rico"))st_crs(usa)
Para ello, utilizamos st_filter(), ya que esta función filtra directamente los datos espaciales, a diferencia de st_intersection(), que devuelve solo la intersección entre geometrías sin conservar el resto de los atributos originales. (Ambas opciones son válidas)
Tras aplicar el filtro, observamos que se reduce el número de hospitales totales pasando de ser de 7570 a 7386, es decir, una diferencia total de 184 hospitales.
Por otro lado, comprobamos cuales son las zonas en las que hemos excluido los hospitales por no pertenecer al territorio de interés.
El output muestra que los hospitales eliminados pertenecen a los siguientes países o territorios:
USA (Estados Unidos, probablemente hospitales en Alaska o Hawái que quedaron fuera del área continental).
PRI (Puerto Rico).
GUM (Guam).
MNP (Islas Marianas del Norte).
ASM (Samoa Americana).
PLW (Palaos).
VIR (Islas Vírgenes de EE.UU.).
A continuación, proyectamos un mapa en el que visualizamos exclusivamente los hospitales situados dentro de Estados Unidos continental, tras aplicar un filtrado espacial.
leaflet(hospitals_usa)%>%addTiles()%>%addCircleMarkers( radius =2, fillOpacity =1.0, color ="blue", stroke =FALSE)
En este último gráfico, se muestra un mapa interactivo con un mayor nivel de detalle, en el que cada hospital está representado como un punto geoespacial. Al hacer clic sobre cualquier hospital, se desplegará una ventana emergente (popup) que proporciona información relevante, incluyendo:
Nombre del hospital
Estado en el que se encuentra
Ciudad
Dirección completa
El motivo de este mapa es facilitar la exploración visual y la identificación rápida de cada hospital dentro de EE.UU. continental. A diferencia de visualicaciones más generales, este gráfico permite a los usuarios identificar hospitales individuales y conocer su ubicación precisa.
Dado que hay un gran número de hospitales, utilizamos un sistema de agrupaciones por clústeres basado en la distancia geográfica. Es decir, en zonas cona alta densidad de hospitales como lo es la ciudad de Nueva York, los hospitales se agrupan en un solo marcador hasta que el usuario haga zoom para desglosarlos. La distancia de agrupación se define automáticamente en función del nivel de zoom del mapa, asegurando que los marcadores no se sobrepongan y mejorando la visualización.
Como resultado de este informe, hemos obtenido un conjunto de datos refinado que incluye exclusivamente los hospitales ubicados dentro del territorio continental de Estados Unidos, eliminando aquellos situados en territorios de ultramar como Puerto Rico, Guam, Islas Marianas del Norte, Samoa Americana, Palaos e Islas Vírgenes de EE.UU.. Este filtrado permite un análisis más preciso cuando el objetivo es estudiar la distribución hospitalaria dentro de los 50 estados y Washington D.C.
Este nuevo conjunto de datos tiene diversas aplicaciones entre ellas:
Análisis geoespacial para identificar áreas con una alta o baja densidad de hospitales.
Optimizar rutas de emergencia para mejorar los tiempos de respuesta.