El objetivo de este trabajo es realizar un analisis geografico con datos obtenidos en una encuesta realizada a personas que se movilizan en la ciuad de Santiago de Cali y sus alrededores.
Realizamos un breve analisis exploratorio de la base de datos y de las columnas que son de interes las cuales son: 1. Comuna de origen: Comuna desde la cual se dezplaza los individuos. 2. Comuna destino: Comuna la cual llega el individuos despues del dezplazamiento. 3. Tipo de vehículo: Tipo de vehiculo en el cual realizan el dezplazamiento en la ciudad.
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
Observamos que de las variables de interes, la unica que presenta valores “NA” es el tipo de vehículo, por lo cual revisaremos su distribucion para tomar una decision sobre estos datos nulos.
# 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 = "black",
border = "white")Notamos que esta variable esta sesgada a la izquierda, con alta acumulacion de datos en los valores 1, 2 y 3, se decide imputar por vecinos cercar (KNN = 5) y despues continuando con el EDA, verificamos la imputacion de los datos.
# Se realiza con KNN para colocar los vecinos mas cercanor 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 continuacion se desarrolla cada uno de los objetivos y su respectivo análisis y conclusion.
# 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(
title = "Cantidad de viajes por comuna de origen",
fill = "Cantidad"
)Aqui observamos que la comuna 2 y 17, son donde mas individuos toman algun tipo de trasporte para su dezplazamiento, mientras que la comuna 12 y 17 son las comunas donde menor cantidad de individuos salen, donde hablamos de comunas mas residenciales .
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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(
title = "Cantidad de viajes por comuna de destino",
fill = "Cantidad"
)Y para el destino, podemos confirmar que la comuna 2, es la comuna donde se acumula la llegada de personas en diferentes tipos de transporte, debido a su desarrollo empresarial, cultural y financiero, donde hay centros comerciales, centros empresariales, centros educativos y empresas (13,3% de las empresas estan ubicadas en esta zona) Secretaria de Desarrollo Económico.
# 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de bicicletas por comuna de origen",
fill = "Cantidad")Se puede evidenciar que las comunas 2, 17 y 19 de la ciudad concentran la mayor cantidad de bicicletas como tipo de vehiculo de uso desde el punto de partida. Este comportamiento puede asociarse con la presencia de infraestructura vial para bicicletas (bicicarriles) más desarrollada, así como con una mayor conectividad hacia zonas de empleo y servicios.
# 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de motos por comuna de origen",
fill = "Cantidad")Se puede evidenciar que las comuna 2 de la ciudad concentran la mayor cantidad de motos como tipo de vehiculo de uso desde el punto de partida. Este comportamiento puede asociarse con que representa una zona central de la ciudad y ahi y concentre gran cantidad poblacional.
# 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de carros por comuna de origen",
fill = "Cantidad")Se puede evidenciar que las comuna 19 de la ciudad concentran la mayor cantidad de carro como tipo de vehiculo de uso desde el punto de partida.
# 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de bicicletas por comuna de destino",
fill = "Cantidad")# Creamos 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de motos por comuna de destino",
fill = "Cantidad")# Creamos 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 = "black") +
scale_fill_viridis_c(option = "plasma", na.value = "white") +
theme_minimal() +
labs(title = "Cantidad de carros por comuna de destino",
fill = "Cantidad")Con respecto a la comuna de destino, podemos concluir que tanto para carros, bicicletas y motos, la comuna donde se concentra la llegada de los individuos es la comuna 2. Este comportamiento es debido a que en esa comuna esta un poco mas del 13% de las empresas de la ciudad (Secretaria de Desarrollo Economico, 2022), ademas, es una zona de gran desarrollo cultural, educativo y financiero, donde hay centros empresariales, centros comerciales, instituciones educativas, entre otros recintos.