Introducción

La alta accidentalidad en Medellín se está convirtiendo en un problema de salud pública (Concejo de Medellín, 2020), los accidentes de tránsito aparecen como la séptima causa de muerte en el planeta y más aún, ha sido considerada como la segunda causa que más genera muertes en Colombia (Sistemas y Comunicaciones FODC, s.f.). Esta “epidemia” es la primera causa de muerte de las personas menores de 40 años a escala mundial. (ARL SURA, 2020)

Gracias a los datos abiertos presentados por la Alcaldía de Medellín, se puede acceder a las bases de datos de movilidad de forma gratuita, donde muestra los Incidentes de Tránsito Georreferenciados por la Secretaria de Movilidad de la Alcaldía de Medellín, durante un periodo de tiempo de un año especifico. Entendiéndose por accidente de tránsito a un evento, generalmente involuntario, generado al menos por un vehículo en movimiento, que causa daños a personas y bienes involucrados en él, e igualmente afecta la normal circulación de los vehículos que se movilizan por la vía o vías comprendidas en las mayores zonas de influencia del hecho (Alcaldía de Medellín, 2020).

El objetivo de este trabajo es que, a partir de técnicas en aprendizaje estadístico, se analicen, se modelen y se evalúen los datos (obtenidos como se mencionó anteriormente), para ello, se realizó un análisis descriptivo y exploratorio de los datos, que permitió inferir y ver tendencias en el comportamiento de los mismos. Seguido de esto se crearon modelos estadísticos que predijeron la accidentalidad en Medellín diaria, semanal y mensual, en un periodo de tiempo de 4 años (Del año 2014 al 2017) y con el fin de identificar que los modelos se comportaran correctamente se evaluaron en los datos del año 2018. Finalmente, se hizo un análisis que permitio la agrupación de los diferentes barrios de la ciudad de Medellín (presentes en sus 16 comunas y 5 corregimientos) de acuerdo con su accidentalidad.

Exploración de los datos

Se realiza un análisis exploratorio para descubrir las principales características de la información contenida en la base de datos de accidentalidad a través de gráficos.

Tabla de datos y variables

Se muestran los 10 primeros registros de una de las bases de datos obtenidas de datos abiertos de la Alcaldía de Medellín.

##    X.U.FEFF.X        Y OBJECTID RADICADO                  FECHA     HORA DIA
## 1   -75.60273 6.219016   211279  1423828 2014/01/01 00:00:00+00 02:20:00   1
## 2   -75.56818 6.260009   211280  1423839 2014/01/01 00:00:00+00 12:50:00   1
## 3   -75.54994 6.264765   211281  1423840 2014/01/01 00:00:00+00 01:00:00   1
## 4   -75.60761 6.234327   211282  1423849 2014/01/01 00:00:00+00 12:37:00   1
## 5   -75.57969 6.299968   211283  1423890 2014/01/01 00:00:00+00 10:40:00   1
## 6   -75.55543 6.284499   211284  1423892 2014/01/01 00:00:00+00 04:00:00   1
## 7   -75.55525 6.243999   211285  1423894 2014/01/01 00:00:00+00 07:15:00   1
## 8   -75.55461 6.235756   211286  1423896 2014/01/01 00:00:00+00 05:00:00   1
## 9   -75.59578 6.257979   211287  1423897 2014/01/01 00:00:00+00 01:30:00   1
## 10  -75.57678 6.220072   211288  1423898 2014/01/01 00:00:00+00 02:00:00   1
##    PERIODO             CLASE     DIRECCION              DIRECCION_ENC CBML
## 1     2014            Choque    CR 80 CL 8   CR  080   008  000 00000 1611
## 2     2014         Atropello   CR 53 CL 61   CR  053   061  000 00000 1003
## 3     2014         Atropello   CR 39 CL 70   CR  039   070  000 00000 0308
## 4     2014         Atropello   CL 32 CR 84   CL  032   084  000 00000 1617
## 5     2014 Caída de Ocupante  CR 80 CL 101   CR  080   101  000 00000 0603
## 6     2014            Choque   CR 48 CL 93   CR  048   093  000 00000 0401
## 7     2014            Choque   CL 51 CR 35   CL  051   035  000 00000 0906
## 8     2014            Choque   CR 29 CL 42   CR  029   042  000 00000 0910
## 9     2014            Choque CR 78 CL 47 D CR  078   047 D  000 00000 1116
## 10    2014 Caída de Ocupante   CR 49 CL 18   CR  049   018  000 00000 1403
##                       TIPO_GEOCOD GRAVEDAD                 BARRIO
## 1  Malla vial aproximada: CR 81-7   HERIDO     Loma de los Bernal
## 2                      Malla vial   HERIDO         Jesús Nazareno
## 3                      Malla vial   HERIDO      Manrique Oriental
## 4                      Malla vial   HERIDO           Las Mercedes
## 5                      Malla vial   HERIDO   Doce de Octubre No.2
## 6                      Malla vial   HERIDO                 Berlin
## 7                      Malla vial   HERIDO         Barrio Caicedo
## 8                      Malla vial   HERIDO           La Milagrosa
## 9                      Malla vial   HERIDO U.D. Atanasio Girardot
## 10                     Malla vial   HERIDO          Villa Carlota
##              COMUNA       DISENO DIA_NOMBRE MES MES_NOMBRE X_MAGNAMED
## 1             Belén Tramo de via  MIÉRCOLES   1         NA   831190.1
## 2     La Candelaria Tramo de via  MIÉRCOLES   1         NA   835013.6
## 3          Manrique Tramo de via  MIÉRCOLES   1         NA   837032.7
## 4             Belén Tramo de via  MIÉRCOLES   1         NA   830649.5
## 5   Doce de Octubre Tramo de via  MIÉRCOLES   1         NA   833740.8
## 6          Aranjuez Interseccion  MIÉRCOLES   1         NA   836425.4
## 7      Buenos Aires Tramo de via  MIÉRCOLES   1         NA   836445.0
## 8      Buenos Aires Interseccion  MIÉRCOLES   1         NA   836516.5
## 9  Laureles Estadio Tramo de via  MIÉRCOLES   1         NA   831959.6
## 10       El Poblado Tramo de via  MIÉRCOLES   1         NA   834062.0
##    Y_MAGNAMED  LONGITUD  LATITUD
## 1     1179690 -75.60273 6.219016
## 2     1184224 -75.56818 6.260009
## 3     1184750 -75.54994 6.264765
## 4     1181383 -75.60761 6.234327
## 5     1188644 -75.57969 6.299968
## 6     1186933 -75.55543 6.284499
## 7     1182453 -75.55525 6.243999
## 8     1181541 -75.55461 6.235756
## 9     1183999 -75.59578 6.257979
## 10    1179806 -75.57678 6.220072

Descripción de las variables

La base de datos que proporciona la Alcaldía de Medellín, (Alcaldía de Medellín, 2020), inicialmente proporciona 24 variables que están conformadas así:

X: Representa el mismo valor de la longitud.

Y: Representa el mismo valor de la latitud.

OBJECTID: Representa un valor de identificación.

RADICADO: Representa un valor de identificación.

FECHA: Indica la fecha (Año/Mes/Día). Para el año está entre 2014 y 2018, el mes está entre Enero y Diciembre, el día entre 1 y 31.

HORA: Es la unidad de tiempo que está entre (1:00 A.M y 12:59 P.M)

DIA: Es el número asignado al día, está entre el día 1 y 31 de cada mes.

PERIODO: Hace referencia al número del año está entre 2014 y 2018.

CLASE: Es el tipo de accidente, tiene las siguientes categorías:

  • Atropello: Es el accidente donde un peatón es inicialmente impactado por un vehículo. (Prueba de ruta, s.f.)

  • Caída Ocupante: Esta se presenta cuando el ocupante pierde el equilibrio, ya sea al subir o bajar del vehículo en movimiento, precipitándose hacia la vía, sin que ello sea generado por choque o volcamiento. (Prueba de ruta, s.f.).

  • Choque: El impacto de un vehículo en movimiento contra otro u otros vehículos, estén o no en movimiento o contra un objeto fijo. (Prueba de ruta, s.f.).

  • Incendio: Se produce como consecuencia de intervenciones mecánicas mal efectuadas, fallas eléctricas o mecánicas o similares, dando lugar a una conflagración o al incendio del vehículo, sin que ello sea consecuencia de un accidente previo. (Prueba de ruta, s.f.)

  • Volcamiento: Es el accidente en el cual las llantas de un vehículo dejan de estar en contacto con la superficie del suelo, por causas ajenas a la voluntad del conductor. Algunos de los volcamientos son producto de la maniobra que realizan los conductores antes de iniciar una frenada. (Prueba de ruta, s.f.).

  • Otro: Son los accidentes que no se enmarcan dentro de las clases descritas, tales como el evento en el cual, con la llanta de un vehículo es expulsada una piedra u objeto, generando daños a otros vehículos o lesiones a las personas y otras situaciones diferentes a las expuestas en la clasificación anterior. (Prueba de ruta, s.f.).

DIRECCION: Es la nomenclatura asignada al predio, acceso principal (se identifica con las vías que conforman la manzana). (Alcaldía de Medellín), encontramos (calles, carreras, avenidas, transversales, diagonales, entre otras).

DIRECCION_ENC: Es también un sistema de ubicación, pero está expresado codificado diferente.

CBML: Código de ubicación del predio en la ciudad. Consta de 11 dígitos distribuidos en: Comuna (2 dígitos), Barrio (2 dígitos), Manzana (3 dígitos) y lote (4 dígitos). (Alcaldía de Medellín).

TIPO_GEOCOD: Esta comprendida es su mayoría por una maya vial que es un conjunto de líneas que definen los ejes viales, de cada una de las vías de la ciudad. Estas líneas tienen estructurada como atributo la información de nomenclatura vial, el sentido del tránsito vehicular y su clasificación de acuerdo al tipo de tráfico que soporta. (Ideca, 2019)

GRAVEDAD: Es la gravedad del accidente de tránsito, dejando a su vez las siguientes categorías:

  • Herido: Persona queda lesionada a causa del accidente.
  • Muerto: Persona que pierde la vida a causa del accidente.
  • Solo daños: Son los daños materiales del vehículo a causa del accidente.

BARRIO: Unidad territorial dotada con ciertas características propias y distintivas que marcan una relación de particularidad frente al conjunto de la ciudad. (Vivienda al Día, 2020). De las 16 comunas y 5 corregimientos, a continuación, se muestran los barrios por los cuales están conformados (Alcaldía de Medellín, 2020):

  • Comuna 1 – Popular: Popular, San Pablo, Moscú No.2, Santo Domingo Savio No.1, El Compromiso, La Esperanza No.2, Carpinelo, Granizal, La Avanzada, Villa Guadalupe, Aldea Pablo VI, Santo Domingo Savio No.2.
  • Comuna 2 – Santa Cruz: Moscú No.1, Santa Cruz, La Frontera, La Rosa, La Francia, Playón de Los Comuneros, Villa del Socorro, Pablo VI, Andalucía, Villa Niza, La Isla.
  • Comuna 3 – Manrique: Manrique Oriental, Las Granjas, Santa Inés, El Raizal, El Pomar, Versalles No.1, Manrique Central No.2, Campo Valdés No.2, La Salle, Oriente, San José la Cima No.2, Versalles No.2, La Cruz, María Cano Carambolas, San José la Cima No.1, Manrique.
  • Comuna 4 – Aranjuez: Berlín, Brasilia, Manrique Central No.1, San Isidro, Campo Valdés No.1, Sevilla, Jardín Botánico, Moravia, San Pedro, Universidad de Antioquia, Parque Norte, Miranda, Las Esmeraldas, Aranjuez, Palermo, Bermejal-Los Alamos, La Piñuela.
  • Comuna 5 – Castilla: Terminal de Transporte, Las Brisas, Francisco Antonio Zea, Girardot, Cementerio Universal, El Progreso, Toscana, Tricentenario, Castilla, Caribe, Boyacá, Alfonso López, Florencia, Tejelo, Belalcázar, Héctor Abad Gómez, Oleoducto, Plaza de Ferias.
  • Comuna 6 - Doce de octubre: Doce de Octubre No.2, La Esperanza, Kennedy, San Martín de Porres, Pedregal, Picacho, Doce de Octubre No.1, Picachito, El Progreso No.2, Mirador del Doce, Santander, El Triunfo.
  • Comuna 7 – Robledo: Villa Flora, Aures No.1, Aures No.2, El Diamante, Bello Horizonte, La Pilarica, Cucaracho, Facultad de Minas U. Nacional, Pajarito, Córdoba, Universidad Nacional, Robledo, López de Mesa, San Germán, Altamira, Facultad Veterinaria y Zootecnia U.de.A., Nueva Villa de La Iguaná, Palenque, B. Cerro El Volador, Bosques de San Pablo, Olaya Herrera, Santa Margarita, Monteclaro, Fuente Clara.
  • Comuna \(8\) - Villa Hermosa: San Miguel, Enciso, Las Estancias, El Pinal, Villa Hermosa, La Libertad, La Ladera, La Mansión, Sucre, Llanaditas, Villatina, Los Mangos, Villa Turbay, Trece de Noviembre, Villa Lilliam, San Antonio, La Sierra, Batallón Girardot.
  • Comuna 9 - Buenos Aires: Barrio Caicedo, La Milagrosa, Asomadera No.2, Buenos Aires, Alejandro Echavarría, Bomboná No.2, Cataluña, Loreto, Asomadera No.1, Juan Pablo II, El Salvador, Barrios de Jesús, Gerona, Miraflores, Los Cerros El Vergel, Asomadera No.3, Ocho de Marzo.
  • Comuna 10 - La Candelaria: Jesús Nazareno, Guayaquil, San Benito, La Candelaria, Barrio Colón, Estación Villa, Prado, San Diego, Calle Nueva, El Chagualo, Villa Nueva, Perpetuo Socorro, Boston, Corazón de Jesús, La Alpujarra, Los Ángeles, Bomboná No.1, Centro Administrativo, Hospital San Vicente de Paúl.
  • Comuna 11 - Laureles—Estadio: U.D. Atanasio Girardot, La Castellana, Carlos E. Restrepo, Naranjal, Florida Nueva, El Velódromo, Suramericana, San Joaquín, Los Conquistadores, Los Colores, Las Acacias, El Estadio, Bolivariana, Laureles, Lorena, Cuarta Brigada, U.P.B.
  • Comuna 12 - La América: Calasanz Parte Alta, Barrio Cristóbal, La Floresta, La América, Santa Teresita, Ferrini, El Danubio, Campo Alegre, Santa Mónica, Santa Lucía, Los Pinos, Simón Bolívar, Calasanz.
  • Comuna 13 - San Javier: Betania, La Pradera, El Corazón, San Javier No.2, El Pesebre, Veinte de Julio, Los Alcázares, San Javier No.1, Antonio Nariño, Las Independencias, Nuevos Conquistadores, El Salado, Belencito, Juan XXIII La Quiebra, Santa Rosa de Lima, Blanquizal, Eduardo Santos, El Socorro, Metropolitano, San Javier.
  • Comuna 14 – Poblado: Villa Carlota, Altos del Poblado, Astorga, El Poblado, Las Lomas No.1, Manila, Los Balsos No.2, La Florida, Santa María de los Ángeles, Barrio Colombia, El Tesoro, La Aguacatala, Castropol, Los Balsos No.1, Los Naranjos, El Castillo, Alejandría, El Diamante No.2, Patio Bonito, Las Lomas No.2, San Lucas, Lalinde.
  • Comuna 15 – Guayabal: Campo Amor, Cristo Rey, Guayabal, Parque Juan Pablo II, Santa Fé, Trinidad, Tenche, La Colina, El Rodeo.
  • Comuna 16 – Belén: Las Mercedes, El Rincón, Altavista, Rosales, La Hondonada, San Bernardo, Belén, Fátima, Granada, La Palma, Cerro Nutibara, La Mota, Las Playas, La Gloria, Las Violetas, La Loma de Los Bernal, Diego Echavarría, El Nogal-Los Almendros, Los Alpes, Nueva Villa de Aburrá, Miravalle, Cerro Nutibara.
  • 50 - Corregimiento San Sebastián de Palmitas: Suburbano Palmitas.
  • 60 - Corregimiento San Cristóbal: Cabecera Urbana San Cristobal, Pedregal Alto, Corregimiento de San Cristóbal, Área de Expansión Pajarito, Pedregal Bajo, El Picacho, Área de Expansión Altos de Calasanz, Suburbano Travesias, Suburbano La Loma, Suburbano Pedregal alto, Suburbano Palma Patio, Yolombo, La Loma Oriental, Travesías, San José de la Montaña.
  • 70 - Corregimiento de Altavista: Buga Patio Bonito, Area De Expansion Altavista, Altavista Sector Central, San Pablo, El Corazon El Morro, Aguas Frias, Suburbano Altavista, Area De Expansion Belen Rincon, La Esperanza.
  • 80 - Corregimiento de San Antonio de Prado: Cabecera San Antonio de Prado, Área de Expansión San Antonio de Prado, La Florida, La Verde, Potrerito, La Oculta, El Vergel, Corregimiento de San Antonio de Prado, Suburbano Potrerito.
  • 90 - Corregimiento Santa Elena: Las Palmas, Suburbano El Plan, Piedras Blancas, Ocho de Marzo, Media Luna, Suburbano El Llano, Piedras Blancas – Matasano, Piedra Gorda, Corregimiento de Santa Elena.

COMUNA: Unidad administrativa en la cual se subdivide el área urbana de una ciudad media o principal del país, que agrupa barrios o sectores determinados. (Wikipedia, 2020). En Medellín se cuenta con 16 comunas y 5 corregimientos, así (Alcaldía de Medellín, 2015):

  • Comuna 1– Popular
  • Comuna 2– Santa Cruz
  • Comuna 3- Manrique
  • Comuna 4– Aranjuez
  • Comuna 5- Castilla
  • Comuna 6- Doce de octubre
  • Comuna 7- Robledo
  • Comuna 8- Villa Hermosa
  • Comuna 9- Buenos Aires
  • Comuna 10 - La Candelaria
  • Comuna 11 - Laureles—Estadio
  • Comuna 12 - La América
  • Comuna 13 - San Javier
  • Comuna 14 - Poblado
  • Comuna 15 - Guayabal
  • Comuna 16 - Belén
  • 50 - Corregimiento San Sebastián de Palmitas
  • 60 - Corregimiento San Cristóbal
  • 70 - Corregimiento de Altavista
  • 80 - Corregimiento de San Antonio de Prado
  • 90 - Corregimiento Santa Elena

DISEÑO: Es un glosario de algunos sitios donde ocurren accidentes.

  • Ciclo ruta: vía o sección de la calzada destinada al tránsito de bicicletas en forma exclusiva. (Mintransporte, 2020)
  • Tramo de vía: Zona de uso público o privado, abierta al público, destinada al transito de vehículos, personas y animales, que va de un punto a otro. (Mintransporte, 2020).
  • Intersección: Dispositivos viales en los que dos o más carreteras se encuentran ya sea en un mismo nivelo bien en distintos, produciéndose cruces y cambios de trayectorias de los vehículos que por ellos circulan. (INVIAS , 2018).
  • Puente: Estructura de drenaje cuya luz mayor, medida paralela al eje de la carretera, es mayor de diez metros (10 m). (INVIAS , 2018).
  • Glorieta: intersección donde no hay cruces directos sino maniobras de entrecruzamientos y movimientos alrededor de una isleta o plazoleta central. (Mintransporte, 2020)
  • Otro: Otros sitios que no están enmarados.
  • Paso Elevado: Diseñado especialmente para que se atraviese una vía por la parte superior. (Mintransporte, 2020).
  • Paso Inferior: Diseñado especialmente para que se atraviese una vía por la parte inferior. (Mintransporte, 2020).
  • Paso a Nivel: Intersección a un mismo nivel de una calle o carretera con una vía férrea. (Mintransporte, 2020).
  • Vía peatonal: Zonas destinadas para el transito exclusivo de peatones. (Mintransporte, 2020).
  • Lote o Predio: Es la característica que identifica el suelo de acuerdo al uso. (Alcaldía de Medellín).
  • Túnel: Cavidad subterránea o subacuática que como solución vial implica una operación vehicular a cielo cerrado. (INVIAS , 2018).
  • Pontón: Estructura de drenaje cuya luz medida paralela al eje de la carretera es menor o igual a diez metros (10m). (INVIAS , 2018).

DIA_NOMBRE: Es el nombre asignado al día, así: Lunes, Martes, … , Sábado, Domingo.

MES: Es el número del mes en el transcurso del año, va desde 1 hasta 12.

MES_NOMBRE: Es el nombre del mes en el transcurso del año, así: Enero, Febrero, … , Noviembre, Diciembre.

X_MAGNAMED: Se usa el sistema de referencia Magna Bogota Zone.

Y_MAGNAMED: Se usa el sistema de referencia Magna Bogota Zone.

El sistema de coordenadas geográficas es un sistema que referencia cualquier punto de la superficie terrestre y que utiliza para ello dos coordenadas angulares, latitud (norte o sur) y longitud (este u oeste), para determinar los ángulos laterales de la superficie terrestre con respecto al centro de la Tierra y alineadas con su eje de rotación. (AristaSur, 2010)

LONGITUD: Se mide según los meridianos y es la distancia entre un punto del ecuador y el Meridiano de Greenwich, es medida en grados (°) que puede ir de 0° - 180° para el este (€) u oeste (W). (Significados, s.f.) • LATITUD: Proporciona la localización de un lugar, en dirección Este u Oeste desde el meridiano de referencia 0º, o meridiano de Greenwich, expresándose en medidas angulares comprendidas desde los 0º hasta 180ºE (+180º) y 180ºW (-180º). (AristaSur, 2010)

VARIABLES ELIMINADAS: Analizando la base de datos, se determinó la pertinencia de cada una de las variables mencionadas anteriormente y se llegó a la conclusión de eliminar las siguientes variables:

  • X, Y: Valor repetido de longitud y latitud.
  • OBJECTID, RADICADO: La identificación de un dato no es representativa para el análisis.
  • HORA: Está mal en la base de datos, solamente indica los accidentes en la hora de la mañana (AM) y tan solo 1 hora (PM), por lo tanto no era significativa.
  • DIRECCION, DIRECCION_ENC: Con los datos de longitud y latitud, se tiene la ubicación precisa para poder georreferenciar correctamente, por lo tanto no se necesitaron más herramientas para esto.
  • CBML: Como es el código de ubicación del predio en la ciudad, no se necesitaron más herramientas para georreferenciar
  • TIPO_GEOCOD: Era una variable inconsistente y poco precisa, no aportaba información significativa para el análisis.
  • X_MAGNAMED, Y_MAGNAMED: Con los datos de longitud y latitud, se tiene la ubicación precisa para poder georreferenciar correctamente, por lo tanto no se necesitaron más herramientas para esto.

VARIABLES CONSIDERADAS: Después de un análisis exhaustivo en la base de datos original, estas son las variables que finalmente conformaron en el conjunto de datos con la cual se trabajo: FECHA, DIA, PERIODO, CLASE, GRAVEDAD, BARRIO, COMUNA, DISENO, DIA_NOMBRE, MES, MES_NOMBRE, LONGITUD, LATITUD.

CREACIÓN DE NUEVAS VARIABLES A CONSIDERAR:

  • NUMERO COMUNA: Es el número que le corresponde a la comuna, va entre 1 y 16 para todas las comunas de Medellín, para los corregimientos va entre 50 y 90.

  • SEMANA: Es el número que le corresponde a cada semana del año, su notación es de la siguiente manera:

    • Semana 1: Enero 1 – Enero 7
    • Semana 2: Enero 8 – Enero 14
    • Semana 3: Enero 15 – Enero 21
    • Semana 4: Enero 22 – Enero 28
    • Semana 5: Enero 29 – Febrero 4
    • Semana 6: Febrero 5 - Febrero 11
    • Semana 7: Febrero 12 - Febrero 18
    • Semana 8: Febrero 19 - Febrero 25
    • Semana 9: Febrero 26 – Marzo 4
    • Semana 10: Marzo 5 - Marzo 11
    • Semana 11: Marzo 12 - Marzo 18
    • Semana 12: Marzo 19 - Marzo 25
    • Semana 13: Marzo 26 – Abril 1
    • Semana 14: Abril 2 - Abril 8
    • Semana 15: Abril 9 - Abril 15
    • Semana 16: Abril 16 - Abril 22
    • Semana 17: Abril 23 - Abril 29
    • Semana 18: Abril 30 – Mayo 6
    • Semana 19: Mayo 7 - Mayo 13
    • Semana 20: Mayo 14 - Mayo 20
    • Semana 21: Mayo 21 - Mayo 27
    • Semana 22: Mayo 28 – Junio 3
    • Semana 23: Junio 4 – Junio 10
    • Semana 24: Junio 11 – Junio 17
    • Semana 25: Junio 18 – Junio 24
    • Semana 26: Junio 25 – Julio 1
    • Semana 27: Julio 2 – Julio 8
    • Semana 28: Julio 9 – Julio 15
    • Semana 29: Julio 16 – Julio 22
    • Semana 30: Julio 23 – Julio 29
    • Semana 31: Julio 30 – Agosto 5
    • Semana 32: Agosto 6 – Agosto 12
    • Semana 33: Agosto 13 – Agosto 19
    • Semana 34: Agosto 20 – Agosto 26
    • Semana 35: Agosto 27 – Septiembre 2
    • Semana 36: Septiembre 3 - Septiembre 9
    • Semana 37: Septiembre 10 – Septiembre 16
    • Semana 38: Septiembre 17 – Septiembre 23
    • Semana 39: Septiembre 23 – Septiembre 30
    • Semana 40: Octubre 1 – Octubre 7
    • Semana 41: Octubre 8 – Octubre 14
    • Semana 42: Octubre 15 – Octubre 21
    • Semana 43: Octubre 22 – Octubre 28
    • Semana 44: Octubre 29 – Noviembre 4
    • Semana 45: Noviembre 5 – Noviembre 11
    • Semana 46: Noviembre 12 – Noviembre 18
    • Semana 47: Noviembre 19 – Noviembre 25
    • Semana 48: Noviembre 26 – Diciembre 2
    • Semana 49: Diciembre 3 – Diciembre 9
    • Semana 50: Diciembre 10 – Diciembre 16
    • Semana 51: Diciembre 17 – Diciembre 23
    • Semana 52 : Diciembre 24 – Diciembre 30
    • Semana 53 : Diciembre 31
  • DIA AÑO: Es el número del año al que le corresponde cada día, usualmente un año tiene 365 días a excepción del año bisiesto con 366 días.

  • DIA ESPECIAL: Es una variable categórica con 0 y 1, donde 0 representa un día normal y 1 se asocia a un día especial.

  • DIA FESTIVO: Es una variable categórica con 0 y 1, donde 0 representa un día cotidiano y 1 se asocia a un día festivo en Colombia.

  • CELEBRACION: Corresponde a los días con alguna celebración especial en Colombia, todos los días festivos son considerados días especiales, pero no necesariamente todos los días especiales corresponde a un día festivo. Se consideraron 31 celebraciones como se muestra a continuación (¿Cuando en el mundo?, s.f.):

    • Año Nuevo
    • Día de los Reyes Magos
    • Día de la Mujer
    • Día de San José
    • Domingo de Ramos
    • Jueves Santo
    • Viernes Santo
    • Sábado Santo
    • Domingo Santo
    • Día del Trabajo
    • Día de la Madre
    • Ascensión del Señor
    • Día del Padre
    • Corphus Christi
    • San Pedro y San Pablo
    • Día de la Independencia
    • Feria de las Flores
    • Batalla de Boyacá
    • La Asunción de la Virgen
    • Día de Amor y Amistad
    • Día de la Raza
    • Halloween
    • Todos los Santos
    • Independencia de Cartagena
    • Alborada
    • Día de las velitas
    • Día de la Inmaculada Concepción
    • Víspera de Navidad
    • Día de Navidad
    • Fin de Año
    • Sagrado Corazón de Jesús

Finalmente, se muestra el encabezado del conjunto de datos a trabajar.

##         FECHA DIA PERIODO          CLASE GRAVEDAD                 BARRIO
## 2  2014-01-01   1    2014      Atropello   Herido         Jesús Nazareno
## 3  2014-01-01   1    2014      Atropello   Herido      Manrique Oriental
## 4  2014-01-01   1    2014      Atropello   Herido           Las Mercedes
## 5  2014-01-01   1    2014 Caída Ocupante   Herido   Doce de Octubre No.2
## 6  2014-01-01   1    2014         Choque   Herido                 Berlín
## 7  2014-01-01   1    2014         Choque   Herido         Barrio Caicedo
## 8  2014-01-01   1    2014         Choque   Herido           La Milagrosa
## 9  2014-01-01   1    2014         Choque   Herido U.D. Atanasio Girardot
## 10 2014-01-01   1    2014 Caída Ocupante   Herido          Villa Carlota
## 12 2014-01-01   1    2014         Choque   Herido               Brasilia
##              COMUNA       DISENO DIA_NOMBRE MES MES_NOMBRE  LONGITUD  LATITUD
## 2     La Candelaria Tramo de via  Miércoles   1      Enero -75.56818 6.260009
## 3          Manrique Tramo de via  Miércoles   1      Enero -75.54994 6.264765
## 4             Belén Tramo de via  Miércoles   1      Enero -75.60761 6.234327
## 5   Doce de Octubre Tramo de via  Miércoles   1      Enero -75.57969 6.299968
## 6          Aranjuez Interseccion  Miércoles   1      Enero -75.55543 6.284499
## 7      Buenos Aires Tramo de via  Miércoles   1      Enero -75.55525 6.243999
## 8      Buenos Aires Interseccion  Miércoles   1      Enero -75.55461 6.235756
## 9  Laureles Estadio Tramo de via  Miércoles   1      Enero -75.59578 6.257979
## 10       El Poblado Tramo de via  Miércoles   1      Enero -75.57678 6.220072
## 12         Aranjuez Tramo de via  Miércoles   1      Enero -75.55856 6.273590
##    NUMEROCOMUNA SEMANA DIAAÑO DIA_ESPECIAL DIA_FESTIVO CELEBRACION
## 2            10      1      1            1           1   Año Nuevo
## 3             3      1      1            1           1   Año Nuevo
## 4            16      1      1            1           1   Año Nuevo
## 5             6      1      1            1           1   Año Nuevo
## 6             4      1      1            1           1   Año Nuevo
## 7             9      1      1            1           1   Año Nuevo
## 8             9      1      1            1           1   Año Nuevo
## 9            11      1      1            1           1   Año Nuevo
## 10           14      1      1            1           1   Año Nuevo
## 12            4      1      1            1           1   Año Nuevo

Distribución de la accidentalidad por comunas

Con la ayuda de un gráfico de barras, se identifica cuales son las comunas que presentan el mayor porcentaje de accidentalidad durante el periodo de estudio.

Se observa que la comuna con mayor accidentalidad es La Candelaria que representa aproximadamente el \(21\%\), las comunas Belén y Robledo cada una con \(\approx 7\%\), La América y Manrique poseen comportamientos similares cada una representa \(\approx 4\%\) de la población, Doce de Octubre y Villa Hermosa presentan comportamientos similares con \(\approx 3\%\) cada una, Popular y Santa Cruz representan un 1.5% de la población, finalmente el Corregimiento de San Sebastián de Palmitas representa un \(0.01\%\) lo que indica que presenta la menor cantidad de accidentes, por tanto no es representativo.

Distribución de la accidentalidad por barrios

Se realizo un gráfico de barras con el fin de mostrar los $224 barrios que presentan la mayor accidentalidad.

En los registros del conjunto de datos existen \(307\) barrios, para la construcción de este gráfico solo se consideraron los \(22\) barrios con más accidentalidad, ya que los restantes \((285)\) no llegan a representar el \(1\%\) del total de accidentes que se presenta en la ciudad de Medellín. El barrio la candelaria presenta el mayor porcentaje de accidentalidad en todos los barrios de Medellín; Barrio Colón y San Benito presentan \(\approx 1.6\%\) de accidentalidad cada uno; Terminal de Transporte y Villa Nueva presentan comportamientos similares ya que cada uno representa el \(1.4\%\) del total de la población; Corazón de Jesús, Belén y Guayabal representan \(1.2\%\) cada uno; finalmente los barrios Villa Carlota y Chagualo son \(\approx 1\%\).

Distribución de la accidentalidad por mes y año

En el mes de Enero se presenta la menor cantidad de accidentes para todos los años considerados, el mes de Marzo presento una alta accidentalidad unicamente en el año \(2014\), en general el mes de Agosto es el mes con mayor accidentes pero fue aún más grave para los años \(2016\) y \(2017\), finalmente se observa que el mes de Octubre presento gran acidentalidad para el año \(2016\), los meses de Junio y Noviembre presentan comportamientos semejantes, el año con mayor cantidad de accidentes es \(2016\) y el año de menor accidentalidad fue \(2018\).

Distribución de la accidentalidad por mes y día

El mes que presenta mayor accidentalidad es Agosto con \(8.93\%\) cabe resaltar que este mes se derrolla la tradicional Feria de Flores de Medellín, los meses Septiembre, Mayo, Marzo, Julio y Octubre tienen un comportamiento muy similar con \(\approx 8.6\%\) cada uno, Noviembre, Febrero y Junio también se comportan de manera semejante con \(\approx 8\%\) cda uno; finalmente el mes de Enero presenta la menor cantidad de accidentes, esto puede deberse a que la mayoría de personas se encuentran fuera de la ciudad por vacaciones.

se confirma que las primeras semanas del año presentan la menor accidentalidad, los días \(10\) y \(14\) de Marzo son los más accidentados, los días \(30\) y \(31\) de Octubre se presenta gran cantodad de accidentes, entre los días \(11\) a \(18\) de Septimebre también se presenta una cantidad alta de incidentes viales esto puede deberse a las celebraciones de amor y amistad, desde el \(16\) al \(23\) de Diciembre hay fuerte accidentalidad esto se corrobora con el gráfico semanal.

Distribución de la accidentalidad por semana

La semana \(31\) que va desde el \(29\) Julio al \(05\) de Agosto posee la mayor accidentalidad esto puede deberse a Feria de Flores; sigue la semana \(51\) comprendida entre el \(17\) y \(23\) de Diciembre, la accidentalidad presentada en esta semana puede deberse a las celebraciones de este mes, finalmente se observa que la dos primeras semanas del año son las menos accidentadas. Para este análisis se decidio juntar las semanas \(52\) y \(53\) ya que esta última solo comprendia dos días.

Distribución de la accidentalidad por día de la semana

Los días Viernes y Martes se presenta la mayor cantidad de accidentes, para el día Viernes esto puede ser ocasionado por el inicio del fin de semana, repecto al día Martes se presenta un comportamiento poco esperado, se puede presentar por múltiples razones algunas de ellas los días festivos y el aforo vehicular por día. El Domingo se presenta \(9.5\%\) de accidentes, el menor de todos se siguiere que esto sucede por ser el día de descanso de la mayoría de las personas.

Distribución de la accidentalidad por clase

El tipo más frecuente de accidente es Choque con alrededor de \(67\%\), Incendio representa el \(0.01\%\) del total de la población, por tanto no es significativo.

El tipo de accidente Choque en su gran mayoría deja como consecuencia Solo daños alrededor de un \(70\%\), el \(30\%\) restante corresponde a Heridos; la clase Atropello y Caída Ocupante en su gran mayoría dejan Heridos con un porcentaje muy bajo de Muertes; respecto a Volcamiento y Otro.

Distribución de la accidentalidad por diseño de vía

La gran parte de los accidentes en la ciudad de Medellín ocurren en Tramo de Via e Intersecciones, algo que es de esperarse ya que estas Intersecciones son de alta preligrosidad.

Datos históricos

Planteamiento de modelos | Predicción de accidentalidad.

Para la etapa de entrenamiento se hizo uso del registro historico de accidentes, desde el año 2014, hasta el año 2017 y para la etapa de validación se hizo uso de los registros del año 2018. Esto se realizó de esta forma y no con un método aleatorio, debido a que el conjunto de datos posee una estructura temporal.

Se decide omitir la categoría incendio de la variable clase para la etapa de entrenamiento, ya que, como se describió previamente en el análisis descriptivo, el número de registros es casi nulo.

datos_tr <- datos[datos$CLASE!="Incendio", ]
datos_tr$CLASE <- as.factor(as.character(datos_tr$CLASE))
datos_vl <- subset(datos_tr, (PERIODO == '2018'))
datos_tr <- subset(datos_tr, (PERIODO != '2018'))

Modelo líneal

Inicialmente se hizo uso de un modélo lineal, con el fin de obtener las variables más significativas, para su realización se tuvieron en cuenta las variables, dia_nombre, dia_especial y diseño. Sin embargo, se observó que la significancia de la variable “diseño” es muy baja, por lo que decide eliminarse.

datos_lm1 <- datos_tr %>% group_by(FECHA, DIA_ESPECIAL, DIA_NOMBRE, 
                                   DISENO) %>% count(name = "NRO_ACC") 
lm1 <- lm(NRO_ACC ~ DIA_ESPECIAL+DIA_NOMBRE+DISENO, data = datos_lm1) # Modelo lineal
promedio <- mean(datos_lm1$NRO_ACC)
TSS <- sum((datos_lm1$NRO_ACC - promedio)^2)
sprintf("TSS: %f", TSS)
## [1] "TSS: 8869272.065404"
RSS <- RSS(lm1)
sprintf("RSS: %f", RSS)
## [1] "RSS: 791500.570410"
r2 <- 1-RSS/TSS

Se realizó el cálculo de la desviación estandar de los residuales \((MSE)\) y del \(R^2\), para “cuantificar” la calidad del modelo. Sin embargo, el modelo presenta un alto \(MSE\) \((102.13)\), lo que daría lugar a una alta variabilidad en las predicciones, esta variable viene a jugar el papel de una función de riesgo, correspondiente al valor esperado de la pérdida de los errores cuadráticos. Sin embargo, la variabilidad explicada por el modelo llega a ser \(\approx(91\%)\). En este modelo un alto \(R^2\) y un alto \(MSE\), podría estar asociado a una alta variabilidad inherente de los datos, lo que se puede validar con el cálculo del \(RSS(791500.6)\) del modelo lineal y el \(TSS(8869272)\) de los datos de entrenamiento.

Predicción y evaluación para los datos de entrenamiento.

lm1_data <- datos_tr %>% group_by(FECHA, DIA_ESPECIAL, DIA_NOMBRE, 
                                  DISENO) %>% count(name = "NRO_ACC")
lm1_tr <- lm1_data[,-c(5)]

predicted <- round(predict(lm1, newdata=lm1_tr))
actual <- lm1_data$NRO_ACC

lm1_mse <- MSE(predicted, actual) # MSE
lm1_mae <- MAE(predicted, actual) # MAE
lm1_r2 <- R2_Score(predicted, actual) # R2

sprintf("MSE: %f, MAE: %f, R2: %f", lm1_mse, lm1_mae, lm1_r2)
## [1] "MSE: 102.097067, MAE: 6.140929, R2: 0.911294"

Predicción y evaluación para los datos de validación.

lm1_2018 <- datos_vl %>% group_by(FECHA, DIA_ESPECIAL, DIA_NOMBRE, 
                                  DISENO) %>% count(name = "NRO_ACC")

predicted <- round(predict(lm1, newdata=lm1_2018))
actual <- lm1_2018$NRO_ACC

lm1_mse <- MSE(predicted, actual) # MSE
lm1_mae <- MAE(predicted, actual) # MAE
lm1_r2 <- R2_Score(predicted, actual) # R2

sprintf("MSE: %f, MAE: %f, R2: %f", lm1_mse, lm1_mae, lm1_r2)
## [1] "MSE: 142.040661, MAE: 7.183646, R2: 0.750129"

La diferencia del \(MSE\) entre los datos de entrenamiento y validación es del \(39.9\%\), que al ser mayor que el \(15\%\) nos indicaría un posible sobreajuste, que de hecho es corroborado con el \(R^2\), ya que este disminuye en casi un \(20\%\) para los datos de validación.

Modelo líneal 2 | Disminución y cambio de variables.

datos_lm2 <- datos_tr %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

lm2 <- lm(NRO_ACC ~ DIA_FESTIVO+DIA_NOMBRE, data = datos_lm2)

Predicción y evaluación para los datos de entrenamiento.

lm2_tr <- datos_tr %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

predicted <- round(predict(lm2, newdata=lm2_tr))
actual <- lm2_tr$NRO_ACC

lm2_mse <- MSE(predicted, actual) # MSE
lm2_mae <- MAE(predicted, actual) # MAE
lm2_r2 <- R2_Score(predicted, actual) # R2

sprintf("MSE: %f, MAE: %f, R2: %f", lm2_mse, lm2_mae, lm2_r2)
## [1] "MSE: 291.471595, MAE: 12.951403, R2: 0.569766"

Predicción y evaluación para los datos de validación.

lm2_2018 <- datos_vl %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

predicted <- round(predict(lm2, newdata=lm2_2018))
actual <- lm2_2018$NRO_ACC

lm2_mse <- MSE(predicted, actual) # MSE
lm2_mae <- MAE(predicted, actual) # MAE
lm2_r2 <- R2_Score(predicted, actual) # R2

sprintf("MSE: %f, MAE: %f, R2: %f", lm2_mse, lm2_mae, lm2_r2)
## [1] "MSE: 273.427397, MAE: 12.758904, R2: 0.581054"

Para la realización de este segundo modelo, se quito la variable diseño y se cambio la variable dia_especial por dia_festivo, sin embargo, no se obtuvieron resultados positivos, ya que el \(R^2\) disminuyó notablemente y el \(MSE\) aumentó, indicandonos una alta variabilidad en las predicciones y una baja variabilidad explicada por el modelo. Así, se decide realizar un modelo lineal generalizado.

Modelo líneal generalizado

Se realizó un modelo líneal generalizado de la familia poisson, con el fin de generar un recuento del número de accidentes, iniciando con las variables dia_festivo y dia_nombre.

En el modelo glm se usa habitualmente el logaritmo de la media para la función link, de modo que el modelo log-lineal con una variable explicativa X se puede expresar como \(\log(\mu) = \alpha + \beta*x\), de modo que \(\mu = e^{\alpha + \beta*x} = e^{\alpha}*(e^{\beta})^{x}\)

En este caso se hizo uso de la famillia poisson, debido a que la variable respuesta funciona como un recuento, en este caso de accidentes. Cabe aclarar, que existen otro tipo de familias y funciones de enlace, que son usadas dependiendo del tipo de variable respuesta.

datos_lm4 <- datos_tr %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

lm4 <- glm(NRO_ACC ~ DIA_FESTIVO+DIA_NOMBRE, family = "poisson", data = datos_lm4) # Modelo lineal generalizado, con familia poisson

Predicción y evaluación para los datos de entrenamiento.

lm4_tr <- datos_tr %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

lm4_tr_1 <- lm4_tr[,-4]

predicted <- round(predict(lm4, newdata=lm4_tr_1, type="response"))
actual <- lm4_tr$NRO_ACC

lm4_mse <- MSE(predicted, actual) # MSE
lm4_mae <- MAE(predicted, actual) # MAE
lm4_r2pseudo <- R2pseudo(lm4)

sprintf("MSE: %f, MAE: %f, Pseudo R2: %f", lm4_mse, lm4_mae, lm4_r2pseudo)
## [1] "MSE: 284.337440, MAE: 12.865845, Pseudo R2: 0.594121"

Predicción y evaluación para los datos de validación.

lm4_2018 <- datos_vl %>% group_by(FECHA,DIA_FESTIVO, DIA_NOMBRE) %>% 
  count(name = "NRO_ACC")

predicted <- round(predict(lm4, newdata=lm4_2018, type="response")) 
actual <- lm4_2018$NRO_ACC

lm4_mse <- MSE(predicted, actual) # MSE
lm4_mae <- MAE(predicted, actual) # MAE

sprintf("MSE: %f, MAE: %f", lm4_mse, lm4_mae)
## [1] "MSE: 273.013699, MAE: 12.761644"

En este caso, se quizó iniciar con estas variables en base a su alta significancia obtenida en modelos previos, sin embargo, es claro que aunque llegan a explicar \(\approx(60\%)\) de la variabilidad del modelo, sigue siendo un modelo muy regular, por otro lado, la variabilidad de las predicciones es muy alta, se obtuvo un \(MSE\) de \(273.013\).

La diferencia entre el \(MSE\) de la predicción para los datos de entrenamiento y validación, fue de \(\approx(11.83\%)\), esto es bueno, en el sentido de que no hay un sobreajuste, lo cual se evidenció desde un principio en el \(pseudo-R^2\) del modelo para los datos de entrenamiento. Aún asi, es claro que el modelo sigue siendo bastante regular, por lo que se decide hacer uso de la variable clase.

Modelo líneal generalizado | Adición de la variable clase.

datos_lm5 <- datos_tr %>% group_by(FECHA, DIA_FESTIVO, DIA_NOMBRE, 
                                   CLASE) %>% count(name = "NRO_ACC")

lm5 <- glm(NRO_ACC ~ DIA_FESTIVO+DIA_NOMBRE+CLASE, family = "poisson", 
           data = datos_lm5)

Predicción y evaluación para los datos de entrenamiento.

datos_lm5_p <- datos_lm5[,-5]
y_train <- round(predict(lm5, newdata= datos_lm5_p, type="response"))
y_actual <- datos_lm5$NRO_ACC
lm5_tmse <- MSE(y_train, y_actual)
lm5_tmae <-  MAE(y_train, y_actual)
lm5_tr2 <- R2pseudo(lm5)
lm5_rel <- lm5$deviance/lm5$df.residual # Se obtiene la sobredispersion
sprintf("MSE: %f, MAE: %f, R2 Entrenamiento: %f, Sobredispersión: %f", 
        lm5_tmse, lm5_tmae, lm5_tr2,lm5_rel)
## [1] "MSE: 48.489903, MAE: 4.561826, R2 Entrenamiento: 0.935025, Sobredispersión: 1.788006"

Predicción y evaluación para los datos de validación.

datos_lm5_v1 <- datos_vl %>% group_by(FECHA, DIA_FESTIVO, DIA_NOMBRE, 
                                      CLASE) %>% count(name = "NRO_ACC")
datos_lm5_v2 <- datos_lm5_v1[,-5]

y_train <- round(predict(lm5, newdata= datos_lm5_v2, type="response"))
y_actual <- datos_lm5_v1$NRO_ACC
lm5_tmse <- MSE(y_train, y_actual)
lm5_tmae <-  MAE(y_train, y_actual)
lm5_rel <- lm5$deviance/lm5$df.residual # Se obtiene la sobredispersion
sprintf("MSE: %f, MAE: %f, Sobredispersión: %f", lm5_tmse, lm5_tmae,lm5_rel)
## [1] "MSE: 46.614143, MAE: 4.388085, Sobredispersión: 1.788006"

La diferencia entre el \(MSE\) de la predicción para los datos de entrenamiento y validación, fue de \(\approx(1.87\%)\) y al estar debajo del \(15\%\), no habría sobreajuste. Respecto a la varianza explicada por el modelo, resulta ser bastante buena (\(\approx(94\%)\)) y la sobredispersión que se definió como la proporción entre la desviación nula y la desviación de los residuales, se encuentra cercana a \(1\), indicando un ajuste razonable del modelo. Se elige este modelo al cumplir con todas las condiciones requeridas.

Modelo generalizado | Adición variable comuna

datos_lm6 <- datos_tr %>% group_by(FECHA, DIA_FESTIVO, DIA_NOMBRE, 
                                   CLASE, COMUNA) %>% count(name = "NRO_ACC")

lm6 <- glm(NRO_ACC ~ DIA_FESTIVO+DIA_NOMBRE+CLASE+COMUNA, family = "poisson",
           data = datos_lm6)

Predicción y evaluación para los datos de entrenamiento.

datos_lm6_p <- datos_lm6[,-6]
y_train <- round(predict(lm6, newdata= datos_lm6_p, type="response"))
y_actual <- datos_lm6$NRO_ACC
lm6_tmse <- MSE(y_train, y_actual)
lm6_tmae <-  MAE(y_train, y_actual)
lm6_tr2 <- R2pseudo(lm6)
lm6_rel <- lm6$deviance/lm6$df.residual # Se obtiene la sobredispersion
sprintf("MSE: %f, MAE: %f, R2 Entrenamiento: %f, Sobredispersión: %f", 
        lm6_tmse, lm6_tmae, lm6_tr2,lm6_rel)
## [1] "MSE: 3.874006, MAE: 1.159981, R2 Entrenamiento: 0.715957, Sobredispersión: 0.810124"

En este caso, el \(MSE\) es de \(3.8\), lo que nos indica una baja varianza de los residuales, recordemos que esta varianza se mide como una distancia vertical entre los residuales y el modelo, por otro lado, tenemos un \(pseudo-R^2\) de \(0.71\), explicando \(\approx(71\%)\) de la varianza del número de accidentes en el área metropolitana y una sobredispersión moderada \((0.810124)\), indicando un ajuste razonable del modelo.

Predicción y evaluación para los datos de validación.

datos_lm6_v1 <- datos_vl %>% group_by(FECHA, DIA_FESTIVO, DIA_NOMBRE, 
                                      CLASE, COMUNA) %>% count(name = "NRO_ACC")
datos_lm6_v2 <- datos_lm6_v1[,-6]

y_train <- round(predict(lm6, newdata= datos_lm6_v2, type="response"))
y_actual <- datos_lm6_v1$NRO_ACC
lm6_tmse <- MSE(y_train, y_actual)
lm6_tmae <-  MAE(y_train, y_actual)
lm6_rel <- lm6$deviance/lm6$df.residual # Se obtiene la sobredispersion
sprintf("MSE: %f, MAE: %f, Sobredispersión: %f", lm6_tmse, lm6_tmae,
        lm6_rel)
## [1] "MSE: 3.896290, MAE: 1.173184, Sobredispersión: 0.810124"

La diferencia entre el \(MSE\) de la predicción para los datos de entrenamiento y validación, fue de \(\approx(0.82\%)\) que al estar debajo del \(15\%\), no indicaría un sobreajuste.

A manera de conclusión, este modelo presenta el mejor \(MSE\), pero aún así no es un modelo viable ya que no es posible obtener la variable COMUNA para realizar una predicción sobre los requerimientos especificados.

Agrupamiento

Diagrama de barras - Agrupamientos por número de accidentes.

En el gráfico anterior se ilustra el número de puntos (accidentes) por cluster. El mapa se realizó haciendo uso de ArcgisPro, pero al intentar adjuntarlo en HTML, no permite subir el archivo, debido a su peso.

Creación matriz de distancias con la función geo.dist

##         long      lat                barrios clust
## 1  -75.56818 6.260009         Jesús Nazareno     1
## 2  -75.54994 6.264765      Manrique Oriental     1
## 3  -75.60761 6.234327           Las Mercedes     2
## 4  -75.57969 6.299968   Doce de Octubre No.2     1
## 5  -75.55543 6.284499                 Berlín     1
## 6  -75.55525 6.243999         Barrio Caicedo     1
## 7  -75.55461 6.235756           La Milagrosa     3
## 8  -75.59578 6.257979 U.D. Atanasio Girardot     4
## 9  -75.57678 6.220072          Villa Carlota     2
## 10 -75.55856 6.273590               Brasilia     1

Mapa de agrupamiento según latitud y longitud.

Según las medidas geoespaciales de latitud y longitud de los accidentes es posible obtener la agrupación mostrada anteriormente. Sin embargo, se acalara que este agrupamiento tiene un uso neto como base de referenciación, ya que no se hizo uso de ningún método para la elección del \(K\) óptimo.

Clusterización | Número de accidentes por gravedad y barrio.

Clustering haciendo uso del algoritmo - k means - búsqueda del número óptimo de clusters.

Una vez se tuvieron los datos preprocesados y el subset de datos seleccionados, se procedió a realizar un escalamiento y centrado de la base de datos.

##                              HERIDO      MUERTO  SOLO_DAÑOS
## Aguas Frias              -0.7114493 -0.66879078 -0.58696550
## Aldea Pablo VI           -0.7300959 -0.44260267 -0.61484330
## Alejandría               -0.5964618 -0.44260267  0.12113079
## Alejandro Echavarría      0.6217843 -0.21641455 -0.13534503
## Alfonso López             1.1221354  0.46214979  0.21870311
## Altamira                  0.4446414 -0.21641455 -0.01547046
## Altavista                -0.3291935 -0.66879078 -0.31097521
## Altavista Sector Central -0.6213239  0.46214979 -0.58417772
## Altos del Poblado        -0.5529530 -0.66879078 -0.32212633
## Andalucía                -0.4876898  0.00977356 -0.46430315

En un principio se seleccionó un número aleatorio de clusters con el fin de realizar una observación previa del agrupamiento, seleccionando un \(k = 3\).

En este caso se corroboró el valor (between_SS/total_SS), el cual fue de \(\approx(~77\%)\). Lo que realmente representa esta proporción es la relación entre la cantidad de la suma de los cuadrados totales de los datos que estan en los agrupamientos. Se quiere aumentar este valor a medida que se incrementa el número de agrupamientos, pero sin llegar al sobreajuste. Si se usa un k igual al número de barrios, habrían serios problemas de sobreajuste.

Método del codo (Elbow Method).

Se encontrará un valor de \(k\) con el cual el modélo no se sobreajuste y al mismo tiempo agrupe los datos según su distribución real.

Este método considera el porcentaje de varianza explicada en función del número de agrupamientos. Lo ideal es elegir un número de agrupamientos de tal forma, que al agregar uno más, no se obtenga un mejor modelado de los datos.

En este caso para k = \(4\), la proporción between_ss/total_ss presenta un cambio más suave, en comparación con otros k, como \(1\) o \(2\)., k = \(5\) también parece ser un candidato potencial.

¿Cómo decidir cuál será la elección del k óptimo?

El modelo k-means es “casi” un modelo de mezcla Gaussiana (Gaussiana mixture model) y se puede construir una probabilidad para el modelo de mezcla gaussiana y, por tanto determinar valores de criterio de información.

## Bayesian Information Criterion (BIC): 
##          EII        VII       EEI        VEI       EVI       VVI       EEE
## 1  -2778.535 -2778.5348 -2790.096 -2790.0963 -2790.096 -2790.096 -1917.887
## 2  -2034.984 -1637.2653 -2044.261 -1630.6211 -2031.326 -1603.132 -1941.092
## 3  -1874.504 -1077.5700 -1877.763 -1044.2341 -1848.048 -1020.650 -1695.192
## 4  -1701.506  -624.2890 -1900.690  -555.1393 -1675.044        NA -1670.211
## 5  -1724.639  -416.7509 -1638.557  -401.4251 -1669.413        NA -1629.255
## 6  -1660.608  -429.2090 -1661.680  -378.9528 -1640.890        NA -1652.379
## 7  -1683.734  -297.6200 -1684.810  -293.2765 -1645.430        NA -1675.502
## 8  -1656.385  -315.7834 -1611.516  -248.1773 -1674.975        NA -1573.369
## 9  -1611.033  -241.3236 -1604.133  -221.3332 -1677.013        NA -1596.489
## 10 -1634.153  -321.8118 -1627.254  -297.4857 -1714.222        NA -1619.614
## 11 -1638.809  -339.7972 -1638.651  -235.3223 -1697.522        NA -1600.215
## 12 -1651.200  -356.6188 -1657.735  -246.8790 -1648.850        NA -1503.723
## 13 -1610.809  -368.2300 -1652.178  -274.1442 -1678.902        NA -1526.846
## 14 -1631.756  -368.5831 -1675.125  -286.9349 -1696.832        NA -1507.216
## 15 -1654.930  -314.5325 -1698.286  -309.2119 -1729.029        NA -1540.117
##          EVE        VEE        VVE       EEV        VEV       EVV        VVV
## 1  -1917.887 -1917.8871 -1917.8871 -1917.887 -1917.8871 -1917.887 -1917.8871
## 2  -1669.526 -1203.3207 -1228.9500 -1648.839 -1103.5679 -1638.388 -1116.0753
## 3  -1616.758  -824.9792  -934.7076 -1539.757  -775.0671 -1590.253  -723.1515
## 4  -1594.288         NA         NA -1454.995  -527.2537 -1443.563  -644.5577
## 5  -1507.591         NA         NA -1464.755  -274.8117 -1473.835  -673.3259
## 6  -1542.227         NA  -869.4167 -1365.809  -112.9419 -1423.250  -688.9764
## 7  -1501.601         NA         NA -1380.076  -269.7791 -1462.430         NA
## 8  -1584.254         NA         NA -1435.210  -482.0204 -1405.946         NA
## 9  -1629.732         NA         NA -1497.408  -177.4555 -1488.555         NA
## 10 -1624.825         NA         NA -1449.370  -309.0454        NA         NA
## 11 -1650.595         NA         NA -1428.126  -498.2773 -1523.725         NA
## 12 -1460.493         NA         NA -1420.813  -523.8567 -1437.196         NA
## 13 -1491.367         NA         NA -1484.498  -538.1587 -1460.276         NA
## 14 -1547.356         NA         NA -1534.069  -420.4230 -1587.997         NA
## 15 -1529.920         NA         NA -1544.013  -585.6269 -1650.946         NA
## 
## Top 3 models based on the BIC criterion: 
##     VEV,6     VEV,9     VEI,9 
## -112.9419 -177.4555 -221.3332

En este caso, los \(3\) mejores modelos estan asociados a unos valores de \(k = (6, 9)\).

Existen otras técnicas para determinar el número óptimo de clusters, el paquete NbClust provee 30 indices para la determinación del número de clusters.

## *** : The Hubert index is a graphical method of determining the number of clusters.
##                 In the plot of Hubert index, we seek a significant knee that corresponds to a 
##                 significant increase of the value of the measure i.e the significant peak in Hubert
##                 index second differences plot. 
## 

## *** : The D index is a graphical method of determining the number of clusters. 
##                 In the plot of D index, we seek a significant knee (the significant peak in Dindex
##                 second differences plot) that corresponds to a significant increase of the value of
##                 the measure. 
##  
## ******************************************************************* 
## * Among all indices:                                                
## * 13 proposed 4 as the best number of clusters 
## * 3 proposed 5 as the best number of clusters 
## * 2 proposed 6 as the best number of clusters 
## * 4 proposed 7 as the best number of clusters 
## * 2 proposed 8 as the best number of clusters 
## 
##                    ***** Conclusion *****                            
##  
## * According to the majority rule, the best number of clusters is  4 
##  
##  
## *******************************************************************

En este caso es claro que el valor de \(k\) óptimo es \(4\).

Frecuencia con que el k = i.

Se sigue evidenciando que el valor óptimo de \(k\) es \(4\).

Por último se hace uso del criterio Calinski.

Este criterio es similar a la busqueda de la relación entre la varianza entre-cluster/varianza intra-cluster, se hace uso de la librería vegan.

Resmen de métodos.

Método de la silueta.

Método del codo.

Gap statistic.

Generación de clusterización según el k óptimo seleccionado

Según los diferentes métodos \(k = 4\), parecía ser muy óptimo para la generación de la clusterización.

##                          HERIDO MUERTO SOLO_DAÑOS kmm.cluster
## Aguas Frias                  58      0         20           3
## Aldea Pablo VI               52      1         10           3
## Alejandría                   95      1        274           3
## Alejandro Echavarría        487      2        182           2
## Alfonso López               648      5        309           2
## Altamira                    430      2        225           2
## Altavista                   181      0        119           3
## Altavista Sector Central     87      5         21           3
## Altos del Poblado           109      0        115           3
## Andalucía                   130      3         64           3

Análisis descriptivo de los agrupamientos.

El mayor porcentaje de accidentalidad en todas las cetegorías de gravedad lo presenta el Cluster \(3\), seguido del cluster \(4\), el tercero con mayor accidentalidad es el grupo \(1\) y finalmente los barrios que pertenecen al grupo \(2\) presentan el menor porcentaje de accidentalidad.

Accidentalidad baja.

Los barrios que pertenecen al grupo de accidentalidad baja, se caracterizan por presentar un total de \(34055\) accidentes, en el periodo de tiempo considerado para la realización de este agrupamiento que fue entre el 2014 y 2017, además hay un predominio de accidentes con una gravedad moderada (heridos), seguida de un número también considerable de gravedad por solo daños \((112767)\) y muy pocos muertos \((176)\).

Accidentalidad moderada.

Los barrios que pertenecen a este agrupamiento, se caracterizan por presentar un total de \(23087\) accidentes, en el periodo de tiempo considerado para la realización de este agrupamiento que fue entre el 2014 y 2017, además hay un predominio de accidentes con una gravedad leve (solo daños), seguida de un número también considerable de heridos \((10424)\) y muy pocos muertos \((143)\).

Accidentalidad media-alta

Los barrios que pertenecen al grupo de accidentalidad media-alta, se caracterizan por presentar un total de \(72066\) accidentes, en el periodo de tiempo considerado para la realización de este agrupamiento que fue entre el 2014 y 2017, además hay un predominio de accidentes con una gravedad moderada (heridos) | \(41929\) , seguido de un número también considerable de gravedad por solo daños \((29747)\) y muy pocos muertos \((390)\).

Accidentalidad alta

Los barrios que pertenecen al grupo de accidentalidad alta, se caracterizan por presentar un total de \(39429\) accidentes, en el periodo de tiempo considerado para la realización de este agrupamiento que fue entre el 2014 y 2017, además hay un predominio de accidentes con una gravedad leve (solo daños) | \(19670\), seguido de un número también considerable de gravedad por heridos \((19510)\) y muy pocos muertos \((249)\).

Material de apoyo

Video Promocional

App Shiny

Repositorio Git Hub

Referencias