Analizar los patrones de movilidad en la ciudad de Santiago de Cali y su área metropolitana mediante el uso de herramientas geográficas, a partir de los datos recolectados en una encuesta aplicada a los habitantes que se desplazan dentro y fuera del municipio.
Identificar las comunas con mayor flujo de desplazamiento, tanto en los puntos de origen como en los de destino, a partir de la información obtenida en la encuesta.
Elaborar representaciones cartográficas que evidencien, por comuna de origen, los principales medios de transporte utilizados: bicicleta, automóvil y motocicleta.
Elaborar representaciones cartográficas que muestren, por comuna de destino, los principales medios de transporte utilizados: bicicleta, automóvil y motocicleta.
3.Interpretar los resultados obtenidos con el fin de comprender las dinámicas de movilidad urbana y su posible relación con factores socioeconómicos y geográficos.
Se realizó un análisis exploratorio inicial de la base de datos con el propósito de identificar y comprender las variables más relevantes para el estudio. En este proceso se examinaron las características generales de la información y se verificó su coherencia, completitud y utilidad para el análisis geográfico posterior.
1. Comuna de origen: orresponde a la comuna desde la cual las personas inician su desplazamiento dentro de la ciudad. 2. Comuna destino: Hace referencia a la comuna a la cual los individuos se dirigen al finalizar su recorrido.. 3. Tipo de vehículo: Representa el medio de transporte empleado por los encuestados para movilizarse, incluyendo categorías como bicicleta, automóvil y motocicleta.
El primer paso del analisis es:
# Revisamos si las variables a utilizar tienen valores nulos
sum(is.na(encuesta$`comuna origen`)) # Comuna origen## [1] 0
## [1] 0
## [1] 115
Se identificó que, dentro de las variables de interés, únicamente la variable “Tipo de vehículo” presenta valores faltantes (NA). Por este motivo, se procederá a analizar la distribución de dicha variable con el fin de determinar la proporción y el posible impacto de los datos nulos en el análisis. A partir de esta revisión, se definirá la estrategia más adecuada para su tratamiento, ya sea mediante imputación, exclusión o ajuste según la naturaleza de los datos.
# Histograma, excluyendo la variable 77 = Otro
hist(encuesta$`TIPO DE VEHÍCULO`[encuesta$`TIPO DE VEHÍCULO` !=77],
main = "Histograma tipo de vehiculos",
xlab = "Tipo de vehiculos",
col = "red",
border = "blue")Se observó que la variable “Tipo de vehículo” presenta una distribución sesgada hacia la izquierda, con una alta concentración de registros en los valores 1, 2 y 3, correspondientes a los principales medios de transporte. Con el fin de manejar los valores faltantes identificados, se optó por realizar una imputación mediante el método de vecinos más cercanos (K-Nearest Neighbors, KNN = 5).
Posteriormente, se continuó con el análisis exploratorio de datos (EDA) para verificar la correcta imputación y evaluar el impacto de esta técnica sobre la consistencia general del conjunto de datos.
# Se realizo con KNN para colocar los vecinos mas cercanos para imputar los datos faltantes
encuesta_impu <- kNN(encuesta,
variable = "TIPO DE VEHÍCULO",
k = 5)
# Se verifica
sum(is.na(encuesta_impu$`TIPO DE VEHÍCULO_imp`))## [1] 0
A continuación, se presentan los resultados correspondientes al desarrollo de cada uno de los objetivos planteados, junto con su respectivo análisis e interpretación. Finalmente, se incluyen las conclusiones derivadas de los hallazgos obtenidos.
# Contar cuántas veces aparece cada comuna como ORIGEN
df_origen <- df_cali %>%
group_by(comuna.origen.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unir con el shapefile
comunas_origen_join <- comunas_sf %>%
left_join(df_origen, by = c("nombre" = "comuna.origen.nombre"))
# Graficar
ggplot(comunas_origen_join) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(
title = "Cantidad de viajes por comuna de origen",
fill = "Cantidad"
)Se observa que las comunas 2 y 17 presentan el mayor número de individuos que utilizan algún medio de transporte para sus desplazamientos, lo que sugiere una alta dinámica de movilidad en estas zonas. En contraste, las comunas 12 y 17 registran una menor cantidad de salidas, lo cual podría estar asociado a su carácter predominantemente residencial y a una menor concentración de actividades económicas o laborales que motiven el desplazamiento diario.
df_destino <- df_cali %>%
group_by(comuna.destino.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unir con el shapefile
comunas_destino_join <- comunas_sf %>%
left_join(df_destino, by = c("nombre" = "comuna.destino.nombre"))
# Graficar
ggplot(comunas_destino_join) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(
title = "Cantidad de viajes por comuna de destino",
fill = "Cantidad"
)
En cuanto a los destinos de desplazamiento, se evidencia que la comuna 2
concentra la mayor llegada de personas utilizando diferentes tipos de
transporte. Este comportamiento puede explicarse por el alto nivel de
desarrollo empresarial, cultural y financiero presente en esta zona,
donde se ubican importantes centros comerciales, empresariales,
educativos y de servicios. De acuerdo con la Secretaría de Desarrollo
Económico de Cali, aproximadamente el 13,3 % de las empresas de la
ciudad se encuentran localizadas en esta comuna, lo que refuerza su
papel como un punto estratégico de atracción laboral y comercial dentro
de Santiago de Cali.
# Creamos una base que solo contenga vehiculos tipo 1 y que se haga un conteo total por comuna
df_vehiculo1 <- df_cali %>%
filter(tipo_vehiculo == "1") %>%
group_by(comuna.origen.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join <- comunas_sf %>%
left_join(df_vehiculo1, by = c("nombre" = "comuna.origen.nombre"))
# Graficamos
ggplot(comunas_join) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de bicicletas por comuna de origen",
fill = "Cantidad")El análisis revela que las comunas 2, 17 y 19 presentan la mayor concentración de uso de la bicicleta como medio de transporte en el punto de origen de los desplazamientos. Este patrón puede explicarse por la existencia de una infraestructura vial más adecuada para la movilidad sostenible, destacándose la presencia de bicicarriles y rutas seguras. Asimismo, estas comunas cuentan con una mayor accesibilidad hacia zonas de empleo, instituciones educativas y centros de servicios, lo que favorece la elección de la bicicleta como una fuente de transporte convencional en la ciudad de Cali.
# Creamos una base que solo contenga vehiculos tipo 2 y que se haga un conteo total por comuna
df_vehiculo2 <- df_cali %>%
filter(tipo_vehiculo == "2") %>%
group_by(comuna.origen.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join2 <- comunas_sf %>%
left_join(df_vehiculo2, by = c("nombre" = "comuna.origen.nombre"))
# Graficamos
ggplot(comunas_join2) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de motos por comuna de origen",
fill = "Cantidad")El análisis muestra que la comuna 2 de Santiago de Cali registra la mayor concentración de desplazamientos en motocicleta como medio de transporte desde el punto de partida. Este patrón puede explicarse por la posición central y estratégica de la comuna dentro de la ciudad, que la convierte en un nodo importante de conexión vial y tránsito urbano. Además, su alta densidad poblacional y proximidad a zonas comerciales y de servicios contribuyen al uso frecuente de la motocicleta como una alternativa de movilidad rápida y flexible.
# Creamos una base que solo contenga vehiculos tipo 3 y que se haga un conteo total por comuna
df_vehiculo3 <- df_cali %>%
filter(tipo_vehiculo == "3") %>%
group_by(comuna.origen.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join3 <- comunas_sf %>%
left_join(df_vehiculo3, by = c("nombre" = "comuna.origen.nombre"))
# Graficamos
ggplot(comunas_join3) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de carros por comuna de origen",
fill = "Cantidad")Se evidencia que la comuna 19 de Santiago de Cali concentra la mayor cantidad de automóviles utilizados como medio de transporte desde el punto de origen. Este comportamiento puede estar asociado con el perfil socioeconómico de la población residente, caracterizado por un mayor acceso a vehículos particulares, así como por la disponibilidad de vías amplias y buena infraestructura vial que favorecen el uso del automóvil como principal medio de desplazamiento.
# Creamos una base que solo contenga vehiculos tipo 1 y que se haga un conteo total por comuna
df_vehiculo11 <- df_cali %>%
filter(tipo_vehiculo == "1") %>%
group_by(comuna.destino.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join11 <- comunas_sf %>%
left_join(df_vehiculo11, by = c("nombre" = "comuna.destino.nombre"))
# Graficamos
ggplot(comunas_join11) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de bicicletas por comuna de destino",
fill = "Cantidad")# Procedemos a crear una base que solo contenga vehiculos tipo 2 y que se haga un conteo total por comuna
df_vehiculo22 <- df_cali %>%
filter(tipo_vehiculo == "2") %>%
group_by(comuna.destino.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join22 <- comunas_sf %>%
left_join(df_vehiculo22, by = c("nombre" = "comuna.destino.nombre"))
# Graficamos
ggplot(comunas_join22) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de motos por comuna de destino",
fill = "Cantidad")# Procedemos a Crear una base que solo contenga vehiculos tipo 3 y que se haga un conteo total por comuna
df_vehiculo33 <- df_cali %>%
filter(tipo_vehiculo == "3") %>%
group_by(comuna.destino.nombre) %>%
summarise(n = n(), .groups = "drop")
# Unimos las comunas (shapfile), con la base de vehiculos tipo 1
comunas_join33 <- comunas_sf %>%
left_join(df_vehiculo33, by = c("nombre" = "comuna.destino.nombre"))
# Graficamos
ggplot(comunas_join33) +
geom_sf(aes(fill = n), color = "red") +
scale_fill_viridis_c(option = "plasma", na.value = "blue") +
theme_minimal() +
labs(title = "Cantidad de carros por comuna de destino",
fill = "Cantidad")En relación con la comuna de destino, se concluye que, tanto para los automóviles, bicicletas y motocicletas, la comuna 2 concentra la mayor llegada de individuos dentro de la ciudad. Este comportamiento se explica por la alta concentración de actividad económica y empresarial en esta zona, donde se localiza más del 13 % de las empresas de Santiago de Cali (Secretaría de Desarrollo Económico de Cali, 2022). Asimismo, la comuna se caracteriza por su dinamismo cultural, educativo y financiero, al albergar centros empresariales, comerciales e instituciones educativas, lo que la consolida como un polo de atracción de movilidad urbana en la ciudad.
Clases magistrales del profesor. (2025). Material académico de apoyo. Universidad Javeriana de Cali.
Departamento Administrativo de Planeación Distrital. (2025). Informes de planeación urbana y movilidad de Santiago de Cali. Alcaldía de Santiago de Cali.
Secretaría de Desarrollo Económico de Cali. (2022). Informe de distribución empresarial por comunas. Alcaldía de Santiago de Cali.
Texto guía de la clase. (2025). Guía académica de análisis geográfico y movilidad urbana. Universidad Javeriana de Cali.
MappingGIS. (2019, julio). Creación de mapas con R y ggplot2. https://mappinggis.com/2019/07/creacion-de-mapas-con-r-y-ggplot2/