Capítulo 6 Datos

La presente investigación se fundamenta en el estudio de dos conjuntos de datos que pone a disposición pública el Ayuntamiento de Madrid:

  • Histórico de datos del tráfico desde 2013, (CIRCULACION 2018a)
  • Ubicación de los puntos de medida del tráfico, (CIRCULACION 2018b)

En los siguientes apartados hacemos una descripción exhaustiva del contenido de ambos conjuntos de datos y de las acciones de preprocesado realizadas para poderlos utilizar.

6.1 Histórico de datos del tráfico desde 2013

Éste primer conjunto de datos, (CIRCULACION 2018a), contiene el histórico de medidas tomadas por los puntos de medida de tráfico de la ciudad de Madrid. Los datos se publican en archivos que contienen los registros de un mes completo y se van incorporando mes a mes.

Los diversos sistemas de control de tráfico de la ciudad de Madrid proporcionan periódicamente y de forma automática datos de todos los detectores de vehículos de los puntos de medida que controlan.

Si el sensor no proporciona información en un periodo, no se contabilizará esa información; no obstante, si el sensor proporciona información pero los parámetros de calidad de la misma no son óptimos la información se integra, pero se reporta como posible error. El error puede deberse a que el sensor detecta parámetros fuera de los rangos establecidos o porque alguno de los sensores que componen el punto de medida no esté operativo (por ejemplo, en un punto de medida de 4 carriles uno de los carriles no está funcionando).

Siguiendo la documentación de (CIRCULACION 2018a), los atributos de los datos históricos del flujo de tráfico tomados por los Puntos de Medida son los que se relacionan en el Cuadro .

Propiedades del conjunto de datos históricos del flujo de tráfico
Nombre Tipo Descripción
id Entero Identificación única del Punto de Medida en los sistemas de control del tráfico del Ayuntamiento de Madrid.
fecha Fecha Fecha y hora oficiales de Madrid con formato yyyy-mm-dd hh:mi:ss
tipo_elem Texto Nombre del Tipo de Punto de Medida: Urbano o M30.
intensidad Entero Intensidad del Punto de Medida en el periodo de 15 minutos (vehículos/hora).
Un valor negativo implica la ausencia de datos.
ocupacion Entero Tiempo de Ocupación del Punto de Medida en el periodo de 15 minutos (%).
Un valor negativo implica la ausencia de datos.
carga Entero Carga de vehículos en el periodo de 15 minutos.
Parámetro que tiene en cuenta intensidad, ocupación y capacidad de la vía y establece el grado de uso de la vía de 0 a 100.
Un valor negativo implica la ausencia de datos.
vmed Entero Velocidad media de los vehículos en el periodo de 15 minutos (Km./h).
Sólo para puntos de medida interurbanos M30.
Un valor negativo implica la ausencia de datos.
error Texto Indicación de si ha habido al menos una muestra errónea o sustituida en el periodo de 15 minutos.
  N: no ha habido errores ni sustituciones
  E: los parámetros de calidad de alguna de las muestras integradas no son óptimos
  S: alguna de las muestras recibidas era totalmente errónea y no se ha integrado
periodo_integracion Entero Número de muestras recibidas y consideradas para el periodo de integración.

Podemos observar una muestra de estos datos en el Cuadro 6.1.

Cuadro 6.1: Muestra de datos históricos de flujo de tráfico (Septiembre 2018)
id fecha tipo_elem intensidad ocupacion carga vmed error periodo_integracion
1001 2018-09-01 00:00:00 M30 1140 3 NaN 62 N 5
1001 2018-09-01 00:15:00 M30 1140 2 NaN 55 N 5
1001 2018-09-01 00:30:00 M30 1488 4 NaN 55 N 5
1001 2018-09-01 00:45:00 M30 1068 3 NaN 55 N 5
1001 2018-09-01 01:00:00 M30 1224 3 NaN 59 N 5
1001 2018-09-01 01:15:00 M30 708 1 NaN 64 N 5

6.1.1 Tratamiento de los archivos de datos históricos del tráfico

Revisando los datos históricos a lo largo del tiempo, observamos que han cambiado tanto las propiedades de este conjunto de datos como el formato de los archivos csv en dónde se publican, lo que ha conllevado un intenso ejercicio de saneado de la información previo a su explotación.

El carácter de separación de campos en el archivo csv no siempre es el mismo. A veces hay que leer los archivos considerando que es una coma ‘,’ y otras un punto y coma ‘;’.

Respecto a la heterogeneidad con la que se presentan los nombres de las propiedades de las medidas registradas, se ha observado que:

  • id e idelem representan la misma propiedad, que unos meses viene informada con un nombre y otros con otro. Adoptamos id como nombre maestro.
  • identif es una propiedad que tenemos que descartar, pues no siempre está presente y no tiene relevancia para el resto de nuestra investigación
  • los valores de la propiedad tipo_elem viene codificados de forma diferente dependiendo del año y del mes. En particular:
    • M30: puede venir codificado como M30, ‘PUNTOS MEDIDA M-30’ o 24. Adoptamos M30 como valor maestro.
    • URB: puede venir informado como URB, ‘PUNTOS MEDIDA URBANOS’ o 495. Adoptamos URB como valor maestro.
  • el resto de propiedades, en lo relativo al nombre no requieren de corrección

Respecto a la heterogeneidad con la que se presentan los tipos de dato de las propiedades de las medidas registradas, se ha comprobado que:

  • la propiedad fecha se guarda como texto, por lo que hay que parsearla apropiadamente a un objeto de tipo timestamp
  • las propiedades numéricas (id, intensidad, ocupacion, carga, vmed, periodo_integracion) unas veces vienen expresadas como números y otras como textos (separados por comillas simples o dobles). En todos los casos se procede a su conversión a tipo numérico.

Se han desarrollado funciones que realizan de manera trasparente todas las correcciones descritas en las líneas anteriores, de manera que se pueda trabajar de forma más cómoda y productiva.

6.1.2 Preparación para la explotación

Los datos se publican por meses en ficheros de unos 100 MB, con todas las medidas tomadas a lo largo del mes por todos los puntos de medida.

Cada uno de estos ficheros, descomprimido, ocupa unos 800 MB. Por lo tanto, cada vez que se quisiera revisar los datos de un dispositivo de medida sería necesario descargar el fichero, descomprimirlo, cargarlo en una estructura de datos y luego operarlo. Y eso para cada mes. Es una situación que hace imposible el trabajo.

Para sobreponernos a este inconveniente se ha procedido del siguiente modo:

  • hemos creado una tabla en una base de datos con columnas year, month, device y data
  • cada una de estas columnas guarda (comprimidos) los datos de las medidas tomadas por el dispositivo device, en el año year y en el mes month correspondientes. Esta información se almacena en la columna data.
  • este primer almacenamiento se ha realizado sin transformación/mejora alguna de los datos de medida en bruto; los datos se guardan tal cual se reciben, pero eso sí, troceados en unidades más pequeñas y mucho más manejables.

En particular, en el Cuadro 6.2, podemos ver por año y mes el número de terminales que han estado registrando medidas:

Cuadro 6.2: Número de puntos de medida por año y mes que han registrado datos
2015 2016 2017 2018
1 3712 3797 3882 3996
2 3735 3798 3774 4001
3 3749 3810 3902 3997
4 3755 3780 3899 4015
5 3755 3766 3906 4023
6 3764 3785 3904 4022
7 3763 3802 3910 4021
8 3748 3798 3885 4014
9 3736 3803 3912 3910
10 3765 3807 3981 3916
11 3777 3844 3993 0
12 3788 3900 3997 0

Igualmente, hemos desarrollado un conjunto de funciones convenientes que nos permite descargar las medidas registradas por un terminal concreto en un año y mes concretos. Algunas de las funciones más importantes que se han desarrollado son:

  • tff.get.raw.metrics <- function(y = c(), m = c(), d = c()) {…}
  • tff.get.parsed.metrics <- function(y = c(), m = c(), d = c()) {…}
  • tff.get.parsed.metrics <- function(y = c(), m = c(), d = c()) {…}
  • tff.get.parsed.location <- function(y, m, with.ym = F) {…}
  • tff.get.all.parsed.locations <- function(with.ym = F) {…}

Un ejemplo de su uso puede verse en el siguiente fragmento de código, que realiza una consulta relativa a las medidas tomadas por el punto de medida 1001 en Septiembre de 2018:

 

6.1.3 Análisis exploratorio de los datos de flujo

En una primera revisión exploratoria de los datos, Septiembre de 2018, vemos que tenemos informados 10.668.743 registros, recogidos desde 3.910 puntos de medida.

Agrupando por tipo de elemento, Cuadro 6.3, podemos ver los conteos por tipo de registro.

Cuadro 6.3: Tabla de frecuencia de tipos de punto de medida (Septiembre 2018)
Freq % Valid % Valid Cum. % Total % Total Cum.
M30 1142944 10.71 10.71 10.71 10.71
URB 9525799 89.29 100.00 89.29 100.00
<NA> 0 NA NA 0.00 100.00
Total 10668743 100.00 100.00 100.00 100.00

Y de particular importancia es observar que no todos los puntos de medida informan la misma cantidad de medidas a lo largo del tiempo.

Distribución de los identificadores de los puntos de medida

Figura 6.1: Distribución de los identificadores de los puntos de medida

Podemos explorar de forma visual la gráfica de densidad de registros informados por los puntos de medida en Septiembre 2018 (Figura 6.1). Vemos que la cantidad de medidas reportadas cada mes varía según el punto, siendo los detalles de esta variación los que se relacionan en el Cuadro .

Resumen de propiedades de las frecuencias con las que informan los puntos de medida (Septiembre 2018)
  Valor
Media 2728.58
Des. típica 421.97
Min 1.00
Q1 2785.00
Mediana 2864.00
Q3 2879.00
Max 2880.00
MAD 23.72
IQR 94.00
CV 0.15
Skewness -4.56
SE.Skewness 0.04
Kurtosis 22.47
N.Valid 3910.00
Pct.Valid 100.00

Esto supone que en nuestro trabajo tenemos series con datos faltantes (fallas). Más adelante veremos la técnica seguida para resolver esta problemática.

Por otro lado, podríamos hacer el mismo estudio considerando únicamente aquellos registros que se han etiquetado sin “error”. Sin embargo, para el mes de Septiembre de 2018, ninguno de los registros viene caracterizado como erróneo.

6.2 Ubicación de los puntos de medida del tráfico

Éste segundo conjunto de datos, (CIRCULACION 2018b), contiene el histórico de localizaciones de los puntos de medida del flujo de tráfico. Los datos se publican en archivos que contienen los registros de un mes completo; sin embargo no todos los meses se publican.

La infraestructura de puntos de medida, disponible en la ciudad de Madrid se corresponde con:

  • 7.360 detectores de vehículos con las siguientes características:
    • 71 incluyen dispositivos de lectura de matrículas
    • 158 disponen de sistemas ópticos de visión artificial con control desde el Centro de Gestión de Movilidad
    • 1.245 son específicos de vías rápidas y acceso a la ciudad
    • y el resto de los 5.886, con sistemas básicos de control de semáforos
  • Más de 4.000 puntos de medida:
    • 253 con sistemas para el control de velocidad, caracterización de los vehículos y doble lazo de lectura
    • 70 de ellos conforman las estaciones de toma de aforos específicas de la ciudad.

Según documenta (CIRCULACION 2018b), los atributos de los datos de ubicación de los puntos de medida son los relacionados en el Cuadro .

Propiedades del conjunto de datos de ubicación de los puntos de medida del flujo de tráfico
Nombre Tipo Descripción
cod_cent texto Código de centralización en los sistemas y que se corresponde con el campo de otros conjuntos de datos como el de intensidad del tráfico en tiempo real.
id entero Identificador único y permanente del punto de medida.
nombre texto Denominación del punto de medida, utilizándose la siguiente nomenclatura:
Para los puntos de medida de tráfico urbano se identifica con la calle y orientación del sentido de la circulación.
Para los puntos de vías rápida y accesos a Madrid se identifica con el punto kilométrico, la calzada y si se trata de la vía central, vía de servicio o un enlace.
tipo_elem texto Descriptor de la tipología del punto de medida según la siguiente codificación:
  URB (tráfico URBANO) para dispositivos de control semafórico.
  M30 (tráfico INTERURBANO) para dispositivos de vías rápidas y accesos a Madrid.
x real Coordenada X_UTM del centroide de la representación del polígono del punto de medida.
y real Coordenada Y_UTM del centroide de la representación del polígono del punto de medida.

6.2.1 Tratamiento de los archivos de datos de localización

Al igual que con los datos de medidas, observamos que a lo largo del tiempo, el conjunto de datos de localización ha cambiado tanto en las propiedades que informa como en el formato de los archivos csv en dónde se publican. Nuevamente esto requiere de un trabajo de saneado previo.

El carácter de separación de campos en el archivo csv no siempre es el mismo. A veces hay que leer los archivos considerando que es una coma ‘,’ y otras un punto y coma ‘;’.

Respecto a la heterogeneidad con la que se presentan los nombres de las propiedades, se ha observado que:

  • los valores de la propiedad tipo_elem viene codificados de forma diferente dependiendo del año y del mes. En particular:
    • M30: puede venir codificado como M30, ‘PUNTOS MEDIDA M-30’ o M-30. Adoptamos M30 como valor maestro.
    • URB: puede venir informado como URBANOS. Adoptamos URB como valor maestro.
  • x, st_x y utm_x representan la misma propiedad, que unos meses viene informada con un nombre y otros con otro. Adoptamos x como nombre maestro de la propiedad.
  • y, st_y y utm_y representan la misma propiedad, que unos meses viene informada con un nombre y otros con otro. Adoptamos y como nombre maestro de la propiedad.

Respecto a la heterogeneidad con la que se presentan los tipos de dato, se ha comprobado que las coordenadas de localización de los puntos de medida unas veces se guardan utilizando comas ‘,’ como separador de miles y otras puntos ‘.’.

Se han desarrollado funciones que realizan de manera transparente todas las correcciones descritas en las líneas anteriores, de manera que se pueda trabajar de forma más cómoda y productiva.

Al igual que en el caso anterior, los archivos con los datos de localización se han guardado apropiadamente en una tabla de una base de datos. Esto simplifica mucho la tarea de operarlos, pues se evita mantener ficheros.

6.2.2 Muestra de los datos de ubicación de los puntos de medida

Podemos observar una muestra de estos datos en el Cuadro 6.4.

Cuadro 6.4: Muestra de datos de localización de los puntos de medida (Septiembre 2018)
tipo_elem id cod_cent nombre x y
URB 3840 01001 Jose Ortega y Gasset E-O - Pº Castellana-Serrano 441615.3 4475768
URB 3841 01002 Jose Ortega y Gasset O-E - Serrano-Pº Castellana 441705.9 4475770
URB 3842 01003 Pº Recoletos N-S - Almirante-Prim 441319.4 4474841
URB 3843 01004 Pº Recoletos S-N - Pl, Cibeles- Recoletos 441301.6 4474764
URB 3844 01005 (AFOROS) Pº Castellana S-N - Eduardo Dato - Pl,Emilio Castelar 441605.8 4476132
URB 3845 01006 Pº Recoletos S-N - Villanueva-Jorge Juan 441383.0 4474994

Y visualmente, sobre un mapa, podemos observar su distribución geográfica en la Figura 6.2.

Mapa de localización de los Puntos de Medida (Septiembre 2018)

Figura 6.2: Mapa de localización de los Puntos de Medida (Septiembre 2018)

6.2.3 Análisis de corrupción de los datos de localización

Al igual que con los datos de medidas, podemos observar en qué meses se han informado localizaciones de los dispositivos de medida (Cuadro 6.5).

Cuadro 6.5: Dispositivos que informan localización por año y mes
Año Mes Dispositivos
2018 10 4119
2018 9 4117
2018 8 4102
2018 7 4100
2018 6 4103
2018 4 4101
2018 3 4078
2018 2 4078
2018 1 4072
2017 12 4073
2017 11 4067
2017 10 4058

En particular, resulta interesante estudiar cuánto ha variado el valor de localización por dispositivo a lo largo del tiempo.

Hemos comprobado que considerando todo el histórico de localizaciones de terminales, 4.065 de los 4.141 se han visto sometidos a cambios superiores a 1 unidad en sus coordenadas de localización (Cuadro ).

Resumen de dispositivos cuya variación en la localización es superior a la unidad (todo el histórico de datos)
No Variable Estadístico / Valor Freqs (% Válidos) Válidos Perdidos
1 id
[entero]
Media (sd) : 5701.7 (1852.8)
min < med < max:
0 < 5450 < 10337
IQR (CV) : 2083 (0.3)
4065 diferentes 4065
(100%)
0
(0%)
2 x_diff
[numerico]
Media (sd) : 109.3 (4.4)
min < med < max:
0.5 < 109.4 < 146.1
IQR (CV) : 0 (0)
4065 diferentes 4065
(100%)
0
(0%)
3 y_diff
[numerico]
Meadia (sd) : 207.4 (9.5)
min < med < max:
1.2 < 207.5 < 426.1
IQR (CV) : 0 (0)
4064 diferentes 4 ( 065
100%)
0
(0%)

Sin embargo, considerando sólo datos de localización de los terminales desde Noviembre de 2017, vemos que sólo 18 dispositivos tienen cambios significativos en sus coordenadas de localización (Cuadro ).

Resumen de dispositivos cuya variación en la localización es superior a la unidad (desde Noviembre de 2017)
No Variable Estadístico / Valor Freqs (% Válidos) Válidos Perdidos
1 id
[entero]
Media (sd) : 6726.6 (2118.2)
min < med < max:
3714 < 6229 < 10280
IQR (CV) : 1782 (0.3)
18 diferentes 18
(100%)
0
(0%)
2 x_diff
[numerico]
Media (sd) : 8.4 (8.8)
min < med < max:
0.2 < 4.8 < 35.1
IQR (CV) : 8.9 (1)
18 diferentes 18
(100%)
0
(0%)
3 y_diff
[numerico]
Media (sd) : 5.3 (4.1)
min < med < max:
0.9 < 4.5 < 13.4
IQR (CV) : 7.1 (0.8)
18 diferentes 18
(100%)
0
(0%)

Esto claramente nos indica que los datos de localización históricos están corruptos.

Conclusiones:

  • los datos históricos de localización sólo son válidos a partir de Noviembre de 2017
  • desde Noviembre de 2017, sólo son fiables los datos de localización del 98,5% de los terminales
  • los terminales que caen en el 1,5% cuya localización padece de modificaciones desde Noviembre de 2017 los vamos a descartar en nuestro estudio, por alguna de las siguientes razones:
    • porque su localización esté corrupta en el histórico de localizaciones
    • porque verdaderamente hayan podido cambiar de localización a lo largo del tiempo, lo cual implicaría una complejidad excesiva en el resto de esta investigación

6.3 Selección de la propiedad objeto de estudio

El objetivo principal de este trabajo es pronosticar el flujo de tráfico en la ciudad de Madrid.

De las propiedades que ofrece el conjunto de datos de medidas tomadas por los dispositivos de medida, las siguientes podrían servir para describir el estado en el que se encuentra el tráfico en un punto dado:

  • intensidad: intensidad del punto de medida en el periodo de 15 minutos (vehículos/hora).
  • ocupacion: tiempo de ocupación del punto de medida en el periodo de 15 minutos (%).
  • carga: carga de vehículos en el periodo de 15 minutos. Parámetro que tiene en cuenta intensidad, ocupación y capacidad de la vía y establece el grado de uso de la vía de 0 a 100.
  • vmed: velocidad media de los vehículos en el periodo de 15 minutos (Km./h). Sólo para puntos de medida interurbanos M30.

En primer lugar, descartamos como propiedad objetivo la velocidad media vmed, puesto que este valor solamente se informa para los dispositivos de la M30 y en este estudio se pretende un modelo que pronostique el flujo en cualquier punto de la ciudad (también los urbanos).

De las 3 restantes, realmente sería la carga la propiedad más importante a pronosticar, por tres razones:

  • se corresponde con un valor que tiene significado directo sobre la ocupación del punto
  • se expresa como un porcentaje, de manera que intuitivamente es fácil de entender (independiente del contexto o peculiaridades del lugar en el que esté el punto de medida)
  • es un valor ya cocinado, por lo que una vez pronosticado, no requiere de mayor transformación

Para disponer de información suficiente que permita validar que la propiedad carga es la mejor candidata, se ha revisado que la cantidad relativa de veces que no ha sido informada no sea excesivamente superior a cualquier otra propiedad. En caso contrario, es decir, caso que los datos informados en la propiedad carga realmente fuesen muy precarios, tal vez sería conveniente no seleccionar esta como la propiedad objetivo e intentar adoptar otros enfoques.

Este estudio se ha realizado con los datos de 2018 recogidos por todos los puntos de medida. Para esta labor se ha utilizado el paquete imputeTS (Moritz and Bartz-Beielstein 2017) de R. El resultado, con la cantidad relativa de veces que cada propiedad no ha sido informada de forma correcta se muestra en el Cuadro .

Resumen de valores reportados erróneamente en 2018 para las propiedades intensidad, ocupación y carga
No Variable Estadístico / Valor Freqs (% Válidos) Válidos Perdidos
1 % intensidad NAs
[numerico]
media (sd) : 0.04 (0.09)
min < med < max :
0 < 0.02 < 1
IQR (CV) : 0.03 (2.13)
934 diferentes 2906
(100%)
0
(0%)
2 % ocupacion NAs
[numerico]
media (sd) : 0.08 (0.1)
min < med < max :
0 < 0.05 < 1
IQR (CV) : 0.05 (1.25)
1315 diferentes 2906
(100%)
0
(0%)
3 % carga NAs
[numerico]
media (sd) : 0.05 (0.1)
min < med < max :
0 < 0.02 < 1
IQR (CV) : 0.04 (1.86)
986 diferentes 2906
(100%)
0
(0%)

Vemos que el porcentaje en el que la propiedad carga no está informada correctamente es menor que el homólogo para ocupación. Y no es mucho mayor que el correspondiente valor de la propiedad intensidad.

Por lo tanto, los datos no contravienen el objetivo de pronosticar la propiedad carga, que es la más relevante para este estudio por las razones expuestas más arriba.

Podemos ver la distribución de los porcentajes de datos faltantes en las series de carga reportadas por los dispositivos en todo el histórico de datos en la Figura 6.3.

Nótese que es diferente el análisis de calidad realizado en los párrafos anteriores (medidas recibidas sin valor de carga, intensidad u ocupación), que el análisis al que se refiere la Figura 6.3 (“huecos” en la serie temporal en la que no se han recibido datos, ni de carga ni de ninguna otra propiedad).

Histograma del porcentaje de datos faltantes en los datos reportados por todos los dispositivos

Figura 6.3: Histograma del porcentaje de datos faltantes en los datos reportados por todos los dispositivos

6.4 Análisis exploratorio de la propiedad carga

Es importante determinar de forma heurística el patrón estacional que puedan presentar los datos que vamos a estudiar. De especial ayuda son los gráficos de representación polar para esta tarea.

Con esta finalidad se han explorado las series de carga reportadas por varios dispositivos. En la Figura 6.4 pueden verse las distintas estacionalidades que presenta la propiedad carga para uno de estos dispositivos, sirviendo de generalidad para lo observado en el resto de ellos.

Gráfico de diferentes estacionalidades de la carga (dispositivo 4000)

Figura 6.4: Gráfico de diferentes estacionalidades de la carga (dispositivo 4000)

Podemos observar que las series tiene componentes estacionales diarias, semanales y anuales; circunstancia por otro lado bastante natural dada la relación directa entre el flujo de tráfico de una ciudad y el calendario por el que se gobierna la actividad humana.

6.5 Fallas en los datos

La mayoría de los algoritmos de modelado y pronóstico de series temporales requieren de datos que no tengan fallas.

Para tener una idea de lo significativas que pueden llegar a ser estas anomalías en los datos tomados por los dispositivos, podemos observar por ejemplo las medidas tomadas por el dispositivo 10.329 en la primera semana de Julio de 2.018 en la Figura 6.5.

Fallas en los datos informados por el dispositivo 10.329 en Julio de 2018

Figura 6.5: Fallas en los datos informados por el dispositivo 10.329 en Julio de 2018

Dependiendo del tipo de algoritmo utilizado en cada caso, se ha seleccionado la técnica más conveniente para la reparación de estas fallas. Por ahora, para el estudio exploratorio de la propiedad carga (principalmente en lo relativo a su estacionalidad) hemos utilizado técnicas muy sencillas, como acarrear el último valor conocido o interpolar con los valores extremos.

Es importante tener en cuenta, que para fallas grandes no será fácil reparar los datos de una manera no nociva. Tarea ésta que por otro lado supone un área de investigación y que excede los límites de este trabajo.

Bibliografía