Planteamiento del Problema

A partir de la base de datos “EncuestaOrigenDestino.xlsx” que contiene información sobre los viajes de personas realizados en la ciudad de Cali durante los meses de mayo y junio de 2015, se deben realizar 8 mapas que corresponden a:

  • Origen del viaje.
  • Origen del viaje por tipo de vehículo bicicleta.
  • Origen del viaje por tipo de vehículo moto.
  • Origen del viaje por tipo de vehículo automóvil.
  • Destino del viaje.
  • Destino del viaje por tipo de vehículo bicicleta.
  • Destino del viaje por tipo de vehículo moto.
  • Destino del viaje por tipo de vehículo automóvil.

Desarrollo de la actividad

Análisis Exploratorio y Limpieza de datos

Antes de desarrollar los puntos, realizamos un análisis exploratorio para limpiar la base de datos de datos faltantes y posibles inconsistencias, observemos que tipo de variables disponemos.

# Importar base de datos solicitada
OrigenDestino_Excel <- "C:/Users/Christian/Desktop/Carpeta del Todo/Cursos Maestria en Ciencia de Datos/07 - Análisis de datos geográficos y espaciales/Modulo 1 - Introducción a la Estadistica Espacial/EncuestaOrigenDestino.xlsx"
OrigenDestino= suppressMessages(suppressWarnings(read_excel(OrigenDestino_Excel)))

#Base de datos solicitada para este trabajo
names(OrigenDestino) <- substr(names(OrigenDestino), 1, 20)
str(OrigenDestino, give.attr = FALSE)
## tibble [35,054 × 28] (S3: tbl_df/tbl/data.frame)
##  $ FECHA               : POSIXct[1:35054], format: "2015-06-01" "2015-06-01" ...
##  $ ID ESTACIÓN         : num [1:35054] 1 1 1 1 1 1 1 1 1 1 ...
##  $ ESTACIÓN            : chr [1:35054] "Avenida 6N X Calle 70N" "Avenida 6N X Calle 70N" "Avenida 6N X Calle 70N" "Avenida 6N X Calle 70N" ...
##  $ ACCESO              : chr [1:35054] "NORTE" "NORTE" "NORTE" "NORTE" ...
##  $ MOVIMIENTO          : chr [1:35054] "MOV 1" "MOV 1" "MOV 1" "MOV 1" ...
##  $ Hora de Encuesta    : POSIXct[1:35054], format: "1899-12-31 06:10:00" "1899-12-31 06:11:00" ...
##  $ MUNICIPIO...7       : chr [1:35054] "CALI" "CALIMA" "YUMBO" "YUMBO" ...
##  $ DEPARTAMENTO / LOCAL: chr [1:35054] "B CHIPICHAPE" "DARIEN" "VALLE DEL CAUCA" "VALLE DEL CAUCA" ...
##  $ Codigo Origen_SDG   : chr [1:35054] "218" "4102" "3102" "3102" ...
##  $ ¿QUE ESTABA HACIENDO: num [1:35054] 5 6 6 6 8 6 6 6 6 6 ...
##  $ MUNICIPIO...11      : chr [1:35054] "CALI" "CALI" "CALI" "CALI" ...
##  $ DEPARTAMENTO / LOCAL: chr [1:35054] "B PANCE" "TEQUENDAMA" "B EL PEÑON" "B OBRERO" ...
##  $ Codigo Destino_SDG  : chr [1:35054] "2216" "1904" "302" "910" ...
##  $ ¿QUE VA HACER A ESE : num [1:35054] 1 4 1 1 1 1 2 1 1 2 ...
##  $ ESTRATO EN SU VIVIEN: num [1:35054] 3 2 3 2 3 2 3 3 3 3 ...
##  $ ¿DISPONIA DE UN VEHÍ: num [1:35054] 0 NA NA NA NA NA NA NA NA NA ...
##  $ OTRO ¿CUÁL?...17    : logi [1:35054] NA NA NA NA NA NA ...
##  $ ANTES               : num [1:35054] NA NA NA NA NA NA NA NA NA NA ...
##  $ DESPUES             : logi [1:35054] NA NA NA NA NA NA ...
##  $ EDAD                : num [1:35054] 35 40 33 28 25 31 50 37 36 35 ...
##  $ SEXO                : num [1:35054] 2 2 2 2 2 2 2 2 2 2 ...
##  $ PERSONAS EN EL VEHÍC: num [1:35054] 1 4 1 1 2 3 2 1 1 2 ...
##  $ TIPO DE VEHÍCULO    : num [1:35054] 2 3 2 2 2 3 3 2 2 3 ...
##  $ OTRO ¿CUÁL?...24    : logi [1:35054] NA NA NA NA NA NA ...
##  $ TIPO DE VIAJERO     : chr [1:35054] "1" "1" "1" "1" ...
##  $ comuna origen       : chr [1:35054] "02" "Fuera de Cali" "Fuera de Cali" "Fuera de Cali" ...
##  $ comuna destino      : chr [1:35054] "22" "19" "03" "09" ...
##  $ Intracomuna         : chr [1:35054] "0" "0" "0" "0" ...

Iniciamos con una revisión de los datos faltantes. Dado que para esta actividad solo nos interesa los datos de comuna de origen y destino, y el tipo de vehículo, solo se realizará el análisis para estas variables.

#Calculando datos faltantes
Datos_faltantes <- data.frame(colnames(OrigenDestino), sapply(OrigenDestino, function(x) sum(is.na(x))))
Datos_faltantes <- Datos_faltantes[c(23, 26:27), ]

#Limpiando Dataframe
rownames(Datos_faltantes) <- NULL
colnames(Datos_faltantes) <- c("Variable", "Datos Faltantes")

#Presentando información en formato tabla
kable_classic(kbl(Datos_faltantes, caption = "<center><b>Tabla 1. Datos Faltantes por Variable</b></center>"), full_width = F)
Tabla 1. Datos Faltantes por Variable
Variable Datos Faltantes
TIPO DE VEHÍCULO 115
comuna origen 0
comuna destino 0

Vemos que las variables “comuna origen” y “comuna destino” no presentan datos faltantes, si los tiene “TIPO DE VEHÍCULO”, y puede haber perdida de información allí, pero dado que solo se trabajará con los vehículos: bicicleta, moto y automóvil y que la cantidad de datos faltantes es 115/35.054 y esto a su vez es solo el 0,33% de los datos, no se realizará ninguna transformación de datos aquí.

A continuación revisaremos las consistencias de las categorías de las tres variables, empezando por “comuna origen”.

#Ver frecuencia de categorías en la variable "Comuna Origen"
kbl(addmargins(table(OrigenDestino$"comuna origen", useNA = "ifany")), caption = "<center><b>Tabla 2. Frecuencia de la variable 'Comuna Origen'</b></center>", col.names=c("Rotación","Frecuencia"))%>%
  kable_classic(full_width = F)
Tabla 2. Frecuencia de la variable ‘Comuna Origen’
Rotación Frecuencia
0 672
01 794
02 2968
03 2121
04 1493
05 664
06 998
07 734
08 1124
09 952
10 1401
11 925
12 348
13 1238
14 685
15 1171
16 993
17 2377
18 1536
19 2850
20 733
21 818
22 1153
Fuera de Cali 6306
Sum 35054

Vemos que existe una categoría “0” en las comunas origen que no debería existir, la elección que se tomará acá es imputar por la moda, que como se puede apreciar en la tabla es la categoría “Fuera de Cali”, lo cual resulta muy conveniente, ya que al final estos datos no terminarán siendo graficados en el mapa. Los datos en la categoría “0” eran 672/35.054 lo que corresponden al 1,92% de los datos.

#Crear un dataframe nuevo para evitar destruir datos originales
OrigenDestino_Limpio <- OrigenDestino

#Imputar datos de la categoría "0" por "Fuera de Cali"
OrigenDestino_Limpio$"comuna origen"[OrigenDestino_Limpio$"comuna origen" == "0"] <- "Fuera de Cali"

#Ver frecuencia de categorías en la variable "Comuna Origen" tras correción
kbl(addmargins(table(OrigenDestino_Limpio$"comuna origen", useNA = "ifany")), caption = "<center><b>Tabla 3. Frecuencia de la variable 'Comuna Origen' tras Correción</b></center>", col.names=c("Rotación","Frecuencia"))%>%
  kable_classic(full_width = F)
Tabla 3. Frecuencia de la variable ‘Comuna Origen’ tras Correción
Rotación Frecuencia
01 794
02 2968
03 2121
04 1493
05 664
06 998
07 734
08 1124
09 952
10 1401
11 925
12 348
13 1238
14 685
15 1171
16 993
17 2377
18 1536
19 2850
20 733
21 818
22 1153
Fuera de Cali 6978
Sum 35054

Tras la corrección comprobamos a través de la tabla que la categoría “0” ha desaparecido, continuamos la exploración con la variable “comuna destino”.

#Ver frecuencia de categorías en la variable "Comuna Destino"
kbl(addmargins(table(OrigenDestino_Limpio$"comuna destino", useNA = "ifany")), caption = "<center><b>Tabla 4. Frecuencia de la variable 'Comuna Destino'</b></center>", col.names=c("Rotación","Frecuencia"))%>%
  kable_classic(full_width = F)
Tabla 4. Frecuencia de la variable ‘Comuna Destino’
Rotación Frecuencia
0 788
01 230
02 4810
03 3859
04 1856
05 522
06 716
07 748
08 1025
09 1279
10 927
11 564
12 246
13 673
14 379
15 579
16 743
17 2164
18 662
19 3158
20 351
21 515
22 1860
Fuera de Cali 6400
Sum 35054

Vemos que “comuna destino” tiene el mismo problema que “comuna origen” con la existencia de una categoría “0”, la moda en esta categoría también es “Fuera de Cali” por lo que procedemos de la misma forma. Los datos en la categoría “0” eran 788/35.054 lo que corresponden al 2,25% de los datos.

#Imputar datos de la categoría "0" por "Fuera de Cali"
OrigenDestino_Limpio$"comuna destino"[OrigenDestino_Limpio$"comuna destino" == "0"] <- "Fuera de Cali"

#Ver frecuencia de categorías en la variable "Comuna Destino" tras correción
kbl(addmargins(table(OrigenDestino_Limpio$"comuna destino", useNA = "ifany")), caption = "<center><b>Tabla 5. Frecuencia de la variable 'Comuna Destino' tras correción</b></center>", col.names=c("Rotación","Frecuencia"))%>%
  kable_classic(full_width = F)
Tabla 5. Frecuencia de la variable ‘Comuna Destino’ tras correción
Rotación Frecuencia
01 230
02 4810
03 3859
04 1856
05 522
06 716
07 748
08 1025
09 1279
10 927
11 564
12 246
13 673
14 379
15 579
16 743
17 2164
18 662
19 3158
20 351
21 515
22 1860
Fuera de Cali 7188
Sum 35054

Nuevamente comprobamos a través de la tabla que la categoría “0” desapareció de la variable “comuna destino”. Finalmente revisamos las categorías de la variable “TIPO DE VEHÍCULO”, pero antes debemos tener en cuenta que esta categoría está codificada y la codificación es la siguiente.

#Crear dataframe de los códigos de vehículos
ID_Vehiculos <- data.frame(ID=c("1","2","3","4","5","6","7","8","9","77"),Vehículo=c("Bicicleta","Moto","Automóvil","Campero","Taxi","Intermunicipal-Bus","Intermunicipal-Buseta","Intermunicipal-Van","Taxi Blanco","Otro"))

#Crear tabla para visualizar los códigos de los vehículos
kbl(ID_Vehiculos, caption = "<center><b>Tabla 6. Codificación de la variable 'Tipo de Vehículo'</b></center>", col.names=c("ID","Tipo de Vehículo"))%>%
  kable_classic(full_width = F)
Tabla 6. Codificación de la variable ‘Tipo de Vehículo’
ID Tipo de Vehículo
1 Bicicleta
2 Moto
3 Automóvil
4 Campero
5 Taxi
6 Intermunicipal-Bus
7 Intermunicipal-Buseta
8 Intermunicipal-Van
9 Taxi Blanco
77 Otro

Con ello ahora si procedemos a ver cómo están las categorías en esta variable.

#Ver frecuencia de categorías en la variable "Tipo de Vehículo"
kbl(addmargins(table(OrigenDestino_Limpio$"TIPO DE VEHÍCULO", useNA = "ifany")), caption = "<center><b>Tabla 7. Frecuencia de la variable 'Tipo de Vehículo'</b></center>", col.names=c("Rotación","Frecuencia"))%>%
  kable_classic(full_width = F)
Tabla 7. Frecuencia de la variable ‘Tipo de Vehículo’
Rotación Frecuencia
1 1731
2 16077
3 14100
4 459
5 1999
6 211
7 167
8 88
9 30
77 77
NA 115
Sum 35054

Podemos ver que, exceptuando por los datos faltantes, que ya habían sido identificados en la tabla 1, las categorías están correctamente demarcadas. Con respecto a los datos faltantes podrían plantearse dos alternativas, agregarlos a la clase “Otro” que es la clase “cajón” donde van a parar los datos no comunes, o imputar por la moda, en cuyo caso harían parte de la clase “Moto”, sin embargo como para esta actividad solo se graficarán adicionalmente las clases “Bicicleta”, “Moto” y “Automóvil”, no luce demasiado necesario hacer una transformación de los datos faltantes, ya que no entran en conflicto con la intención de la actividad a realizar.

Preparación de los datos

Importamos el archivo de mapa de comunas y verificamos que este correcto.

#Importar archivo Shapefile
comunas_shapefile <- "C:/Users/Christian/Desktop/Carpeta del Todo/Cursos Maestria en Ciencia de Datos/07 - Análisis de datos geográficos y espaciales/Modulo 1 - Introducción a la Estadistica Espacial/cali/Comunas.shp"
comunas <- st_read(comunas_shapefile)
## Reading layer `Comunas' from data source 
##   `C:\Users\Christian\Desktop\Carpeta del Todo\Cursos Maestria en Ciencia de Datos\07 - Análisis de datos geográficos y espaciales\Modulo 1 - Introducción a la Estadistica Espacial\cali\Comunas.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: 1053868 ymin: 860190.2 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA_Colombia_Cali
#Mostrar el gráfico correspondiente a las comunas
plot(comunas$geometry)

A este shapefile que resulto de la exploración de los datos (comunas_limpio), lo ordenamos por el número de la columna para que podamos editarlo con facilidad posteriormente, y ya con ello podemos agregarle una columna por cada dato que vamos a gráficar, o crear un shapefile a partir del comuna.shp base para adicionar la columna a gráficar, pero en este momento ya podemos empezar con la resolución de los puntos solicitados.

#Ordenar el objeto SpatialPointsDataFrame por comuna
comunas_orden <- comunas[order(comunas$comuna), ]

1. Gráfico de Viaje por Comuna de Origen

A partir del shapefile que resulto de la exploración de los datos (comunas_orden), creamos uno nuevo (comunas_orden_origen) para graficar el origen de los viajes, esto lo hacemos añadiendo una columna que contenga la información que vimos en la exploración de los datos de los viajes por comuna de origen, y con ello graficamos este punto.

#Crear vector de datos de origen en general
datos_ComunaOrigen <- data.frame(table(OrigenDestino_Limpio$"comuna origen", useNA = "ifany"))[c(-23),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_origen <- comunas_orden
comunas_orden_origen$Comuna_Origen <- datos_ComunaOrigen

#Graficar datos por comuna de origen
plot(comunas_orden_origen[,6], main="Gráfico 1. Mapa de viajes por Comuna de Origen",
     breaks=seq(0,3000,500))

En el mapa podemos ver que las comunas 2 y 19 son las que más registran viajes como punto de origen, las comunas 3, 17 y 18 también registran un alto nivel de viajes como punto de origen. Son puntos importantes a considerar en la movilidad de la ciudad.

2. Gráfico de Viaje en Bicicleta por Comuna de Origen

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo bicicleta para crear el nuevo objeto (comunas_orden_origen_bici), y graficamos los datos.

#Crear vector de datos de origen en bicicleta
datos_ComunaOrigen_Bici <- data.frame(table(OrigenDestino_Limpio$"comuna origen"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==1], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_origen_bici <- comunas_orden
comunas_orden_origen_bici$Comuna_Origen_Bici <- datos_ComunaOrigen_Bici

#Graficar datos por comuna de origen
plot(comunas_orden_origen_bici[,6], main="Gráfico 2. Mapa de viajes en Bicicleta por Comuna de Origen",
     breaks=seq(0,175,25))

Con el filtro de comunas de origen en viajes en bicicleta, la comuna 2 se muestra como la de mayor cantidad de viajes como punto de origen, las comunas 19, 17 y 18 también se registran como puntos de alta actividad. Estos puntos son importantes a considerar en la infraestructura de ciclorutas de la ciudad.

3. Gráfico de Viaje en Moto por Comuna de Origen

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo moto para crear el nuevo objeto (comunas_orden_origen_moto), y graficamos los datos.

#Crear vector de datos de origen en moto
datos_ComunaOrigen_Moto <- data.frame(table(OrigenDestino_Limpio$"comuna origen"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==2], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_origen_moto <- comunas_orden
comunas_orden_origen_moto$Comuna_Origen_Moto <- datos_ComunaOrigen_Moto

#Graficar datos por comuna de origen
plot(comunas_orden_origen_moto[,6], main="Gráfico 3. Mapa de viajes en Moto por Comuna de Origen",
     breaks=seq(0,1500,250))

Con el filtro de comunas de origen en viajes en moto, las comunas 2 y 19 se muestran como las de mayor cantidad de viajes como puntos de origen, las comunas 3 y 17 también se registran como puntos de alta actividad. Estos son puntos importantes a considerar en las políticas de movilidad de motos.

4. Gráfico de Viaje en Automóvil por Comuna de Origen

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo automóvil para crear el nuevo objeto (comunas_orden_origen_auto), y graficamos los datos.

#Crear vector de datos de origen en automóvil
datos_ComunaOrigen_Auto <- data.frame(table(OrigenDestino_Limpio$"comuna origen"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==3], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_origen_auto <- comunas_orden
comunas_orden_origen_auto$Comuna_Origen_Auto <- datos_ComunaOrigen_Auto

#Graficar datos por comuna de origen
plot(comunas_orden_origen_auto[,6], main="Gráfico 4. Mapa de viajes en Automóvil por Comuna de Origen",
     breaks=seq(0,1200,200))

Con el filtro de comunas de origen en viajes en auto, las comunas 2 y 19 se muestran como las de mayor cantidad de viajes como puntos de origen, las comunas 3 y 17 también se registran como puntos de alta actividad. Estos son puntos importantes a considerar en las políticas de movilidad y vigilancia de las calles y autopistas para el transporte automotor.

5. Gráfico de Viaje por Comuna de Destino

Procedemos de la misma forma que el punto anterior, pero los datos usados corresponden ahora a la comuna de destino, no realizamos ningún filtro adicional y graficamos los datos.

#Crear vector de datos de origen en general
datos_ComunaDestino <- data.frame(table(OrigenDestino_Limpio$"comuna destino", useNA = "ifany"))[c(-23),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_destino <- comunas_orden
comunas_orden_destino$Comuna_Destino <- datos_ComunaDestino

#Graficar datos por comuna de origen
plot(comunas_orden_destino[,6], main="Gráfico 5. Mapa de viajes por Comuna de Destino",
     breaks=seq(0,5000,500))

En el mapa podemos ver que la comuna 2 es la que más registra viajes como punto de destino, las comunas 3 y 19 también registran un alto nivel de viajes como punto de destino. Esas tres comunes también fueron notadas como puntos de origen importantes de viajes, son puntos de alta importancia a considerar en la movilidad de la ciudad.

6. Gráfico de Viaje en Bicicleta por Comuna de Destino

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo bicicleta para crear el nuevo objeto (comunas_orden_destino_bici), y graficamos los datos.

#Crear vector de datos de destino en bicicleta
datos_ComunaDestino_Bici <- data.frame(table(OrigenDestino_Limpio$"comuna destino"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==1], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_destino_bici <- comunas_orden
comunas_orden_destino_bici$Comuna_Destino_Bici <- datos_ComunaDestino_Bici

#Graficar datos por comuna de origen
plot(comunas_orden_destino_bici[,6], main="Gráfico 6. Mapa de viajes en Bicicleta por Comuna de Destino",
     breaks=seq(0,225,25))

Con el filtro de comunas de destino en viajes en bicicleta, la comuna 2 se muestra como la de mayor cantidad de viajes como punto de destino, las comunas 3 y 19 también se registran como puntos de alta actividad. Las comunas 2 y 19 también fueron notadas como puntos de origen importantes de viajes en bicicletas, son puntos de alta importancia a considerar en la infraestructura de ciclorutas de la ciudad.

7. Gráfico de Viaje en Moto por Comuna de Destino

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo moto para crear el nuevo objeto (comunas_orden_destino_moto), y graficamos los datos.

#Crear vector de datos de destino en moto
datos_ComunaDestino_Moto <- data.frame(table(OrigenDestino_Limpio$"comuna destino"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==2], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_destino_moto <- comunas_orden
comunas_orden_destino_moto$Comuna_Destino_Moto <- datos_ComunaDestino_Moto

#Graficar datos por comuna de origen
plot(comunas_orden_destino_moto[,6], main="Gráfico 7. Mapa de viajes en Moto por Comuna de Destino",
     breaks=seq(0,2250,250))

Con el filtro de comunas de destino en viajes en moto, la comuna 2 se muestra como las de mayor cantidad de viajes como punto de destino, las comunas 3 y 19 también se registran como puntos de alta actividad. Estas tres comunas ya habían sido identificadas como puntos de origen importantes de viajes en moto. Estos son puntos importantes a considerar en las políticas de movilidad de motos.

8. Gráfico de Viaje en Automóvil por Comuna de Destino

Procedemos de la misma forma que el punto anterior, pero ahora filtramos los datos para el tipo de vehículo automóvil para crear el nuevo objeto (comunas_orden_destino_auto), y graficamos los datos.

#Crear vector de datos de origen en automóvil
datos_ComunaDestino_Auto <- data.frame(table(OrigenDestino_Limpio$"comuna destino"[OrigenDestino_Limpio$"TIPO DE VEHÍCULO"==3], useNA = "ifany"))[c(-23,-24),c(2)]

#Agregar vector al SpatialPointsDataFrame
comunas_orden_destino_auto <- comunas_orden
comunas_orden_destino_auto$Comuna_Destino_Auto <- datos_ComunaDestino_Auto

#Graficar datos por comuna de origen
plot(comunas_orden_destino_auto[,6], main="Gráfico 8. Mapa de viajes en Automóvil por Comuna de Destino",
     breaks=seq(0,2250,250))

Con el filtro de comunas de destino en viajes en auto, la comuna 2 se muestra como las de mayor cantidad de viajes como puntos de destino, las comunas 3 y 19 también se registran como puntos de alta actividad. Estas tres comunas ya habían sido identificadas como puntos de destino importantes de viajes en auto. Estos son puntos importantes a considerar en las políticas de movilidad y vigilancia de las calles y autopistas para el transporte automotor.

Conclusiones

A partir de los gráficos realizados se puede encontrar las siguientes observaciones:

  • Las comunas 2, 3 y 19 son las de más alta movilidad, independiente del tipo de vehículo, esto coincide con los puntos donde están las autopistas más grandes de la ciudad.
  • Para el modo de transporte en bicicleta, adicionalmente a las comunas de mayor cantidad de viajes, se deben considerar las comunas 17 y 18, al ser puntos de origen de viajes en bicicleta que son importantes y en las que se pueden considerar inversiones en ciclorutas.
  • Para los modos de transporte en moto y auto, la comuna 17 es identificada también como un punto importante de origen, por lo que debe ser tenida en cuenta para las políticas de movilidad de la ciudad como una zona de alta demanda de movilidad.