Análisis datos DGT 2013 accidentes tráfico en España

Grupo R madRid 14 abril 2016

Pedro Concejero

Estudio provocado por la carta de la DGT de 2013 informando a propietarios de coches con > 10 años antiguedad

¿Reciente estudio? ¿De quién? ¿Dónde está?

Hay varios, que oscilan entre lo ¿burdo?

Y otro que publica este resultado ¿parcial?

Y de ahí que:

¿Datos?

Preguntamos por datos accidentalidad en España y DGT fue muy amable por twitter señalar la siguiente dirección web para microdatos, aunque ¡ojo! en el último momento en que he consultado esta web sólo dispone de datos hasta 2013.

Es interesante señalar que disponemos también de informes predefinidos, básicamente tablas que cruzan variables importantes de clasificación. (Y después de contestar a un captcha…)

Datos de 2013

Accidentes en España 2013

accid <- read.table("TABLA_ACCVICT_2013.csv",
                    header = T,
                    sep = ";",
                    colClasses = c(rep("character", 2),
                                   "integer",
                                   "character",
                                   rep("character", 4),
                                   "character", # para tener los cod "0xxxx"
                                   rep("numeric", 9),
                                   rep("factor", 18)),
                    quote = "")
dim(accid)
## [1] 89519    36

summary

summary(accid)
##  ID_ACCIDENTE           ANIO                MES         HORA_ACCIDENTE    
##  Length:89519       Length:89519       Min.   : 1.000   Length:89519      
##  Class :character   Class :character   1st Qu.: 4.000   Class :character  
##  Mode  :character   Mode  :character   Median : 7.000   Mode  :character  
##                                        Mean   : 6.646                     
##                                        3rd Qu.:10.000                     
##                                        Max.   :12.000                     
##                                                                           
##  COD_DIASEMANA      COD_PROVINCIA      COMUNIDAD_AUTONOMA
##  Length:89519       Length:89519       Length:89519      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##      ISLA            MUNICIPIO         TOTALVICTIMAS    TOT_VICTIMAS30D 
##  Length:89519       Length:89519       Min.   : 1.000   Min.   : 1.000  
##  Class :character   Class :character   1st Qu.: 1.000   1st Qu.: 1.000  
##  Mode  :character   Mode  :character   Median : 1.000   Median : 1.000  
##                                        Mean   : 1.412   Mean   : 1.412  
##                                        3rd Qu.: 2.000   3rd Qu.: 2.000  
##                                        Max.   :52.000   Max.   :52.000  
##                                                                         
##     MUERTOS         TOTAL_MU30D      HERIDOSGRAVES      TOTAL_HG30D    
##  Min.   :0.00000   Min.   :0.00000   Min.   : 0.0000   Min.   :0.0000  
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.: 0.0000   1st Qu.:0.0000  
##  Median :0.00000   Median :0.00000   Median : 0.0000   Median :0.0000  
##  Mean   :0.01663   Mean   :0.01877   Mean   : 0.1147   Mean   :0.1127  
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.: 0.0000   3rd Qu.:0.0000  
##  Max.   :9.00000   Max.   :9.00000   Max.   :10.0000   Max.   :9.8197  
##                                                                        
##   HERIDOSLEVES     TOTAL_HL30D     VEHICULOSIMPLICADOS COD_ZONA 
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000      1:37148  
##  1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 1.000      2:51455  
##  Median : 1.000   Median : 1.000   Median : 2.000      3:  767  
##  Mean   : 1.281   Mean   : 1.281   Mean   : 1.732      4:  149  
##  3rd Qu.: 1.000   3rd Qu.: 1.000   3rd Qu.: 2.000               
##  Max.   :47.000   Max.   :47.000   Max.   :45.000               
##                                                                 
##  ZONA_AGRUPADA   CARRETERA     COD_RED    COD_CALZADA   
##  1:37297              :51746   1:10490   9      :47938  
##  2:52222       A-7    :  769   2:10400   5      :27495  
##                A-2    :  683   3: 7737   2      : 9371  
##                N-340  :  674   4:59768   1      : 2463  
##                AP-7   :  614   5: 1124   6      : 1539  
##                A-4    :  443             8      :  353  
##                (Other):34590             (Other):  360  
##  TRAZADO_NO_INTERSEC COD_TIPOINTERSECCION ACOND_CALZADA COD_PRIORIDAD  
##   :33978              :55900              0:68514       8      :38600  
##  1:42823             1: 9670              1:14749       0      :24426  
##  2: 7925             2:13435              2:  480       4      : 5779  
##  3: 1152             3: 1286              3: 1074       2      : 5164  
##  4: 1344             4:  807              4:  509       3      : 5143  
##  5: 2297             5: 6853              5:  269       5      : 4586  
##                      6: 1568              6: 3924       (Other): 5821  
##  COD_SUPERFICIECALZADA COD_LUMINOSIDAD COD_FACTORESATMOSFERICOS
##  1      :74297         1:64110         1      :76573           
##  3      :12391         2: 3887         4      : 8187           
##  9      : 1427         3:13638         9      : 1800           
##  2      :  455         4: 3007         5      : 1724           
##  7      :  336         5: 4877         8      :  516           
##  4      :  226                         3      :  211           
##  (Other):  387                         (Other):  508           
##  VISIBILIDAD_RESTRINGIDA OTRA_CIRCUNSTANCIA IND_ACERAS COD_TIPOACCIDENTE
##  8      :50169           14     :74719       :10013    12     :18094    
##  0      :31972           0      :10130      N:62626    14     :16790    
##  2      : 2374           13     : 2556      S:16880    33     :10835    
##  7      : 2332           4      :  691                 13     : 6908    
##  4      : 1220           8      :  457                 71     : 6399    
##  1      :  587           3      :  279                 15     : 4827    
##  (Other):  865           (Other):  687                 (Other):25666    
##  DENSIDAD_CIRCULACION COD_MEDIDASESPECIALES
##  0:32178              0:24857              
##  1:52475              1:   24              
##  2: 3983              2:   11              
##  3:  883              3: 1061              
##                       4:63566              
##                                            
## 

La gran mayoría de accidentes, afortunadamente, no tienen víctimas mortales.

barplot(table(accid$MUERTOS))

Muchas variables son códigos

Leamos los códigos de la excel de accidentes

library(xlsx)
## Loading required package: rJava
## Loading required package: xlsxjars
prov <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "PROVINCIA",
                  encoding = "UTF-8",
                  startRow = 3)

comauto <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "COMUNIDAD_AUTONOMA",
                  encoding = "UTF-8",
                  startRow = 3)

zona <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "ZONA",
                  encoding = "UTF-8",
                  startRow = 3)

zonagrup <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "ZONA_AGRUPADA",
                  encoding = "UTF-8",
                  startRow = 3)

carret_titular <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "RED_CARRETERA",
                  encoding = "UTF-8",
                  startRow = 3)

tipovia <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "TIPO_VIA",
                  encoding = "UTF-8",
                  startRow = 3)

superficie <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "SUPERFICIE_CALZADA",
                  encoding = "UTF-8",
                  startRow = 3)

luminosidad <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "LUMINOSIDAD",
                  encoding = "UTF-8",
                  startRow = 3)

tiempoatmos <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "FACTORES_ATMOSFERICOS",
                  encoding = "UTF-8",
                  startRow = 3)

visibilidad <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "VISIBILIDAD_RESTRINGIDA",
                  encoding = "UTF-8",
                  startRow = 3)

otracircunstancia <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "OTRA_CIRCUNSTANCIA",
                  encoding = "UTF-8",
                  startRow = 3)

tipoaccidente <- read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "TIPO_ACCIDENTE",
                  encoding = "UTF-8",
                  startRow = 3)

densidad <-  read.xlsx(file = "Tabla_accidentes_diccionario_datos_desde_2011.xlsx", 
                  sheetName = "DENSIDAD_CIRCULACION",
                  encoding = "UTF-8",
                  startRow = 3)

Algunas pestañas de Excel dan problemas

Las metemos a mano

prioridad <- data.frame(valor = seq(0, 8),
                        etiqueta = c("SIN DATO",
                                     "AGENTE",
                                     "SEMÁFORO",
                                     "STOP",
                                     "CEDA EL PASO",
                                     "SOLO MARCAS VIALES",
                                     "PASO PARA PEATONES",
                                     "OTRA SEÑAL",
                                     "NINGUNA"))


acond_calzada <- data.frame(valor = seq(0, 6),
                            etiqueta = c("SIN DATO",
                                         "NADA ESPECIAL",
                                         "SÓLO ISLETAS O PASO PARA PEATONES",
                                         "PASO PARA PEATONES O ISLETAS EN CENTRO DE VÍA PRINCIPAL",
                                         "CARRIL CENTRAL DE ESPERA",
                                         "RAQUETA DE GIRO IZQUIERDA",
                                         "OTRO TIPO"))

tipo_interseccion <- data.frame(valor = seq(1, 6),
                                etiqueta = c("EN T Ó Y",
                                             "EN X Ó +",
                                             "ENLACE DE ENTRADA",
                                             "ENLACE DE SALIDA",
                                             "GIRATORIA",
                                             "OTROS"))

trazado <- data.frame(valor = seq(1, 5),
                      etiqueta = c("RECTA",
                                   "CURVA SUAVE",
                                   "CURVA FUERTE SIN SEÑALIZAR",
                                   "CURVA FUERTE CON SEÑAL Y SIN VELOCIDAD SEÑALIZADA",
                                   "CURVA FUERTE CON SEÑAL Y VELOCIDAD SEÑALIZADA"))

Mezclamos etiquetas de variables relevantes en tabla accidentes

zonagrup$zonagrup <- as.numeric(zonagrup$Valor == 1)
zonagrup$zonagrup[zonagrup$zonagrup == 0] <- "urbana"
zonagrup$zonagrup[zonagrup$zonagrup == 1] <- "interurb"
zonagrup$zonagrup <- as.factor(zonagrup$zonagrup)
accidentes <- merge(accid,
                    zonagrup[, c(1, 3)],
                    by.x = "ZONA_AGRUPADA",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

prioridad$paro_requerido <- "no"
prioridad$paro_requerido[prioridad$valor > 0] <- "sí"
prioridad$paro_requerido <- as.factor(prioridad$paro_requerido)
accidentes <- merge(accidentes,
                    prioridad[, c(1, 3)],
                    by.x = "COD_PRIORIDAD",
                    by.y = "valor",
                    all.x = T,
                    all.y = F)

visibilidad$visibilidad <- as.numeric(visibilidad$Valor > 0)
visibilidad$visibilidad[visibilidad$visibilidad == 0] <- "sin problema"
visibilidad$visibilidad[visibilidad$visibilidad == 1] <- "problemas"
visibilidad$visibilidad <- as.factor(visibilidad$visibilidad)
accidentes <- merge(accidentes,
                    visibilidad[, c(1, 3)],
                    by.x = "VISIBILIDAD_RESTRINGIDA",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

luminosidad$luminosidad <- as.numeric(luminosidad$Valor > 3)
luminosidad$luminosidad[luminosidad$luminosidad == 0] <- "buena/día"
luminosidad$luminosidad[luminosidad$luminosidad == 1] <- "mala/noche"
luminosidad$luminosidad <- as.factor(luminosidad$luminosidad)
accidentes <- merge(accidentes,
                    luminosidad[, c(1,3)],
                    by.x = "COD_LUMINOSIDAD",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

names(tiempoatmos)[2] <- "cond_atmosfericas"
tiempoatmos$cond_atmosfericas <- as.character(tiempoatmos$cond_atmosfericas)
tiempoatmos$cond_atmosfericas[tiempoatmos$cond_atmosfericas %in% 
                                c("BUEN TIEMPO", "OTRO")] <- "bueno"
tiempoatmos$cond_atmosfericas[tiempoatmos$cond_atmosfericas %in% 
                                c("NIEBLA LIGERA")] <- "niebla"
tiempoatmos$cond_atmosfericas[tiempoatmos$cond_atmosfericas %in% 
                                c("LLOVIZNANDO", "VIENTO FUERTE")] <- "lluvia/viento"
tiempoatmos$cond_atmosfericas[tiempoatmos$cond_atmosfericas %in% 
                                c("LLUVIA FUERTE", "NIEBLA INTENSA", 
                                  "GRANIZANDO", "NEVANDO")] <- "extremas"
tiempoatmos$cond_atmosfericas <- as.factor(tiempoatmos$cond_atmosfericas)
accidentes <- merge(accidentes,
                    tiempoatmos,
                    by.x = "COD_FACTORESATMOSFERICOS",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

densidad$densidad <- as.numeric(densidad$Valor == 1)
densidad$densidad[densidad$densidad == 0] <- "otra"
densidad$densidad[densidad$densidad == 1] <- "fluida"
densidad$densidad <- as.factor(densidad$densidad)
accidentes <- merge(accidentes,
                    densidad,
                    by.x = "DENSIDAD_CIRCULACION",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

names(tipoaccidente)[2] <- "tipoaccidente"
accidentes <- merge(accidentes,
                    tipoaccidente,
                    by.x = "COD_TIPOACCIDENTE",
                    by.y = "Valor",
                    all.x = T,
                    all.y = F)

library(stringr)
## Warning: package 'stringr' was built under R version 3.2.3
accidentes$tipogrupo <- word(accidentes$tipoaccidente)
accidentes$tipogrupo <- as.factor(accidentes$tipogrupo)
table(accidentes$tipogrupo)
## 
## Atropello  Colisión      Otro    Salida    Vuelco 
##     11603     51795      6399     16388      3334
summary(accidentes)
##  COD_TIPOACCIDENTE DENSIDAD_CIRCULACION COD_FACTORESATMOSFERICOS
##  12     :18094     0:32178              1      :76573           
##  14     :16790     1:52475              4      : 8187           
##  33     :10835     2: 3983              9      : 1800           
##  13     : 6908     3:  883              5      : 1724           
##  71     : 6399                          8      :  516           
##  15     : 4827                          3      :  211           
##  (Other):25666                          (Other):  508           
##  COD_LUMINOSIDAD VISIBILIDAD_RESTRINGIDA COD_PRIORIDAD   ZONA_AGRUPADA
##  1:64110         8      :50169           8      :38600   1:37297      
##  2: 3887         0      :31972           0      :24426   2:52222      
##  3:13638         2      : 2374           4      : 5779                
##  4: 3007         7      : 2332           2      : 5164                
##  5: 4877         4      : 1220           3      : 5143                
##                  1      :  587           5      : 4586                
##                  (Other):  865           (Other): 5821                
##  ID_ACCIDENTE           ANIO                MES         HORA_ACCIDENTE    
##  Length:89519       Length:89519       Min.   : 1.000   Length:89519      
##  Class :character   Class :character   1st Qu.: 4.000   Class :character  
##  Mode  :character   Mode  :character   Median : 7.000   Mode  :character  
##                                        Mean   : 6.646                     
##                                        3rd Qu.:10.000                     
##                                        Max.   :12.000                     
##                                                                           
##  COD_DIASEMANA      COD_PROVINCIA      COMUNIDAD_AUTONOMA
##  Length:89519       Length:89519       Length:89519      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##      ISLA            MUNICIPIO         TOTALVICTIMAS    TOT_VICTIMAS30D 
##  Length:89519       Length:89519       Min.   : 1.000   Min.   : 1.000  
##  Class :character   Class :character   1st Qu.: 1.000   1st Qu.: 1.000  
##  Mode  :character   Mode  :character   Median : 1.000   Median : 1.000  
##                                        Mean   : 1.412   Mean   : 1.412  
##                                        3rd Qu.: 2.000   3rd Qu.: 2.000  
##                                        Max.   :52.000   Max.   :52.000  
##                                                                         
##     MUERTOS         TOTAL_MU30D      HERIDOSGRAVES      TOTAL_HG30D    
##  Min.   :0.00000   Min.   :0.00000   Min.   : 0.0000   Min.   :0.0000  
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.: 0.0000   1st Qu.:0.0000  
##  Median :0.00000   Median :0.00000   Median : 0.0000   Median :0.0000  
##  Mean   :0.01663   Mean   :0.01877   Mean   : 0.1147   Mean   :0.1127  
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.: 0.0000   3rd Qu.:0.0000  
##  Max.   :9.00000   Max.   :9.00000   Max.   :10.0000   Max.   :9.8197  
##                                                                        
##   HERIDOSLEVES     TOTAL_HL30D     VEHICULOSIMPLICADOS COD_ZONA 
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000      1:37148  
##  1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 1.000      2:51455  
##  Median : 1.000   Median : 1.000   Median : 2.000      3:  767  
##  Mean   : 1.281   Mean   : 1.281   Mean   : 1.732      4:  149  
##  3rd Qu.: 1.000   3rd Qu.: 1.000   3rd Qu.: 2.000               
##  Max.   :47.000   Max.   :47.000   Max.   :45.000               
##                                                                 
##    CARRETERA     COD_RED    COD_CALZADA    TRAZADO_NO_INTERSEC
##         :51746   1:10490   9      :47938    :33978            
##  A-7    :  769   2:10400   5      :27495   1:42823            
##  A-2    :  683   3: 7737   2      : 9371   2: 7925            
##  N-340  :  674   4:59768   1      : 2463   3: 1152            
##  AP-7   :  614   5: 1124   6      : 1539   4: 1344            
##  A-4    :  443             8      :  353   5: 2297            
##  (Other):34590             (Other):  360                      
##  COD_TIPOINTERSECCION ACOND_CALZADA COD_SUPERFICIECALZADA
##   :55900              0:68514       1      :74297        
##  1: 9670              1:14749       3      :12391        
##  2:13435              2:  480       9      : 1427        
##  3: 1286              3: 1074       2      :  455        
##  4:  807              4:  509       7      :  336        
##  5: 6853              5:  269       4      :  226        
##  6: 1568              6: 3924       (Other):  387        
##  OTRA_CIRCUNSTANCIA IND_ACERAS COD_MEDIDASESPECIALES     zonagrup    
##  14     :74719       :10013    0:24857               interurb:37297  
##  0      :10130      N:62626    1:   24               urbana  :52222  
##  13     : 2556      S:16880    2:   11                               
##  4      :  691                 3: 1061                               
##  8      :  457                 4:63566                               
##  3      :  279                                                       
##  (Other):  687                                                       
##  paro_requerido       visibilidad        luminosidad   
##  no:24426       problemas   :57547   buena/día :81635  
##  sí:65093       sin problema:31972   mala/noche: 7884  
##                                                        
##                                                        
##                                                        
##                                                        
##                                                        
##      cond_atmosfericas          Etiqueta       densidad    
##  bueno        :78373   CONGESTIONADA:  883   fluida:52475  
##  extremas     : 2232   DENSA        : 3983   otra  :37044  
##  lluvia/viento: 8703   FLUIDA       :52475                 
##  niebla       :  211   SIN DATO     :32178                 
##                                                            
##                                                            
##                                                            
##                                                   tipoaccidente  
##  Colisión de vehículos en marcha (Frontolateral)         :18094  
##  Colisión de vehículos en marcha (Alcance)               :16790  
##  Atropello a peatón aislado o en grupo                   :10835  
##  Colisión de vehículos en marcha (Lateral)               : 6908  
##  Otro tipo de accidente                                  : 6399  
##  Colisión de vehículos en marcha (Múltiple o en caravana): 4827  
##  (Other)                                                 :25666  
##      tipogrupo    
##  Atropello:11603  
##  Colisión :51795  
##  Otro     : 6399  
##  Salida   :16388  
##  Vuelco   : 3334  
##                   
## 

Tipos de accidente con resultado mortal

Tipos de accidente (4 grupos) con resultado mortal

Mapa accidentes mortales 2013

Generamos una tabla de accidentes mortales por provincias para mapa

Ojo todos los tipos accidentes, todos los vehículos (luego nos centramos solo en turismos)

# Necesitamos código provincia como factor desde "01" hasta "52" (respetando los 0 iniciales)

accidentes$codeprov <- substr(accidentes$MUNICIPIO, 1, 2)
accidentes$codeprov[accidentes$codeprov == ""] <- NA
accidentes$codeprov[accidentes$codeprov == "00"] <- NA
accidentes$codeprov <- droplevels(as.factor(accidentes$codeprov))

t <- table(accidentes$codeprov[accidentes$MUERTOS > 0])

tabla <- as.data.frame(t)

save(tabla, file = "tabla_accid_mortales_por_prov.rda")

Factores de riesgo en TODOS los accidentes

Factores de riesgo (I)

Para todos los accidentes, todo tipo de vehículos, hay un factor esencial de riesgo, que son las condiciones de iluminación. En aquellos accidentes que no tienen lugar en intersecciones o regulación de tráfico (p.ej. stop) y que suceden en vías interurbanas, si es de noche con iluminación insuficiente o sin ninguna, el riesgo de tener víctimas mortales se duplica, y es el más alto de todas las situaciones, pasando de 16.4% (día o iluminación suficiente) a un 30.8% (iluminación insuficiente o ninguna). En vías urbanas, en cambio, el riesgo es de un 6% (en situaciones de visibilidad restringida).

Factores de riesgo (II)

Y todavía más, en vías interurbanas, de noche y sin iluminación, la condición atmosférica de niebla intensa hace que casi se quintuplique el riesgo de víctimas mortales frente a las otras condiciones atmosféricas (5% a 23.1%).

En zonas urbanas la influencia de iluminación es también determinante, en condiciones insuficientes o sin iluminación el riesgo pasa de 2 a un 4%.

Leemos los datos de vehículos

Unas mínimas manipulaciones necesarias:

vehic$ID_ACCIDENTE <- as.character(vehic$ID_ACCIDENTE)
vehic$ID_VEHICULO  <- as.factor(vehic$ID_VEHICULO)
vehic$ANIO_MATRICULA_VEHICULO[vehic$ANIO_MATRICULA_VEHICULO > 2015] <- NA
vehic$ANIO_MATRICULA_VEHICULO  <- as.factor(vehic$ANIO_MATRICULA_VEHICULO)
vehic$MES_MATRICULA_VEHICULO[vehic$MES_MATRICULA_VEHICULO == 99] <- NA
vehic$MES_MATRICULA_VEHICULO  <- as.factor(vehic$MES_MATRICULA_VEHICULO)
vehic$TIPO_VEHICULO  <- as.factor(vehic$TIPO_VEHICULO)
vehic$ESTADO_VEHICULO  <- as.factor(vehic$ESTADO_VEHICULO)
vehic$NUMERO_OCUPANTES_VEH[vehic$NUMERO_OCUPANTES_VEH == 999] <- NA
summary(vehic)
##  ID_ACCIDENTE        ID_VEHICULO    ANIO_MATRICULA_VEHICULO
##  Length:155004      1      :89339   2007   : 8760          
##  Class :character   2      :54951   2006   : 8609          
##  Mode  :character   3      : 7754   2005   : 7857          
##                     4      : 1845   2004   : 6969          
##                     5      :  569   2008   : 6500          
##                     6      :  206   (Other):61990          
##                     (Other):  340   NA's   :54319          
##  MES_MATRICULA_VEHICULO TIPO_VEHICULO    ESTADO_VEHICULO 
##  7      : 8425          22     :101505   0      :131978  
##  6      : 7779          11     : 20701   11     :  5016  
##  5      : 7107          43     :  8093   10     :   991  
##  3      : 7083          2      :  7574   1      :   201  
##  10     : 6503          1      :  6208   2      :    50  
##  (Other):41227          41     :  1764   (Other):    84  
##  NA's   :76880          (Other):  9159   NA's   : 16684  
##  NUMERO_OCUPANTES_VEH MERCANCIAS_PELIGROSAS VEHICULO_INCENDIADO
##  Min.   : 0.000        :68650                : 18413           
##  1st Qu.: 1.000       1:    1               N:136507           
##  Median : 1.000       2:    1               S:    84           
##  Mean   : 1.386       3:   25                                  
##  3rd Qu.: 2.000       4:   36                                  
##  Max.   :61.000       N:86291                                  
##  NA's   :18945                                                 
##       ANIO     
##  Min.   :2013  
##  1st Qu.:2013  
##  Median :2013  
##  Mean   :2013  
##  3rd Qu.:2013  
##  Max.   :2013  
## 

35% de los vehículos no tienen antiguedad

¡Tenemos 3 vehículos de 1900! Y 2 anteriores a la II Guerra Mundial (!). Y 54319 NA’s (!!!!!), nada menos que un 35%.

table(vehic$ANIO_MATRICULA_VEHICULO, exclude = NULL)
## 
##  1900  1910  1932  1943  1949  1950  1952  1955  1956  1957  1958  1959 
##     3     1     1     1     1     1     1     1     2     1     1     1 
##  1961  1962  1963  1964  1965  1966  1968  1969  1970  1971  1972  1973 
##     2     1     4     3     2     6     5     5     3     5     6    13 
##  1974  1975  1976  1977  1978  1979  1980  1981  1982  1983  1984  1985 
##     7     6     9    11    29    27    22    26    33    33    32    57 
##  1986  1987  1988  1989  1990  1991  1992  1993  1994  1995  1996  1997 
##    97   179   235   366   504   602   863   823  1122  1212  1812  2440 
##  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009 
##  3421  4798  5183  5525  5263  5846  6969  7857  8609  8760  6500  4802 
##  2010  2011  2012  2013  <NA> 
##  5033  4805  4193  2504 54319
round(table(vehic$ANIO_MATRICULA_VEHICULO, exclude = NULL)/nrow(vehic)*100, digits = 3)
## 
##   1900   1910   1932   1943   1949   1950   1952   1955   1956   1957 
##  0.002  0.001  0.001  0.001  0.001  0.001  0.001  0.001  0.001  0.001 
##   1958   1959   1961   1962   1963   1964   1965   1966   1968   1969 
##  0.001  0.001  0.001  0.001  0.003  0.002  0.001  0.004  0.003  0.003 
##   1970   1971   1972   1973   1974   1975   1976   1977   1978   1979 
##  0.002  0.003  0.004  0.008  0.005  0.004  0.006  0.007  0.019  0.017 
##   1980   1981   1982   1983   1984   1985   1986   1987   1988   1989 
##  0.014  0.017  0.021  0.021  0.021  0.037  0.063  0.115  0.152  0.236 
##   1990   1991   1992   1993   1994   1995   1996   1997   1998   1999 
##  0.325  0.388  0.557  0.531  0.724  0.782  1.169  1.574  2.207  3.095 
##   2000   2001   2002   2003   2004   2005   2006   2007   2008   2009 
##  3.344  3.564  3.395  3.772  4.496  5.069  5.554  5.651  4.193  3.098 
##   2010   2011   2012   2013   <NA> 
##  3.247  3.100  2.705  1.615 35.044

Filtramos los turismos

código 22 son turismos, representan el 65.5% de los datos. Los filtramos porque son el tipo de vehículos en los que nos vamos a concentrar

4 grupos por antiguedad

Mezclamos ambas fuentes de información

Mezclamos la información de accidentes con la de vehículos. Tenemos ID_ACCIDENTE e ID_VEHICULO que debemos cruzar con misma ID de accidente pero “VEHICULOSIMPLICADOS” en tabla accidentes…

datos <- merge(accidentes, 
               turismos,
               by.x = c("ID_ACCIDENTE", "VEHICULOSIMPLICADOS"),
               by.y = c("ID_ACCIDENTE", "ID_VEHICULO"),
               all.x = F,
               all.y = T)
dim(accid); dim(turismos); dim(datos)
## [1] 89519    36
## [1] 101505     12
## [1] 101505     56

(Hay 240 accidentes sin vehículo que no se mezclan porque generan todo NA’s)

summary(datos)
##  ID_ACCIDENTE       VEHICULOSIMPLICADOS COD_TIPOACCIDENTE
##  Length:101505      Length:101505       14     :11719    
##  Class :character   Class :character    12     :10504    
##  Mode  :character   Mode  :character    33     : 7890    
##                                         15     : 3776    
##                                         13     : 3648    
##                                         (Other):18267    
##                                         NA's   :45701    
##  DENSIDAD_CIRCULACION COD_FACTORESATMOSFERICOS COD_LUMINOSIDAD
##  0   :18506           1      :46457            1   :38741     
##  1   :33740           4      : 5888            2   : 2516     
##  2   : 2892           5      : 1343            3   : 8597     
##  3   :  666           9      : 1233            4   : 2212     
##  NA's:45701           8      :  319            5   : 3738     
##                       (Other):  564            NA's:45701     
##                       NA's   :45701                           
##  VISIBILIDAD_RESTRINGIDA COD_PRIORIDAD   ZONA_AGRUPADA    ANIO.x         
##  8      :32602           8      :24618   1   :25468    Length:101505     
##  0      :18349           0      :14244   2   :30336    Class :character  
##  2      : 1540           4      : 3632   NA's:45701    Mode  :character  
##  7      : 1432           3      : 3212                                   
##  4      :  950           2      : 3104                                   
##  (Other):  931           (Other): 6994                                   
##  NA's   :45701           NA's   :45701                                   
##       MES        HORA_ACCIDENTE     COD_DIASEMANA      COD_PROVINCIA     
##  Min.   : 1.00   Length:101505      Length:101505      Length:101505     
##  1st Qu.: 4.00   Class :character   Class :character   Class :character  
##  Median : 7.00   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 6.63                                                           
##  3rd Qu.:10.00                                                           
##  Max.   :12.00                                                           
##  NA's   :45701                                                           
##  COMUNIDAD_AUTONOMA     ISLA            MUNICIPIO         TOTALVICTIMAS  
##  Length:101505      Length:101505      Length:101505      Min.   : 1.00  
##  Class :character   Class :character   Class :character   1st Qu.: 1.00  
##  Mode  :character   Mode  :character   Mode  :character   Median : 1.00  
##                                                           Mean   : 1.51  
##                                                           3rd Qu.: 2.00  
##                                                           Max.   :15.00  
##                                                           NA's   :45701  
##  TOT_VICTIMAS30D    MUERTOS       TOTAL_MU30D    HERIDOSGRAVES  
##  Min.   : 1.00   Min.   :0.00    Min.   :0.00    Min.   : 0.0   
##  1st Qu.: 1.00   1st Qu.:0.00    1st Qu.:0.00    1st Qu.: 0.0   
##  Median : 1.00   Median :0.00    Median :0.00    Median : 0.0   
##  Mean   : 1.51   Mean   :0.01    Mean   :0.02    Mean   : 0.1   
##  3rd Qu.: 2.00   3rd Qu.:0.00    3rd Qu.:0.00    3rd Qu.: 0.0   
##  Max.   :15.00   Max.   :4.00    Max.   :4.00    Max.   :10.0   
##  NA's   :45701   NA's   :45701   NA's   :45701   NA's   :45701  
##   TOTAL_HG30D     HERIDOSLEVES    TOTAL_HL30D    COD_ZONA    
##  Min.   :0.00    Min.   : 0.00   Min.   : 0.00   1   :25378  
##  1st Qu.:0.00    1st Qu.: 1.00   1st Qu.: 1.00   2   :29866  
##  Median :0.00    Median : 1.00   Median : 1.00   3   :  470  
##  Mean   :0.10    Mean   : 1.39   Mean   : 1.39   4   :   90  
##  3rd Qu.:0.00    3rd Qu.: 2.00   3rd Qu.: 2.00   NA's:45701  
##  Max.   :9.82    Max.   :15.00   Max.   :15.00               
##  NA's   :45701   NA's   :45701   NA's   :45701               
##    CARRETERA     COD_RED       COD_CALZADA    TRAZADO_NO_INTERSEC
##         :30040   1   : 7474   9      :27709       :20265         
##  A-7    :  525   2   : 7070   5      :18087   1   :27165         
##  A-2    :  454   3   : 5123   2      : 6824   2   : 5276         
##  N-340  :  412   4   :35404   1      : 1847   3   :  683         
##  AP-7   :  399   5   :  733   6      :  847   4   :  892         
##  (Other):23974   NA's:45701   (Other):  490   5   : 1523         
##  NA's   :45701                NA's   :45701   NA's:45701         
##  COD_TIPOINTERSECCION ACOND_CALZADA   COD_SUPERFICIECALZADA
##         :35755        0      :42570   1      :45486        
##  2      : 7863        1      : 9331   3      : 8926        
##  1      : 5802        6      : 2378   9      :  641        
##  5      : 3942        3      :  708   2      :  320        
##  6      : 1006        4      :  331   4      :  163        
##  (Other): 1436        (Other):  486   (Other):  268        
##  NA's   :45701        NA's   :45701   NA's   :45701        
##  OTRA_CIRCUNSTANCIA IND_ACERAS   COD_MEDIDASESPECIALES     zonagrup    
##  14     :47554          : 5592   0   :14195            interurb:25468  
##  0      : 5666      N   :39641   1   :   18            urbana  :30336  
##  13     : 1438      S   :10571   2   :    7            NA's    :45701  
##  4      :  330      NA's:45701   3   :  658                            
##  8      :  283                   4   :40926                            
##  (Other):  533                   NA's:45701                            
##  NA's   :45701                                                         
##  paro_requerido       visibilidad        luminosidad   
##  no  :14244     problemas   :37455   buena/día :49854  
##  sí  :41560     sin problema:18349   mala/noche: 5950  
##  NA's:45701     NA's        :45701   NA's      :45701  
##                                                        
##                                                        
##                                                        
##                                                        
##      cond_atmosfericas          Etiqueta       densidad    
##  bueno        :47690   CONGESTIONADA:  666   fluida:33740  
##  extremas     : 1752   DENSA        : 2892   otra  :22064  
##  lluvia/viento: 6207   FLUIDA       :33740   NA's  :45701  
##  niebla       :  155   SIN DATO     :18506                 
##  NA's         :45701   NA's         :45701                 
##                                                            
##                                                            
##                                                   tipoaccidente  
##  Colisión de vehículos en marcha (Alcance)               :11719  
##  Colisión de vehículos en marcha (Frontolateral)         :10504  
##  Atropello a peatón aislado o en grupo                   : 7890  
##  Colisión de vehículos en marcha (Múltiple o en caravana): 3776  
##  Colisión de vehículos en marcha (Lateral)               : 3648  
##  (Other)                                                 :18267  
##  NA's                                                    :45701  
##      tipogrupo        codeprov     ANIO_MATRICULA_VEHICULO
##  Atropello: 8449   28     : 8491   2006   : 5593          
##  Colisión :33115   08     : 6897   2007   : 5541          
##  Otro     : 2004   46     : 2320   2005   : 5409          
##  Salida   :11752   41     : 2313   2004   : 5218          
##  Vuelco   :  484   07     : 2167   2003   : 4629          
##  NA's     :45701   (Other):21210   (Other):45011          
##                    NA's   :58107   NA's   :30104          
##  MES_MATRICULA_VEHICULO TIPO_VEHICULO    ESTADO_VEHICULO
##  7      : 6040          22     :101505   0      :87686  
##  6      : 5647          1      :     0   11     : 2855  
##  3      : 5334          2      :     0   10     :  537  
##  5      : 5126          10     :     0   1      :  125  
##  12     : 4814          11     :     0   2      :   22  
##  (Other):29711          21     :     0   (Other):   21  
##  NA's   :44833          (Other):     0   NA's   :10259  
##  NUMERO_OCUPANTES_VEH MERCANCIAS_PELIGROSAS VEHICULO_INCENDIADO
##  Min.   : 0.000        :41609                :11368            
##  1st Qu.: 1.000       1:    0               N:90081            
##  Median : 1.000       2:    1               S:   56            
##  Mean   : 1.459       3:    0                                  
##  3rd Qu.: 2.000       4:    5                                  
##  Max.   :41.000       N:59890                                  
##  NA's   :11537                                                 
##      ANIO.y          edad               gredad     
##  Min.   :2013   Min.   :1900    (1900,1998]:11394  
##  1st Qu.:2013   1st Qu.:2000    (1998,2003]:21117  
##  Median :2013   Median :2004    (2003,2008]:25811  
##  Mean   :2013   Mean   :2004    (2008,2013]:13078  
##  3rd Qu.:2013   3rd Qu.:2007    NA's       :30105  
##  Max.   :2013   Max.   :2013                       
##                 NA's   :30104

Problemas con los datos

Hay nada menos que 45701 turismos en la tabla que no figuran en la tabla de accidentes.

Y nos falta la edad, el año de matrícula, de 30104 vehículos.

12880 de ellos de la comunidad autónoma “Cataluña”

table(datos$COMUNIDAD_AUTONOMA, datos$gredad, exclude = NULL)
##       
##        (1900,1998] (1998,2003] (2003,2008] (2008,2013]  <NA>
##   1           1088        2491        3122        1375   841
##   10           617        1218        1511         739   368
##   11           177         280         268         102    56
##   12           604         837         867         342    96
##   13           971        2192        3011        1765   776
##   14           119         170         167          63    22
##   15            54          72          72          40     3
##   16            85         133         138          62    10
##   17           266         635         711         320   954
##   18            78         122         171          74    17
##   2            211         352         379         172    47
##   3            340         418         493         236   104
##   4            215         640         710         470   191
##   5            327         422         501         213    84
##   6            111         164         187          86    28
##   7            656         874         897         446   132
##   8            337         524         600         234    46
##   9            154         236         286         129 12880
##   <NA>        4984        9337       11720        6210 13450

¿Nos afecta esta falta de datos?

t <- table(datos$COMUNIDAD_AUTONOMA[which(datos$MUERTOS > 0)], exclude = NULL)
print(t)
## 
##    1   10   11   12   13   14   15   16   17   18    2    3    4    5    6 
##  130   55   21   63   54   27   17    7   25    1   25   19   19   21   13 
##    7    8    9 <NA> 
##   74   60  111    0
t <- table(datos$COMUNIDAD_AUTONOMA[datos$MUERTOS > 0]); 
print(t)
## 
##   1  10  11  12  13  14  15  16  17  18   2   3   4   5   6   7   8   9 
## 130  55  21  63  54  27  17   7  25   1  25  19  19  21  13  74  60 111
print(sum(t))
## [1] 742
print(sum(t)/sum(table(accid$MUERTOS[accid$MUERTOS > 0])))
## [1] 0.5504451

Los accidentes con víctimas mortales parece que sí disponen de la información de comunidad autónoma.

Según estos datos, turismos están involucrados en un 55% de accidentes con víctimas mortales

Intentamos corroborar hipótesis del “doble riesgo de fallecer”

Frecuencias absolutas muertos en accidentes turismos

Nos falta dato de antiguedad de 50 vehículos en accidentes mortales

# table(datos$gredad, datos$MUERTOS)
table(datos$gredad[datos$MUERTOS > 0])
## 
## (1900,1998] (1998,2003] (2003,2008] (2008,2013] 
##         139         200         245         108
#sum(table(datos$gredad[datos$MUERTOS > 0]))  # Verificamos que contabilizamos mayoría de muertes

Frecuencias proporcionales a número total de accidentes

round(table(datos$gredad, datos$MUERTOS) / length(unique(datos$ID_ACCIDENTE)), digits = 4) * 10000
##              
##                  0    1    2    3    4
##   (1900,1998]  890   18    2    0    0
##   (1998,2003] 1644   26    3    0    0
##   (2003,2008] 1965   30    4    1    0
##   (2008,2013]  959   14    1    0    0

número de muertos supuesto accidente por grupo edad:

  • 16 muertos por 10000 accidentes turismo <5 años
  • 41 muertos por 10000 accidentes turismo 5-10 años
  • 32 muertos por 10000 accidentes turismo 10-15 años
  • 22 de 10000 coche > 15 años

¿Validamos o falseamos?

¡¡Yo NO consigo esa “proporción” ni esa relación que concluye informe Línea Directa!!

¡¡SÍ observo esa relación 2 a 1 en los vehículos de entre 5 y 10 años y 10 y 15 años!!

¿Alguna variable importante más?

Mosaic plots están muy bien en librería vcd

library(vcd)
## Loading required package: grid
#?mosaic

DEBEMOS SABER QUE FALTAN CASI TODOS LOS DE CATALUÑA (9), SON NA’s

Esa hipótesis, que vehículos más viejos tienen mayor “riesgo” sólo se sostiene en comunidades autónomas concretas, las menos pobladas. En suma: menos accidentes pero más graves para coches viejos (>20 años) en

  • 2 Aragón
  • 3 Asturias, Principado de
  • 5 Canarias
  • 6 Cantabria
  • 7 Castilla y León
  • 8 Castilla-La Mancha
  • 11 Extremadura
  • 12 Galicia
  • 14 Murcia, Región de
  • 15 Navarra, Comunidad Foral de
  • 16 Rioja, La

Sin embargo sucede precisamente todo lo contrario en las comunidades autónomas más pobladas:

  • 1 Andalucía
  • 4 Balears, Illes
  • 13 Madrid, Comunidad de
  • 17 País Vasco

(Etiquetados como Cataluña sólo tenemos 1741 casos, versus p.ej., 8715 Madrid -> Datos de Cataluña vienen en su mayoría sin código CA)

Insistimos, ¿qué puede estar pasando?

El mismo informe de línea directa da una pista esencial

Conclusiones

  • Yo no he encontrado soporte a la afirmación de Línea Directa sobre vehículos > 15 años.
  • La afirmación de la DGT es calculadamente ambigua.
  • Para comunicar los riesgos es imprescindible definir adecuadamente el riesgo.
  • Las comparaciones “son odiosas” (por eso hay que hacerlas con justicia).

Más sobre este tema próximamente

Mail: pedro.concejerocerezo@gmail.com

Twitter: [@ConcejeroPedro ](https://twitter.com/ConcejeroPedro)

blog: https://pedroconcejero.wordpress.com

¡Gracias!

REFERENCIAS

APÉNDICE ACCIDENTES POR MES Y DÍA DE SEMANA

Día de la semana (lunes a domingo) por meses, todos los accidentes. sigue patrón de puentes, vacaciones, y retorno de las mismas.

mosaic(~ MES +
         COD_DIASEMANA,
       data = accidentes,
       shade = T)

En cuanto a accidentes mortales, el patrón es… casi no hay patrón, es casi puro azar, salvo para el 15 de agosto (fue jueves) y comienzo puente de 1 mayo (31 abril, fue martes).

Pero sí parece haber asociación de los accidentes nocturnos y el invierno,

mosaic(~ luminosidad +
         MES +
         COD_DIASEMANA 
         ,
       data = accidentes[accidentes$MUERTOS > 0,],
       shade = T)

APÉNDICE - EXPLORACIONES PRELIMINARES Y PRUEBAS DE ÁRBOLES DECISIÓN

Exploración de factores de riesgo en TODOS los accidentes

library(party)
## Warning: package 'party' was built under R version 3.2.4
## Loading required package: mvtnorm
## Warning: package 'mvtnorm' was built under R version 3.2.3
## Loading required package: modeltools
## Warning: package 'modeltools' was built under R version 3.2.3
## Loading required package: stats4
## 
## Attaching package: 'modeltools'
## The following object is masked from 'package:rJava':
## 
##     clone
## Loading required package: strucchange
## Warning: package 'strucchange' was built under R version 3.2.4
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.2.4
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 3.2.4
## 
## Attaching package: 'strucchange'
## The following object is masked from 'package:stringr':
## 
##     boundary
accid$target <- as.numeric(accid$MUERTOS > 0)

accid$target <- as.factor(accid$target)

La visibilidad es el principal factor que influye en que un accidente resulte con víctimas mortales, en el conjunto global de accidentes (todo tipo de vehículos, todo tipo de accidentes). De tal modo que en situaciones de noche y sin iluminación de la vía, condiciones de visibilidad restringida CONFIGURACIÓN DEL TERRENO FACTORES ATMOSFÉRICOS DESLUMBRAMIENTO POLVO O HUMO

producen que se duplique la proporción de accidentes (0.05 vs. 0.10) con víctimas mortales.

Asimismo en curvas, situaciones de baja visibilidad como son el terreno o los deslumbramientos hacen que esta proporción pase de 0.035 a 0.07. Estas proporciones corresponden a situaciones de iluminación de día o noche con iluminación y por eso son mucho menores que las anteriores de noche sin iluminación.

tree.2 <- ctree(target ~ ZONA_AGRUPADA + 
                #         CARRETERA + 
                #         COD_RED + 
                #         COD_CALZADA +
                         TRAZADO_NO_INTERSEC + COD_TIPOINTERSECCION + 
                #         ACOND_CALZADA + 
                         COD_PRIORIDAD +
                #         COD_SUPERFICIECALZADA + 
                         COD_LUMINOSIDAD + 
                         COD_FACTORESATMOSFERICOS +
                         VISIBILIDAD_RESTRINGIDA + 
                #         OTRA_CIRCUNSTANCIA + 
                #         COD_TIPOACCIDENTE + 
                          DENSIDAD_CIRCULACION
                , 
                  data = accid, 
                  controls = ctree_control(maxdepth = 5)
  )
  
  print(tree.2)  
## 
##   Conditional inference tree with 13 terminal nodes
## 
## Response:  target 
## Inputs:  ZONA_AGRUPADA, TRAZADO_NO_INTERSEC, COD_TIPOINTERSECCION, COD_PRIORIDAD, COD_LUMINOSIDAD, COD_FACTORESATMOSFERICOS, VISIBILIDAD_RESTRINGIDA, DENSIDAD_CIRCULACION 
## Number of observations:  89519 
## 
## 1) VISIBILIDAD_RESTRINGIDA == {0}; criterion = 1, statistic = 857.315
##   2) TRAZADO_NO_INTERSEC == {1, 2}; criterion = 0.998, statistic = 19.129
##     3) COD_LUMINOSIDAD == {1, 2, 4, 5}; criterion = 0.952, statistic = 23.513
##       4)*  weights = 15494 
##     3) COD_LUMINOSIDAD == {3}
##       5)*  weights = 3182 
##   2) TRAZADO_NO_INTERSEC == {, 4}
##     6)*  weights = 13296 
## 1) VISIBILIDAD_RESTRINGIDA == {1, 2, 3, 4, 5, 6, 7, 8}
##   7) COD_PRIORIDAD == {0}; criterion = 1, statistic = 883.399
##     8) ZONA_AGRUPADA == {1}; criterion = 1, statistic = 48.902
##       9) COD_LUMINOSIDAD == {1, 2, 3}; criterion = 0.985, statistic = 16.984
##         10)*  weights = 530 
##       9) COD_LUMINOSIDAD == {4, 5}
##         11)*  weights = 146 
##     8) ZONA_AGRUPADA == {2}
##       12)*  weights = 568 
##   7) COD_PRIORIDAD == {1, 2, 3, 4, 5, 6, 7, 8}
##     13) ZONA_AGRUPADA == {1}; criterion = 1, statistic = 261.973
##       14) COD_LUMINOSIDAD == {5}; criterion = 1, statistic = 85.46
##         15) COD_FACTORESATMOSFERICOS == {2, 6}; criterion = 1, statistic = 39.827
##           16)*  weights = 39 
##         15) COD_FACTORESATMOSFERICOS == {1, 3, 4, 5, 7, 8, 9}
##           17)*  weights = 3623 
##       14) COD_LUMINOSIDAD == {1, 2, 3, 4}
##         18) TRAZADO_NO_INTERSEC == {, 5}; criterion = 1, statistic = 73.38
##           19)*  weights = 9394 
##         18) TRAZADO_NO_INTERSEC == {1, 2, 3, 4}
##           20)*  weights = 16386 
##     13) ZONA_AGRUPADA == {2}
##       21) COD_LUMINOSIDAD == {4, 5}; criterion = 1, statistic = 91.76
##         22)*  weights = 572 
##       21) COD_LUMINOSIDAD == {1, 2, 3}
##         23) TRAZADO_NO_INTERSEC == {, 1, 5}; criterion = 1, statistic = 50.188
##           24)*  weights = 24619 
##         23) TRAZADO_NO_INTERSEC == {2, 3, 4}
##           25)*  weights = 1670
  plot(tree.2, type = "simple")

Para todos los accidentes, todo tipo de vehículos, hay un factor esencial de riesgo, que son las condiciones de iluminación. En aquellos accidentes que no tienen lugar en intersecciones o regulación de tráfico (p.ej. stop) y que suceden en vías interurbanas, si es de noche con iluminación insuficiente o sin ninguna, el riesgo de tener víctimas mortales se duplica, y es el más alto de todas las situaciones, pasando de 16.4% (día o iluminación suficiente) a un 30.8% (iluminación insuficiente o ninguna). En vías urbanas, en cambio, el riesgo es de un 6% (en situaciones de visibilidad restringida).

Y todavía más, en vías interurbanas, de noche y sin iluminación, la condición atmosférica de niebla intensa hace que casi se quintuplique el riesgo de víctimas mortales frente a las otras condiciones atmosféricas (5% a 23.1%).

En zonas urbanas la influencia de iluminación es también determinante, en condiciones insuficientes o sin iluminación el riesgo pasa de 2 a un 4%.

EXPLORACIÓN FACTORES DE RIESGO

accidentes$target <- as.numeric(accidentes$MUERTOS > 0)


tree.3 <- ctree(target ~ zonagrup + 
                         paro_requerido + 
                         luminosidad + 
                         cond_atmosfericas +
                         visibilidad + 
                         densidad +
                         tipogrupo
                , 
                  data = accidentes, 
                  controls = ctree_control(maxdepth = 5)
  )
  
  plot(tree.3, type = "simple")

png(filename = "decision_tree.png",
    width = 1024, height = 768)
plot(tree.3, type = "simple")
dev.off()
## png 
##   2

Calendarplot de la librería openair