1. Contextualización de la Base de Datos:

Esta base de datos contiene información sobre los accidentes de tránsito ocurridos en el distrito de Barranquilla según los informes policiales de accidentes de tránsito (IPAT). La información de la vigencia actual es preliminar y está sujeta a cambios.

# Leer los datos
datos <- read_csv("C:/Users/user/Documents/Accidentalidad_en_Barranquilla_20240817.csv",
                  locale = locale(encoding = "UTF-8"), 
                  skip_empty_rows = TRUE)
## Rows: 25610 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (6): HORA_ACCIDENTE, GRAVEDAD_ACCIDENTE, CLASE_ACCIDENTE, SITIO_EXACTO_...
## dbl  (4): CANT_HERIDOS_EN _SITIO_ACCIDENTE, CANT_MUERTOS_EN _SITIO_ACCIDENTE...
## dttm (1): FECHA_ACCIDENTE
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#Mostrar la tabla
kable(datos[1:20,], caption= "Tabla 1: Base de datos, Accidentalidad en Barranquilla") %>%
  kable_styling(full_width = F) %>%
  scroll_box(width = "900px", height = "450px")
Tabla 1: Base de datos, Accidentalidad en Barranquilla
FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN _SITIO_ACCIDENTE CANT_MUERTOS_EN _SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE MES_ACCIDENTE DIA_ACCIDENTE
2018-01-01 01:30:00:am Con heridos Atropello CL 87 9H 24 1 NA 1 2018 January Mon
2018-01-01 02:00:00:pm Solo daños Choque CL 110 CR 46 NA NA 1 2018 January Mon
2018-01-01 04:00:00:am Solo daños Choque AV CIRCUNVALAR CR 9G NA NA 1 2018 January Mon
2018-01-01 04:30:00:am Solo daños Choque CLLE 72 CRA 29 NA NA 1 2018 January Mon
2018-01-01 05:20:00:pm Solo daños Choque VIA 40 CALLE 75 NA NA 1 2018 January Mon
2018-01-01 06:00:00:pm Con heridos Choque CR 8 CL 41 3 NA 1 2018 January Mon
2018-01-01 12:50:00:am Con heridos Atropello CLLE 119B CRA 11B 1 NA 1 2018 January Mon
2018-01-02 02:30:00:pm Solo daños Choque CARRERA 25 37-42 NA NA 1 2018 January Tue
2018-01-02 03:00:00:pm Solo daños Choque CR 51B 1D 35 NA NA 1 2018 January Tue
2018-01-02 03:45:00:pm Solo daños Choque VIA 40 CLLE 85 NA NA 1 2018 January Tue
2018-01-02 04:10:00:pm Solo daños Choque CL 19 CR 2C NA NA 1 2018 January Tue
2018-01-02 05:30:00:pm Solo daños Choque VIA 40 CL 77B NA NA 1 2018 January Tue
2018-01-02 05:45:00:pm Solo daños Choque CL 89 CON 75B NA NA 1 2018 January Tue
2018-01-02 07:00:00:pm Solo daños Choque CL 47 CR 38 NA NA 1 2018 January Tue
2018-01-02 07:30:00:pm Solo daños Choque CLLE 96 CRA 64 NA NA 1 2018 January Tue
2018-01-02 08:40:00:pm Con heridos Choque CIRCUNVALAR CR 9G 2 NA 1 2018 January Tue
2018-01-02 09:00:00:am Solo daños Choque CLLE 39 CRA 27 NA NA 1 2018 January Tue
2018-01-02 11:00:00:pm Con heridos Choque CL 30 CR 30 1 NA 1 2018 January Tue
2018-01-03 02:20:00:pm Solo daños Choque CL 110 CR 6Q NA NA 1 2018 January Wed
2018-01-03 03:15:00:pm Solo daños Choque CL 19 CR 5C NA NA 1 2018 January Wed

Las variables son:

# Mostrar nombres de las variables

variables <- names(datos)
variables
##  [1] "FECHA_ACCIDENTE"                  "HORA_ACCIDENTE"                  
##  [3] "GRAVEDAD_ACCIDENTE"               "CLASE_ACCIDENTE"                 
##  [5] "SITIO_EXACTO_ACCIDENTE"           "CANT_HERIDOS_EN _SITIO_ACCIDENTE"
##  [7] "CANT_MUERTOS_EN _SITIO_ACCIDENTE" "CANTIDAD_ACCIDENTES"             
##  [9] "AÑO_ACCIDENTE"                    "MES_ACCIDENTE"                   
## [11] "DIA_ACCIDENTE"

Significado de cada variable:

-FECHA_ACCIDENTE : la fecha en la que ocurrió el accidente.
-HORA_ACCIDENTE : la hora en la que ocurrió el accidente.
-GRAVEDAD_ACCIDENTE : qué tan grave fue el accidente, en términos de si hubo heridos, muertos o daños. -CLASE_ACCIDENTE : qué tipo de accidente es (atropello, choque, caida ocupante, volcamiento, incendio, otro).
-SITIO_EXACTO_ACCIDENTE : dirección del sitio donde ocurrió el accidente.
-CANT_HERIDOS_EN _SITIO_ACCIDENTE : cantidad de heridos en el accidente.
-CANT_MUERTOS_EN _SITIO_ACCIDENTE : cantidad de muertos en el accidente.
-CANTIDAD_ACCIDENTES : cantidad de accidentes en ese momento.
-AÑO_ACCIDENTE : el año en el que ocurrió el accidente.
-MES_ACCIDENTE : el mes en el que ocurrió el accidente.
-DIA_ACCIDENTE : el día de la semana en el que ocurrió el accidente.

#Realizo el cambio porque esta variable realmente no se utiliza para cálculos numéricos, es de tipo caracter.
datos$AÑO_ACCIDENTE <- as.character(datos$AÑO_ACCIDENTE) 
#Verifico si hay algun problema en la base de datos, sin embargo, todo está funcionando bien
print(problems(datos) )
## # A tibble: 0 × 5
## # ℹ 5 variables: row <int>, col <int>, expected <chr>, actual <chr>, file <chr>

Esto indica que no se encontraron problemas en los datos, ya que el tibble tiene 0 filas y 5 columnas, es decir el tibble está vacío.

2. ANÁLISIS DE LAS CARACTERÍSTICAS DE LA BASE DE DATOS:

Verificamos los datos viendo el encabezado y la cola de los datos:

head(datos)
## # A tibble: 6 × 11
##   FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##   <dttm>              <chr>          <chr>              <chr>          
## 1 2018-01-01 00:00:00 01:30:00:am    Con heridos        Atropello      
## 2 2018-01-01 00:00:00 02:00:00:pm    Solo daños         Choque         
## 3 2018-01-01 00:00:00 04:00:00:am    Solo daños         Choque         
## 4 2018-01-01 00:00:00 04:30:00:am    Solo daños         Choque         
## 5 2018-01-01 00:00:00 05:20:00:pm    Solo daños         Choque         
## 6 2018-01-01 00:00:00 06:00:00:pm    Con heridos        Choque         
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
tail(datos)
## # A tibble: 6 × 11
##   FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##   <dttm>              <chr>          <chr>              <chr>          
## 1 2024-06-29 00:00:00 10:00:00:pm    Con heridos        Choque         
## 2 2024-06-29 00:00:00 10:15:00:am    Con heridos        Choque         
## 3 2024-06-30 00:00:00 02:00:00:am    Con heridos        Choque         
## 4 2024-06-30 00:00:00 02:00:00:pm    Con heridos        Choque         
## 5 2024-06-30 00:00:00 05:00:00:pm    Con muertos        Choque         
## 6 2024-06-30 00:00:00 06:30:00:pm    Con heridos        Atropello      
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

Dimensión (número de filas y columnas):

dim(datos)
## [1] 25610    11

Filas: 25610
Columnas: 11

Analizamos ahora la estructura de la base de datos:

str(datos)
## spc_tbl_ [25,610 × 11] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ FECHA_ACCIDENTE                 : POSIXct[1:25610], format: "2018-01-01" "2018-01-01" ...
##  $ HORA_ACCIDENTE                  : chr [1:25610] "01:30:00:am" "02:00:00:pm" "04:00:00:am" "04:30:00:am" ...
##  $ GRAVEDAD_ACCIDENTE              : chr [1:25610] "Con heridos" "Solo daños" "Solo daños" "Solo daños" ...
##  $ CLASE_ACCIDENTE                 : chr [1:25610] "Atropello" "Choque" "Choque" "Choque" ...
##  $ SITIO_EXACTO_ACCIDENTE          : chr [1:25610] "CL 87 9H 24" "CL 110 CR 46" "AV CIRCUNVALAR CR 9G" "CLLE 72 CRA 29" ...
##  $ CANT_HERIDOS_EN _SITIO_ACCIDENTE: num [1:25610] 1 NA NA NA NA 3 1 NA NA NA ...
##  $ CANT_MUERTOS_EN _SITIO_ACCIDENTE: num [1:25610] NA NA NA NA NA NA NA NA NA NA ...
##  $ CANTIDAD_ACCIDENTES             : num [1:25610] 1 1 1 1 1 1 1 1 1 1 ...
##  $ AÑO_ACCIDENTE                   : chr [1:25610] "2018" "2018" "2018" "2018" ...
##  $ MES_ACCIDENTE                   : chr [1:25610] "January" "January" "January" "January" ...
##  $ DIA_ACCIDENTE                   : chr [1:25610] "Mon" "Mon" "Mon" "Mon" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   FECHA_ACCIDENTE = col_datetime(format = ""),
##   ..   HORA_ACCIDENTE = col_character(),
##   ..   GRAVEDAD_ACCIDENTE = col_character(),
##   ..   CLASE_ACCIDENTE = col_character(),
##   ..   SITIO_EXACTO_ACCIDENTE = col_character(),
##   ..   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` = col_double(),
##   ..   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` = col_double(),
##   ..   CANTIDAD_ACCIDENTES = col_double(),
##   ..   AÑO_ACCIDENTE = col_double(),
##   ..   MES_ACCIDENTE = col_character(),
##   ..   DIA_ACCIDENTE = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

Lo que nos mostro el tipo de cada variable, en general:

-FECHA_ACCIDENTE : character (nominal), no se usa para cálculos en el tiempo.

-HORA_ACCIDENTE : character (nominal), no se usa para cálculos, solo como cadena de texto.

-GRAVEDAD_ACCIDENTE : character (nominal), no hay un orden, solo se clasifican en heridos, muertos o solo daños.

-CLASE_ACCIDENTE : character (nominal), no hay un orden, solo se clasifican en atropello, choque, caida ocupante, volcamiento, incendio, otro.

-SITIO_EXACTO_ACCIDENTE : character (nominal), no hay un orden en las direcciones.

-CANT_HERIDOS_EN _SITIO_ACCIDENTE : numeric (discreto), el número de heridos es un conteo discreto.

-CANT_MUERTOS_EN _SITIO_ACCIDENTE : numeric (discreto), el número de muertos es un conteo discreto.

-CANTIDAD_ACCIDENTES : numeric (discreto), la cantidad de accidentes es cun conteo discreto.

-AÑO_ACCIDENTE : character (nominal), el año puede tomarse como categórica o numérica; sin embargo, en este trabajo no se realizan cálculos matemáticos con este, solo se usa para comparación.

-MES_ACCIDENTE : character (nominal), los meses tienen un orden natural, pero se trabajan como cadena de texto no por número.

-DIA_ACCIDENTE : character (nominal), se refiere a los nombres de los días, no tiene un orden específico en este caso.

3. ANÁLISIS DE LAS VARIABLES SEGÚN SU TIPO Y USO DE LA FUNCIÓN TABLE:

Nota: En este apartado se juntaron los puntos 3 y 5.

Análisis Descriptivo Individual Variables Numéricas:

Cantidad de heridos en accidente:

summary(datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   1.000   1.000   1.472   2.000  42.000   15626
table(datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`)
## 
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
## 6911 2301  469  155   57   29   14    9    6    7    6    7    2    2    1    1 
##   18   19   20   21   22   23   42 
##    1    1    1    1    1    1    1
frecuenciascantheridos <- data.frame(
  cantheridos = c("1", "2", "3", "4", "5", "6", "7","8","9","10","11","12","13","14","15","16","18","19","20","21","22","23","42"),
  Frecuenciacantheridos = c(6911,2301,469,155,57,29,14,9,6,7,6,7,2,2,1,1,1,1,1,1,1,1,1)
)
ggplot(frecuenciascantheridos, aes(x =  reorder(cantheridos, -Frecuenciacantheridos), y = Frecuenciacantheridos)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de cantidad de heridos en sitios de accidentes",
       x = "Cantidad de heridos",
       y = "Frecuencia") +
  theme_minimal()

Cantidad de muertos en accidente:

summary(datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   1.000   1.000   1.036   1.000   2.000   25358
table(datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`)
## 
##   1   2 
## 243   9
frecuenciascantmuertos <- data.frame(
  cantmuertos = c("1","2"),
  Frecuenciadiascantmuertos = c(243,9)
)
ggplot(frecuenciascantmuertos, aes(x =  reorder(cantmuertos, -Frecuenciadiascantmuertos), y = Frecuenciadiascantmuertos)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de la cantidad de muertos en sitios de accidentes",
       x = "Cantidad de muertos",
       y = "Frecuencia") +
  theme_minimal()

Cantidad de accidentes:

summary(datos$CANTIDAD_ACCIDENTES)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1       1       1       1       1       2
table(datos$CANTIDAD_ACCIDENTES)
## 
##     1     2 
## 25605     5
frecuenciascantacc <- data.frame(
  cantacc = c("1","2"),
  Frecuenciadiascantacc = c(25605,5)
)
ggplot(frecuenciascantacc, aes(x =  reorder(cantacc, -Frecuenciadiascantacc), y = Frecuenciadiascantacc)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de la cantidad de accidentes",
       x = "Cantidad de accidentes",
       y = "Frecuencia") +
  theme_minimal()

Como conclusión vemos que:

-En la mayoría de casos solo hay heridos en el momento de los accidentes.
-Hay pocos muertos en comparación con los heridos en el momento de los accidentes.
-No suceden muchos accidentes al mismo tiempo.

Análisis Descriptivo Individual Variable categórica, donde el principal cálculo es el de la frecuencia:

Fechas donde ocurrieron los accidentes:

fecha_factor<-as.factor(datos$FECHA_ACCIDENTE)
summary(fecha_factor) 
## 2018-06-08 2018-11-16 2019-05-22 2019-10-05 2018-10-19 2019-11-20 2020-02-13 
##         34         33         31         30         29         29         29 
## 2018-03-03 2018-03-06 2018-06-13 2019-11-01 2020-12-21 2018-11-28 2019-08-12 
##         28         28         28         28         28         27         27 
## 2019-12-03 2020-01-28 2018-05-29 2018-09-17 2018-09-26 2019-02-08 2019-02-18 
##         27         27         26         26         26         26         26 
## 2019-03-18 2019-07-26 2020-01-29 2021-12-17 2022-04-09 2018-03-20 2018-04-18 
##         26         26         26         26         26         25         25 
## 2018-04-25 2018-04-26 2018-07-27 2018-09-20 2018-10-09 2018-11-13 2018-12-03 
##         25         25         25         25         25         25         25 
## 2018-12-10 2019-01-23 2019-06-18 2019-06-25 2019-08-14 2019-09-10 2019-09-14 
##         25         25         25         25         25         25         25 
## 2019-12-05 2020-02-10 2021-12-07 2021-12-23 2022-02-28 2018-02-23 2018-02-24 
##         25         25         25         25         25         24         24 
## 2018-03-17 2018-03-21 2018-04-14 2018-07-16 2018-08-21 2018-09-21 2018-09-24 
##         24         24         24         24         24         24         24 
## 2018-10-13 2018-10-29 2018-11-08 2018-11-30 2019-03-21 2019-07-25 2019-08-27 
##         24         24         24         24         24         24         24 
## 2019-08-30 2019-09-03 2019-09-06 2019-09-16 2019-09-23 2021-09-07 2021-10-05 
##         24         24         24         24         24         24         24 
## 2021-12-28 2022-02-04 2022-03-22 2022-05-28 2018-01-15 2018-01-16 2018-01-31 
##         24         24         24         24         23         23         23 
## 2018-03-15 2018-06-18 2018-09-19 2018-12-04 2019-01-17 2019-04-30 2019-05-31 
##         23         23         23         23         23         23         23 
## 2020-02-15 2021-02-27 2022-02-01 2022-02-25 2022-03-08 2022-03-19 2018-01-25 
##         23         23         23         23         23         23         22 
## 2018-02-01 2018-02-15 2018-02-26 2018-04-11 2018-04-24 2018-05-30 2018-06-12 
##         22         22         22         22         22         22         22 
## 2018-07-17    (Other) 
##         22      23148

Horas en las que ocurrieron los accidentes:

hora_factor<-as.factor(datos$HORA_ACCIDENTE)
summary(hora_factor) 
## 03:00:00:pm 04:00:00:pm 12:30:00:pm 05:00:00:pm 08:00:00:am 02:00:00:pm 
##         408         408         387         384         384         371 
## 01:00:00:pm 08:30:00:am 04:30:00:pm 10:00:00:am 07:30:00:am 05:30:00:pm 
##         368         344         332         328         325         324 
## 07:00:00:am 09:00:00:am 03:30:00:pm 12:00:00:pm 07:00:00:pm 11:00:00:am 
##         321         321         317         315         314         314 
## 06:00:00:pm 02:30:00:pm 06:30:00:pm 01:30:00:pm 10:30:00:am 11:30:00:am 
##         309         300         299         292         287         287 
## 09:30:00:am 07:30:00:pm 08:30:00:pm 08:00:00:pm 12:40:00:pm 03:20:00:pm 
##         269         268         239         238         220         206 
## 12:10:00:pm 07:50:00:am 05:20:00:pm 06:40:00:pm 07:40:00:am 09:00:00:pm 
##         194         189         188         184         181         180 
## 06:20:00:pm 12:20:00:pm 02:20:00:pm 04:40:00:pm 01:10:00:pm 07:10:00:am 
##         179         176         173         173         172         172 
## 05:10:00:pm 01:40:00:pm 02:50:00:pm 04:20:00:pm 10:40:00:am 11:20:00:am 
##         170         169         169         167         167         166 
## 09:30:00:pm 08:40:00:am 07:20:00:am 01:50:00:pm 01:20:00:pm 03:40:00:pm 
##         164         163         162         161         160         157 
## 10:20:00:am 08:20:00:am 06:30:00:am 02:40:00:pm 11:40:00:am 05:40:00:pm 
##         157         156         155         153         153         152 
## 05:50:00:pm 02:10:00:pm 12:50:00:pm 04:50:00:pm 03:10:00:pm 08:10:00:am 
##         152         151         150         149         148         148 
## 06:10:00:pm 09:10:00:am 07:20:00:pm 04:10:00:pm 09:40:00:am 06:50:00:am 
##         146         144         143         142         142         141 
## 09:50:00:am 10:50:00:am 10:00:00:pm 06:40:00:am 09:20:00:am 08:50:00:am 
##         140         140         139         136         134         133 
## 06:50:00:pm 07:40:00:pm 07:10:00:pm 03:50:00:pm 10:10:00:am 11:10:00:am 
##         130         129         126         125         124         122 
## 11:50:00:am 10:30:00:pm 11:00:00:pm 08:10:00:pm 06:00:00:am 12:15:00:pm 
##         119         112         101         100          98          97 
## 12:45:00:pm 07:50:00:pm 05:15:00:pm 08:40:00:pm 09:40:00:pm 06:20:00:am 
##          97          96          94          90          89          87 
## 07:15:00:am 08:45:00:am 07:45:00:am     (Other) 
##          85          84          83        6303

Gravedad de los accidentes:

table(datos$GRAVEDAD_ACCIDENTE)
## 
## Con heridos Con muertos  Solo daños 
##        9901         252       15457
frecuencias <- data.frame(
  gravedad = c("Con heridos", "Con muertos", "Solo daños"),
  Frecuencia = c(9901,252,15457)
)
ggplot(frecuencias, aes(x =  reorder(gravedad, -Frecuencia), y = Frecuencia)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de Gravedad de accidentes",
       x = "Gravedad",
       y = "Frecuencia") +
  theme_minimal()

Tipo de accidente:

table(datos$CLASE_ACCIDENTE)
## 
##      Atropello Caida Ocupante         Choque       Incendio           Otro 
##           1344            194          23819             13            123 
##    Volcamiento 
##            117
frecuenciasclase <- data.frame(
  clase = c("Atropello", "Caida ocupante", "Choque", "Incendio", "Otro", "Volcamiento"),
  Frecuenciaclase = c(1344,194,23819,13,123,117)
)
ggplot(frecuenciasclase, aes(x =  reorder(clase, -Frecuenciaclase), y = Frecuenciaclase)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de Clases de accidentes",
       x = "Clase",
       y = "Frecuencia") +
  theme_minimal()

Sitios donde ocurrieron los accidentes:

sitios_factor<-as.factor(datos$SITIO_EXACTO_ACCIDENTE)
summary(sitios_factor)
##             CL 110 CR 9G              CL 110 CR 6             CL 110 CR 43 
##                       77                       66                       55 
##               CL 17 CR 8               CL 30 CR 8             VIA 40 CL 85 
##                       53                       53                       53 
##             CL 110 CR 38     AV CIRCUNVALAR CR 9G             CL 110 CR 27 
##                       49                       41                       33 
##               CL 19 CR 1             VIA 40 CL 77             VIA 40 CL 80 
##                       32                       32                       29 
##             CL 110 CR 46               CL 19 CR 7             CL 110 CR 13 
##                       28                       27                       26 
##               CL 30 CR 4             CR 38 CL 110              CR 46 CL 75 
##                       25                       25                       25 
##          VIA 40 CALLE 85             VIA 40 CL 79             VIA 40 CL 58 
##                       25                       25                       24 
##     CALLE 110 CARRERA 43       CALLE 17 CARRERA 8              CL 30 CR 21 
##                       23                       23                       23 
##              CL 30 CR 43              CL 31 CR 24             VIA 40 CR 50 
##                       23                       23                       23 
##             CL 110 CR 26              CL 30 CR 15              CL 75 CR 47 
##                       22                       22                       22 
##      CALLE 110 CARRERA 6     CALLE 110 CARRERA 9G              CL 30 CR 14 
##                       21                       21                       21 
##              CR 38 CL 74              CR 38 CL 81     AV CIRCUNVALAR CR 27 
##                       21                       21                       20 
##              CL 19 CR 1B              CL 30 CR 44             CL 90 CR 51B 
##                       19                       19                       19 
##             CL 110 CR 31             CL 110 CR 37             VIA 40 CL 67 
##                       18                       18                       18 
##             VIA 40 CR 67     AV CIRCUNVALAR CR 43              CL 30 CR 20 
##                       18                       17                       17 
##          CL 45 CR 11 SUR              CL 75 CR 60             CR 46 CL 110 
##                       17                       17                       17 
##             CR 51B CL 98             VIA 40 CR 51          CALLE 110 CRA 6 
##                       17                       17                       16 
##              CL 19 CR 1E              CL 30 CR 38              CL 45 CR 20 
##                       16                       16                       16 
##              CL 45 CR 27              CL 80 CR 45              CR 38 CL 30 
##                       16                       16                       16 
##              CR 44 CL 72              CR 50 CL 64             VIA 40 CL 69 
##                       16                       16                       16 
## AV CIRCUNVALAR CR 15 SUR      AV CIRCUNVALAR CR 6              CL 17 CR 15 
##                       15                       15                       15 
##               CL 19 CR 8              CL 45 CR 30               CL 45 CR 8 
##                       15                       15                       15 
##              CR 38 CL 83              CR 47 CL 75              CR 6 CL 110 
##                       15                       15                       15 
##          VIA 40 CALLE 77             VIA 40 CL 75    AV CIRCUNVALAR CL 51B 
##                       15                       15                       14 
##     AV CIRCUNVALAR CR 13     AV CIRCUNVALAR CR 38           CALLE 17 CRA 8 
##                       14                       14                       14 
##       CALLE 30 CARRERA 8               CL 30 CR 1              CL 30 CR 30 
##                       14                       14                       14 
##              CL 30 CR 33               CL 45 CR 1              CL 75 CR 49 
##                       14                       14                       14 
##              CL 75 CR 59              CL 85 CR 47              CR 46 CL 92 
##                       14                       14                       14 
##              CR 53 CL 99             VIA 40 CL 76    AV CIRCUNVALAR CR 51B 
##                       14                       14                       13 
##     CALLE 110 CARRERA 38       CALLE 19 CARRERA 1             CL 110 CR 12 
##                       13                       13                       13 
##              CL 17 CR 30               CL 19 CR 2              CL 30 CR 23 
##                       13                       13                       13 
##              CL 30 CR 27              CL 30 CR 4B               CL 30 CR 6 
##                       13                       13                       13 
##              CL 45 CR 33              CL 72 CR 39              CL 72 CR 46 
##                       13                       13                       13 
##                  (Other) 
##                    23526

Años en los cuales ocurrieron los accidentes:

table(datos$AÑO_ACCIDENTE)
## 
## 2018 2019 2020 2021 2022 2023 2024 
## 5898 5645 3281 4700 3683 1662  741
frecuenciasaño <- data.frame(
  año = c("2018", "2019", "2020", "2021", "2022", "2023", "2024"),
  Frecuenciaaño = c(5898,5645,3281,4700,3683,1662,741)
)
ggplot(frecuenciasaño, aes(x =  reorder(año, -Frecuenciaaño), y = Frecuenciaaño)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de años donde ocurrieron accidentes",
       x = "Años",
       y = "Frecuencia") +
  theme_minimal()

Meses donde ocurrieron los accidentes:

table(datos$MES_ACCIDENTE)
## 
##     April    August  December  February   January      July      June     March 
##      2010      1918      2189      2477      2349      1932      2103      2446 
##       May  November   October September 
##      2121      1995      2090      1980
frecuenciasmeses <- data.frame(
  meses = c("April", "August", "December", "February", "January", "July", "June", "March", "May", "November", "October", "Septemer"),
  Frecuenciameses = c(2010,1918,2189,2477,2349,1932,2103,2446,2121,1995,2090,1980)
)
ggplot(frecuenciasmeses, aes(x = reorder(meses, -Frecuenciameses), y = Frecuenciameses)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de Clases de Meses donde ocurrieron accidentes",
       x = "Meses",
       y = "Frecuencia") +
  theme_minimal()

Días donde ocurrieron los accidentes:

table(datos$DIA_ACCIDENTE)
## 
##  Fri  Mon  Sat  Sun  Thu  Tue  Wed 
## 3920 3774 3735 2577 3756 4009 3839
frecuenciasdias <- data.frame(
  dias = c("Friday","Monday","Saturday","Sunday","Thursday","Tuesday","Wedndesday"),
  Frecuenciadias = c(3920,3774,3735,2577,3756,4009,3839)
)
ggplot(frecuenciasdias, aes(x =  reorder(dias, -Frecuenciadias), y = Frecuenciadias)) +
  geom_bar(stat = "identity") +
  labs(title = "Distribución de Días donde ocurrieron accidentes",
       x = "Días",
       y = "Frecuencia") +
  theme_minimal()

Como conclusión vemos que:

-La mayoría de accidentes ocurrieron Febrero. -El año donde más accidentes hubo fue 2018. -El día donde más ocurren accidentes es el martes. -En la mayoría de los accidentes hay solo daños. -Los accidentes son principalmente choques.

En general el resumen estadístico de las variables de la base de datos es:

summary(datos)
##  FECHA_ACCIDENTE                  HORA_ACCIDENTE     GRAVEDAD_ACCIDENTE
##  Min.   :2018-01-01 00:00:00.00   Length:25610       Length:25610      
##  1st Qu.:2019-02-02 00:00:00.00   Class :character   Class :character  
##  Median :2020-04-23 12:00:00.00   Mode  :character   Mode  :character  
##  Mean   :2020-07-31 19:57:36.05                                        
##  3rd Qu.:2021-12-13 00:00:00.00                                        
##  Max.   :2024-06-30 00:00:00.00                                        
##                                                                        
##  CLASE_ACCIDENTE    SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN _SITIO_ACCIDENTE
##  Length:25610       Length:25610           Min.   : 1.000                  
##  Class :character   Class :character       1st Qu.: 1.000                  
##  Mode  :character   Mode  :character       Median : 1.000                  
##                                            Mean   : 1.472                  
##                                            3rd Qu.: 2.000                  
##                                            Max.   :42.000                  
##                                            NA's   :15626                   
##  CANT_MUERTOS_EN _SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE     
##  Min.   :1.000                    Min.   :1           Length:25610      
##  1st Qu.:1.000                    1st Qu.:1           Class :character  
##  Median :1.000                    Median :1           Mode  :character  
##  Mean   :1.036                    Mean   :1                             
##  3rd Qu.:1.000                    3rd Qu.:1                             
##  Max.   :2.000                    Max.   :2                             
##  NA's   :25358                                                          
##  MES_ACCIDENTE      DIA_ACCIDENTE     
##  Length:25610       Length:25610      
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
##                                       
## 

NOTA: La función table es muy útil para calcular frecuencias para algunas variables; sin embargo, en algunos se usa summary, para que muestre solo los princpipales datos con mayor frecuencia, porque en variables como las fechas, horas y sitios, hay muchos datos distintos y con baja frecuencia.

4. FILTRAR LA BASE DE DATOS PARA ENTENDER MEJOR SU ESTRUCTURA:

Atropellos con muertes:

datos_atropello_muertos <- filter(datos, GRAVEDAD_ACCIDENTE == "Con muertos" & CLASE_ACCIDENTE == "Atropello")
datos_atropello_muertos
## # A tibble: 78 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-06 00:00:00 12:15:00:pm    Con muertos        Atropello      
##  2 2018-01-22 00:00:00 01:30:00:pm    Con muertos        Atropello      
##  3 2018-03-07 00:00:00 05:55:00:am    Con muertos        Atropello      
##  4 2018-03-22 00:00:00 02:30:00:pm    Con muertos        Atropello      
##  5 2018-03-22 00:00:00 12:20:00:am    Con muertos        Atropello      
##  6 2018-05-09 00:00:00 02:10:00:pm    Con muertos        Atropello      
##  7 2018-05-09 00:00:00 12:15:00:pm    Con muertos        Atropello      
##  8 2018-06-08 00:00:00 09:40:00:am    Con muertos        Atropello      
##  9 2018-06-19 00:00:00 10:45:00:am    Con muertos        Atropello      
## 10 2018-09-15 00:00:00 09:45:00:pm    Con muertos        Atropello      
## # ℹ 68 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de atropellos con muertos: 

num_atropello_muertos<-nrow(datos_atropello_muertos)
num_atropello_muertos
## [1] 78

Atropellos con heridos

datos_atropello_heridos <- filter(datos, GRAVEDAD_ACCIDENTE == "Con heridos" & CLASE_ACCIDENTE == "Atropello")
datos_atropello_heridos
## # A tibble: 1,266 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-01 00:00:00 01:30:00:am    Con heridos        Atropello      
##  2 2018-01-01 00:00:00 12:50:00:am    Con heridos        Atropello      
##  3 2018-01-03 00:00:00 08:25:00:am    Con heridos        Atropello      
##  4 2018-01-04 00:00:00 07:20:00:pm    Con heridos        Atropello      
##  5 2018-01-06 00:00:00 09:30:00:am    Con heridos        Atropello      
##  6 2018-01-08 00:00:00 07:35:00:am    Con heridos        Atropello      
##  7 2018-01-09 00:00:00 04:30:00:pm    Con heridos        Atropello      
##  8 2018-01-11 00:00:00 03:40:00:pm    Con heridos        Atropello      
##  9 2018-01-11 00:00:00 12:40:00:pm    Con heridos        Atropello      
## 10 2018-01-12 00:00:00 11:30:00:am    Con heridos        Atropello      
## # ℹ 1,256 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de atropellos con heridos:

num_atropello_heridos<-nrow(datos_atropello_heridos)
num_atropello_heridos
## [1] 1266

Atropellos con solo daños

datos_atropello_daños <- filter(datos, GRAVEDAD_ACCIDENTE == "Solo daños" & CLASE_ACCIDENTE == "Atropello")
datos_atropello_daños
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de atropellos con solo daños:

num_atropello_daños<-nrow(datos_atropello_daños)
num_atropello_daños
## [1] 0

Choques con muertos

datos_choque_muertos <- filter(datos, GRAVEDAD_ACCIDENTE == "Con muertos" & CLASE_ACCIDENTE == "Choque")
datos_choque_muertos
## # A tibble: 157 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-21 00:00:00 10:30:00:pm    Con muertos        Choque         
##  2 2018-01-25 00:00:00 05:20:00:pm    Con muertos        Choque         
##  3 2018-02-04 00:00:00 09:40:00:pm    Con muertos        Choque         
##  4 2018-02-23 00:00:00 01:10:00:am    Con muertos        Choque         
##  5 2018-03-04 00:00:00 05:10:00:am    Con muertos        Choque         
##  6 2018-04-05 00:00:00 02:45:00:pm    Con muertos        Choque         
##  7 2018-04-06 00:00:00 04:00:00:pm    Con muertos        Choque         
##  8 2018-04-18 00:00:00 08:20:00:pm    Con muertos        Choque         
##  9 2018-04-21 00:00:00 09:30:00:am    Con muertos        Choque         
## 10 2018-05-02 00:00:00 12:10:00:am    Con muertos        Choque         
## # ℹ 147 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de choques con muertos:

num_choque_muertos<-nrow(datos_choque_muertos)
num_choque_muertos
## [1] 157

Choques con heridos

datos_choque_heridos <- filter(datos, GRAVEDAD_ACCIDENTE == "Con heridos" & CLASE_ACCIDENTE == "Choque")
datos_choque_heridos
## # A tibble: 8,277 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-01 00:00:00 06:00:00:pm    Con heridos        Choque         
##  2 2018-01-02 00:00:00 08:40:00:pm    Con heridos        Choque         
##  3 2018-01-02 00:00:00 11:00:00:pm    Con heridos        Choque         
##  4 2018-01-03 00:00:00 08:30:00:pm    Con heridos        Choque         
##  5 2018-01-03 00:00:00 10:05:00:pm    Con heridos        Choque         
##  6 2018-01-03 00:00:00 12:00:00:pm    Con heridos        Choque         
##  7 2018-01-04 00:00:00 01:15:00:pm    Con heridos        Choque         
##  8 2018-01-04 00:00:00 08:20:00:am    Con heridos        Choque         
##  9 2018-01-04 00:00:00 08:30:00:pm    Con heridos        Choque         
## 10 2018-01-04 00:00:00 12:40:00:pm    Con heridos        Choque         
## # ℹ 8,267 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de choques con heridos:

num_choque_heridos<-nrow(datos_choque_heridos)
num_choque_heridos
## [1] 8277

Choques con solo daños

datos_choque_daños <- filter(datos, GRAVEDAD_ACCIDENTE == "Solo daños" & CLASE_ACCIDENTE == "Choque")
datos_choque_daños
## # A tibble: 15,385 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-01 00:00:00 02:00:00:pm    Solo daños         Choque         
##  2 2018-01-01 00:00:00 04:00:00:am    Solo daños         Choque         
##  3 2018-01-01 00:00:00 04:30:00:am    Solo daños         Choque         
##  4 2018-01-01 00:00:00 05:20:00:pm    Solo daños         Choque         
##  5 2018-01-02 00:00:00 02:30:00:pm    Solo daños         Choque         
##  6 2018-01-02 00:00:00 03:00:00:pm    Solo daños         Choque         
##  7 2018-01-02 00:00:00 03:45:00:pm    Solo daños         Choque         
##  8 2018-01-02 00:00:00 04:10:00:pm    Solo daños         Choque         
##  9 2018-01-02 00:00:00 05:30:00:pm    Solo daños         Choque         
## 10 2018-01-02 00:00:00 05:45:00:pm    Solo daños         Choque         
## # ℹ 15,375 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>
#Número de choques con solo daños:

num_choque_daños<-nrow(datos_choque_daños)
num_choque_daños
## [1] 15385

Gráfica para mostrar la comparación entre choques y atropellos:

#Primero creo un data frame en el que se crean 3 columnas (Tipo_Accidente, Gravedad, Cantidad) y en ellas guardo la información y cantidades obtenidas previamente.

data_accidentes <- data.frame(
  Tipo_Accidente = c("Atropello", "Atropello", "Atropello", "Choque", "Choque", "Choque"),
  Gravedad = c("Con muertos", "Con heridos", "Solo daños", "Con muertos", "Con heridos", "Solo daños"),
  Cantidad = c(num_atropello_muertos, num_atropello_heridos, num_atropello_daños,
               num_choque_muertos, num_choque_heridos, num_choque_daños)
)

ggplot(data_accidentes, aes(x = Tipo_Accidente, y = Cantidad, fill = Gravedad)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Cantidad de Muertos, Heridos y Daños por Tipo de Accidente",
       x = "Tipo de Accidente",
       y = "Cantidad",
       fill = "Gravedad") +
  theme_minimal()

La conclusión de esta filtración es que los choques generan más daños que los atropellos en todos los ámbitos, tanto muertes como heridos y solo daños. Entre los atropellos y los choques, los choques son mucho más peligrosos y mortales en la ciudad de Barranquilla, lo que nos puede ayuda en el futuro para campañas para tener más cuidad a la hora de conducir.

5. IDENTIFICAR VALORES NA (NOT AVAILABLE) EN LA BASE DE DATOS:

head(is.na(datos), n = 40)
##       FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##  [1,]           FALSE          FALSE              FALSE           FALSE
##  [2,]           FALSE          FALSE              FALSE           FALSE
##  [3,]           FALSE          FALSE              FALSE           FALSE
##  [4,]           FALSE          FALSE              FALSE           FALSE
##  [5,]           FALSE          FALSE              FALSE           FALSE
##  [6,]           FALSE          FALSE              FALSE           FALSE
##  [7,]           FALSE          FALSE              FALSE           FALSE
##  [8,]           FALSE          FALSE              FALSE           FALSE
##  [9,]           FALSE          FALSE              FALSE           FALSE
## [10,]           FALSE          FALSE              FALSE           FALSE
## [11,]           FALSE          FALSE              FALSE           FALSE
## [12,]           FALSE          FALSE              FALSE           FALSE
## [13,]           FALSE          FALSE              FALSE           FALSE
## [14,]           FALSE          FALSE              FALSE           FALSE
## [15,]           FALSE          FALSE              FALSE           FALSE
## [16,]           FALSE          FALSE              FALSE           FALSE
## [17,]           FALSE          FALSE              FALSE           FALSE
## [18,]           FALSE          FALSE              FALSE           FALSE
## [19,]           FALSE          FALSE              FALSE           FALSE
## [20,]           FALSE          FALSE              FALSE           FALSE
## [21,]           FALSE          FALSE              FALSE           FALSE
## [22,]           FALSE          FALSE              FALSE           FALSE
## [23,]           FALSE          FALSE              FALSE           FALSE
## [24,]           FALSE          FALSE              FALSE           FALSE
## [25,]           FALSE          FALSE              FALSE           FALSE
## [26,]           FALSE          FALSE              FALSE           FALSE
## [27,]           FALSE          FALSE              FALSE           FALSE
## [28,]           FALSE          FALSE              FALSE           FALSE
## [29,]           FALSE          FALSE              FALSE           FALSE
## [30,]           FALSE          FALSE              FALSE           FALSE
## [31,]           FALSE          FALSE              FALSE           FALSE
## [32,]           FALSE          FALSE              FALSE           FALSE
## [33,]           FALSE          FALSE              FALSE           FALSE
## [34,]           FALSE          FALSE              FALSE           FALSE
## [35,]           FALSE          FALSE              FALSE           FALSE
## [36,]           FALSE          FALSE              FALSE           FALSE
## [37,]           FALSE          FALSE              FALSE           FALSE
## [38,]           FALSE          FALSE              FALSE           FALSE
## [39,]           FALSE          FALSE              FALSE           FALSE
## [40,]           FALSE          FALSE              FALSE           FALSE
##       SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN _SITIO_ACCIDENTE
##  [1,]                  FALSE                            FALSE
##  [2,]                  FALSE                             TRUE
##  [3,]                  FALSE                             TRUE
##  [4,]                  FALSE                             TRUE
##  [5,]                  FALSE                             TRUE
##  [6,]                  FALSE                            FALSE
##  [7,]                  FALSE                            FALSE
##  [8,]                  FALSE                             TRUE
##  [9,]                  FALSE                             TRUE
## [10,]                  FALSE                             TRUE
## [11,]                  FALSE                             TRUE
## [12,]                  FALSE                             TRUE
## [13,]                  FALSE                             TRUE
## [14,]                  FALSE                             TRUE
## [15,]                  FALSE                             TRUE
## [16,]                  FALSE                            FALSE
## [17,]                  FALSE                             TRUE
## [18,]                  FALSE                            FALSE
## [19,]                  FALSE                             TRUE
## [20,]                  FALSE                             TRUE
## [21,]                  FALSE                             TRUE
## [22,]                  FALSE                             TRUE
## [23,]                  FALSE                             TRUE
## [24,]                  FALSE                             TRUE
## [25,]                  FALSE                            FALSE
## [26,]                  FALSE                            FALSE
## [27,]                  FALSE                            FALSE
## [28,]                  FALSE                             TRUE
## [29,]                  FALSE                             TRUE
## [30,]                  FALSE                            FALSE
## [31,]                  FALSE                            FALSE
## [32,]                  FALSE                             TRUE
## [33,]                  FALSE                             TRUE
## [34,]                  FALSE                             TRUE
## [35,]                  FALSE                             TRUE
## [36,]                  FALSE                             TRUE
## [37,]                  FALSE                             TRUE
## [38,]                  FALSE                            FALSE
## [39,]                  FALSE                            FALSE
## [40,]                  FALSE                            FALSE
##       CANT_MUERTOS_EN _SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
##  [1,]                             TRUE               FALSE         FALSE
##  [2,]                             TRUE               FALSE         FALSE
##  [3,]                             TRUE               FALSE         FALSE
##  [4,]                             TRUE               FALSE         FALSE
##  [5,]                             TRUE               FALSE         FALSE
##  [6,]                             TRUE               FALSE         FALSE
##  [7,]                             TRUE               FALSE         FALSE
##  [8,]                             TRUE               FALSE         FALSE
##  [9,]                             TRUE               FALSE         FALSE
## [10,]                             TRUE               FALSE         FALSE
## [11,]                             TRUE               FALSE         FALSE
## [12,]                             TRUE               FALSE         FALSE
## [13,]                             TRUE               FALSE         FALSE
## [14,]                             TRUE               FALSE         FALSE
## [15,]                             TRUE               FALSE         FALSE
## [16,]                             TRUE               FALSE         FALSE
## [17,]                             TRUE               FALSE         FALSE
## [18,]                             TRUE               FALSE         FALSE
## [19,]                             TRUE               FALSE         FALSE
## [20,]                             TRUE               FALSE         FALSE
## [21,]                             TRUE               FALSE         FALSE
## [22,]                             TRUE               FALSE         FALSE
## [23,]                             TRUE               FALSE         FALSE
## [24,]                             TRUE               FALSE         FALSE
## [25,]                             TRUE               FALSE         FALSE
## [26,]                             TRUE               FALSE         FALSE
## [27,]                             TRUE               FALSE         FALSE
## [28,]                             TRUE               FALSE         FALSE
## [29,]                             TRUE               FALSE         FALSE
## [30,]                             TRUE               FALSE         FALSE
## [31,]                             TRUE               FALSE         FALSE
## [32,]                             TRUE               FALSE         FALSE
## [33,]                             TRUE               FALSE         FALSE
## [34,]                             TRUE               FALSE         FALSE
## [35,]                             TRUE               FALSE         FALSE
## [36,]                             TRUE               FALSE         FALSE
## [37,]                             TRUE               FALSE         FALSE
## [38,]                             TRUE               FALSE         FALSE
## [39,]                             TRUE               FALSE         FALSE
## [40,]                             TRUE               FALSE         FALSE
##       MES_ACCIDENTE DIA_ACCIDENTE
##  [1,]         FALSE         FALSE
##  [2,]         FALSE         FALSE
##  [3,]         FALSE         FALSE
##  [4,]         FALSE         FALSE
##  [5,]         FALSE         FALSE
##  [6,]         FALSE         FALSE
##  [7,]         FALSE         FALSE
##  [8,]         FALSE         FALSE
##  [9,]         FALSE         FALSE
## [10,]         FALSE         FALSE
## [11,]         FALSE         FALSE
## [12,]         FALSE         FALSE
## [13,]         FALSE         FALSE
## [14,]         FALSE         FALSE
## [15,]         FALSE         FALSE
## [16,]         FALSE         FALSE
## [17,]         FALSE         FALSE
## [18,]         FALSE         FALSE
## [19,]         FALSE         FALSE
## [20,]         FALSE         FALSE
## [21,]         FALSE         FALSE
## [22,]         FALSE         FALSE
## [23,]         FALSE         FALSE
## [24,]         FALSE         FALSE
## [25,]         FALSE         FALSE
## [26,]         FALSE         FALSE
## [27,]         FALSE         FALSE
## [28,]         FALSE         FALSE
## [29,]         FALSE         FALSE
## [30,]         FALSE         FALSE
## [31,]         FALSE         FALSE
## [32,]         FALSE         FALSE
## [33,]         FALSE         FALSE
## [34,]         FALSE         FALSE
## [35,]         FALSE         FALSE
## [36,]         FALSE         FALSE
## [37,]         FALSE         FALSE
## [38,]         FALSE         FALSE
## [39,]         FALSE         FALSE
## [40,]         FALSE         FALSE

NOTA: Cuando usamos summary en el punto 3, nos mostró que hay NA’S en las columnas CANT_HERIDOS_EN_SITIO_ACCIDENTE y CANT_MUERTOS_EN_SITIO_ACCIDENTE, de igual forma podemos verificarlo nuevamente:

Verificamos la columna de las fechas

fechas_na<-is.na(datos$FECHA_ACCIDENTE)
datos[fechas_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de fechas no hay NA.

Verificamos la columna de las horas

hora_na<-is.na(datos$HORA_ACCIDENTE)
datos[hora_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de las horas no hay NA.

Verificamos la columna de la gravedad del accidente

gravedad_na<-is.na(datos$GRAVEDAD_ACCIDENTE)
datos[gravedad_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de la gravedad del accidente no hay NA.

Verificamos la columna de la clase de accidente

clase_na<-is.na(datos$CLASE_ACCIDENTE)
datos[clase_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de la clase de accidente no hay NA.

Verificamos la columna del sitio exacto del accidente

sitio_na<-is.na(datos$SITIO_EXACTO_ACCIDENTE)
datos[sitio_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna del sitio exacto no hay NA.

Verificamos la columna de la cantidad de accidentes

cantacc_na<-is.na(datos$CANTIDAD_ACCIDENTES)
datos[cantacc_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de cantidad de accidentes no hay NA.

Verificamos la columna de los años

año_na<-is.na(datos$AÑO_ACCIDENTE)
datos[año_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de años no hay NA.

Verificamos la columna de los meses

mes_na<-is.na(datos$MES_ACCIDENTE)
datos[mes_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de meses no hay NA.

Verificamos la columna de los días

dia_na<-is.na(datos$DIA_ACCIDENTE)
datos[dia_na,]
## # A tibble: 0 × 11
## # ℹ 11 variables: FECHA_ACCIDENTE <dttm>, HORA_ACCIDENTE <chr>,
## #   GRAVEDAD_ACCIDENTE <chr>, CLASE_ACCIDENTE <chr>,
## #   SITIO_EXACTO_ACCIDENTE <chr>, CANT_HERIDOS_EN _SITIO_ACCIDENTE <dbl>,
## #   CANT_MUERTOS_EN _SITIO_ACCIDENTE <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de cantidad de días no hay NA.

Verificamos la columna de la cantidad de heridos en sitio de accidente

heridos_na<-is.na(datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`)
datos[heridos_na,]
## # A tibble: 15,626 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-01 00:00:00 02:00:00:pm    Solo daños         Choque         
##  2 2018-01-01 00:00:00 04:00:00:am    Solo daños         Choque         
##  3 2018-01-01 00:00:00 04:30:00:am    Solo daños         Choque         
##  4 2018-01-01 00:00:00 05:20:00:pm    Solo daños         Choque         
##  5 2018-01-02 00:00:00 02:30:00:pm    Solo daños         Choque         
##  6 2018-01-02 00:00:00 03:00:00:pm    Solo daños         Choque         
##  7 2018-01-02 00:00:00 03:45:00:pm    Solo daños         Choque         
##  8 2018-01-02 00:00:00 04:10:00:pm    Solo daños         Choque         
##  9 2018-01-02 00:00:00 05:30:00:pm    Solo daños         Choque         
## 10 2018-01-02 00:00:00 05:45:00:pm    Solo daños         Choque         
## # ℹ 15,616 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de cantidad de heridos sí hay NA.

La cantidad de NA’S en esta columna es de:

cant_heridos_NA <- nrow(datos[heridos_na,])
cant_heridos_NA
## [1] 15626

Verificamos la columna de la cantidad de muertos en sitio de accidente

muertos_na<-is.na(datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`)
datos[muertos_na,]
## # A tibble: 25,358 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-01 00:00:00 01:30:00:am    Con heridos        Atropello      
##  2 2018-01-01 00:00:00 02:00:00:pm    Solo daños         Choque         
##  3 2018-01-01 00:00:00 04:00:00:am    Solo daños         Choque         
##  4 2018-01-01 00:00:00 04:30:00:am    Solo daños         Choque         
##  5 2018-01-01 00:00:00 05:20:00:pm    Solo daños         Choque         
##  6 2018-01-01 00:00:00 06:00:00:pm    Con heridos        Choque         
##  7 2018-01-01 00:00:00 12:50:00:am    Con heridos        Atropello      
##  8 2018-01-02 00:00:00 02:30:00:pm    Solo daños         Choque         
##  9 2018-01-02 00:00:00 03:00:00:pm    Solo daños         Choque         
## 10 2018-01-02 00:00:00 03:45:00:pm    Solo daños         Choque         
## # ℹ 25,348 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

El resultado nos muestra que en la columna de cantidad de muertos sí hay NA.

La cantidad de NA’S en esta columna es de:

cant_muertos_NA<-nrow(datos[muertos_na,])
cant_muertos_NA
## [1] 25358

Conclusión
Notamos que donde hay NA’S hay valores vacíos, lo que se puede deber a un error y estos valores vacíos se refieren a 0.

Gráfica que identifica los NA en cada variable

suppressWarnings(missmap(datos))

6. ANÁLISIS DE LA PRESENCIA DE POSIBLES VALORES ATÍPICOS:

A pesar de ser variables discretas, se utilizan los diagramas de cajas y bigotes para ver si hay valores atípicos.

par(mfrow=c(1,3))
boxplot(datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`,main="Heridos")
boxplot(datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`,main="Muertos")
boxplot(datos$CANTIDAD_ACCIDENTES,main="Cantidad de accidentes")

De los gráficos anteriores podemos ver que:

La variable cantidad de heridos tiene algunos valores atípicos muy altos, al igual que la cantidad de muertos y accidentes, ya que la mayoría de sus datos están en 1, pero muy pocos en 2, por lo que procedemos a realizar los filtros.

Filtro cantidad de heridos en sitio accidente

filter(datos,`CANT_HERIDOS_EN _SITIO_ACCIDENTE`>3 )
## # A tibble: 303 × 11
##    FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##    <dttm>              <chr>          <chr>              <chr>          
##  1 2018-01-07 00:00:00 08:30:00:pm    Con heridos        Choque         
##  2 2018-01-11 00:00:00 09:40:00:am    Con heridos        Choque         
##  3 2018-01-15 00:00:00 03:00:00:am    Con heridos        Choque         
##  4 2018-01-18 00:00:00 11:30:00:am    Con heridos        Choque         
##  5 2018-01-19 00:00:00 11:50:00:pm    Con heridos        Choque         
##  6 2018-02-09 00:00:00 01:30:00:am    Con heridos        Choque         
##  7 2018-02-11 00:00:00 11:50:00:pm    Con heridos        Choque         
##  8 2018-02-28 00:00:00 08:45:00:pm    Con heridos        Choque         
##  9 2018-03-06 00:00:00 05:00:00:am    Con heridos        Choque         
## 10 2018-03-06 00:00:00 07:00:00:am    Con heridos        Choque         
## # ℹ 293 more rows
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

Filtro cantidad de muertos en sitio accidente

filter(datos,`CANT_MUERTOS_EN _SITIO_ACCIDENTE`>1.8 )
## # A tibble: 9 × 11
##   FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##   <dttm>              <chr>          <chr>              <chr>          
## 1 2018-03-22 00:00:00 02:30:00:pm    Con muertos        Atropello      
## 2 2018-08-09 00:00:00 08:15:00:pm    Con muertos        Choque         
## 3 2019-03-16 00:00:00 11:35:00:pm    Con muertos        Choque         
## 4 2019-12-26 00:00:00 02:00:00:am    Con muertos        Choque         
## 5 2021-09-27 00:00:00 01:35:00:pm    Con muertos        Atropello      
## 6 2022-02-10 00:00:00 06:54:00:am    Con muertos        Choque         
## 7 2022-02-28 00:00:00 07:30:00:am    Con muertos        Choque         
## 8 2024-02-11 00:00:00 11:53:00:pm    Con muertos        Choque         
## 9 2024-04-15 00:00:00 07:30:00:pm    Con muertos        Choque         
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

Filtro cantidad de accidentes

filter(datos,CANTIDAD_ACCIDENTES>1.8 )
## # A tibble: 5 × 11
##   FECHA_ACCIDENTE     HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
##   <dttm>              <chr>          <chr>              <chr>          
## 1 2018-06-09 00:00:00 09:35:00:am    Solo daños         Choque         
## 2 2019-12-28 00:00:00 12:28:00:pm    Solo daños         Choque         
## 3 2020-02-06 00:00:00 09:00:00:am    Solo daños         Choque         
## 4 2020-05-02 00:00:00 07:40:00:pm    Solo daños         Choque         
## 5 2020-11-05 00:00:00 05:25:00:pm    Solo daños         Choque         
## # ℹ 7 more variables: SITIO_EXACTO_ACCIDENTE <chr>,
## #   `CANT_HERIDOS_EN _SITIO_ACCIDENTE` <dbl>,
## #   `CANT_MUERTOS_EN _SITIO_ACCIDENTE` <dbl>, CANTIDAD_ACCIDENTES <dbl>,
## #   AÑO_ACCIDENTE <chr>, MES_ACCIDENTE <chr>, DIA_ACCIDENTE <chr>

Reemplazamos los valores atípicos por NA*

datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`[datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE` > 3] <- NA
datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`[datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE` > 1.8] <- NA
datos$CANTIDAD_ACCIDENTES[datos$CANTIDAD_ACCIDENTES > 1.8] <- NA

Repetimos los gráficos

par(mfrow=c(1,3))
boxplot(datos$`CANT_HERIDOS_EN _SITIO_ACCIDENTE`,main="Heridos")
boxplot(datos$`CANT_MUERTOS_EN _SITIO_ACCIDENTE`,main="Muertos")
boxplot(datos$CANTIDAD_ACCIDENTES,main="Cantidad de accidentes")

Vamos a modificar estas variables por la Mediana, como técnica básica de Imputación de datos.

Cálculo de medianas de estas tres columnas

medianas <- sapply(datos[, c("CANT_HERIDOS_EN _SITIO_ACCIDENTE", 
                             "CANT_MUERTOS_EN _SITIO_ACCIDENTE", 
                             "CANTIDAD_ACCIDENTES")], 
                   median, na.rm = TRUE)

medianas
## CANT_HERIDOS_EN _SITIO_ACCIDENTE CANT_MUERTOS_EN _SITIO_ACCIDENTE 
##                                1                                1 
##              CANTIDAD_ACCIDENTES 
##                                1

Reemplazamos NA por las medias

reemplazos <- list(
  `CANT_HERIDOS_EN _SITIO_ACCIDENTE` = medianas["CANT_HERIDOS_EN _SITIO_ACCIDENTE"],
  `CANT_MUERTOS_EN _SITIO_ACCIDENTE` = medianas["CANT_MUERTOS_EN _SITIO_ACCIDENTE"],
  CANTIDAD_ACCIDENTES = medianas["CANTIDAD_ACCIDENTES"]
)
datos <- replace_na(datos, reemplazos)

Verificamos que ya no hay NA

summary(datos)
##  FECHA_ACCIDENTE                  HORA_ACCIDENTE     GRAVEDAD_ACCIDENTE
##  Min.   :2018-01-01 00:00:00.00   Length:25610       Length:25610      
##  1st Qu.:2019-02-02 00:00:00.00   Class :character   Class :character  
##  Median :2020-04-23 12:00:00.00   Mode  :character   Mode  :character  
##  Mean   :2020-07-31 19:57:36.05                                        
##  3rd Qu.:2021-12-13 00:00:00.00                                        
##  Max.   :2024-06-30 00:00:00.00                                        
##  CLASE_ACCIDENTE    SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN _SITIO_ACCIDENTE
##  Length:25610       Length:25610           Min.   :1.000                   
##  Class :character   Class :character       1st Qu.:1.000                   
##  Mode  :character   Mode  :character       Median :1.000                   
##                                            Mean   :1.126                   
##                                            3rd Qu.:1.000                   
##                                            Max.   :3.000                   
##  CANT_MUERTOS_EN _SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE     
##  Min.   :1                        Min.   :1           Length:25610      
##  1st Qu.:1                        1st Qu.:1           Class :character  
##  Median :1                        Median :1           Mode  :character  
##  Mean   :1                        Mean   :1                             
##  3rd Qu.:1                        3rd Qu.:1                             
##  Max.   :1                        Max.   :1                             
##  MES_ACCIDENTE      DIA_ACCIDENTE     
##  Length:25610       Length:25610      
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
## 

Verificamos que ya no hay NA’s en el gráfico

suppressWarnings(missmap(datos))

Conclusiones

En el caso de la cantidad de heridos, hay datos que se desvían significativamente del resto de los datos y no representan bien la tendencia general, entonces es importante manejarlos para que no afecten los análisis y los modelos. De igual forma, se hizo este tratamiento de datos con la cantidad de muertos y la cantidad de heridos en el sitio del accidente. De esta forma, los datos representan de mejor forma las variables estudiadas.