Contextualizar tanto la base de datos como las variables describiendo
en qué consiste cada una de ellas.
Primero, cargamos la base de datos
rut<-"C:/Users/Usuario/Documents/.zip/trabajo primer corte/Accidentalidad_en_Barranquilla_20240818.csv"
datos<-read.csv(rut)
Esta base de datos contiene información sobre los accidentes de
transito ocurridos en el distrito de Barranquilla según los informes
policiales de accidentes de transito (IPAT). La información de la
vigencia actual es preliminar y está sujeta a cambios.
La base de datos se está estudiando con el fin de aprender cómo es el
manejo de esta.
Las variables que se encuentran en la base de datos son las siguientes:
-NOMBRE DE LAS VARIABLES:
names(datos)
## [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"
Estas variables pueden servir para llevar un registro de los accidentes viales que ocurren en Barranquilla y analizar la relaciones que tienen cada uno entre sí.
Analizar las características de la base de datos.
Vemos los encabezados y la cola de los datos.
head(datos)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 1 2018-01-01T00:00:00.000 01:30:00:am Con heridos Atropello
## 2 2018-01-01T00:00:00.000 02:00:00:pm Solo daños Choque
## 3 2018-01-01T00:00:00.000 04:00:00:am Solo daños Choque
## 4 2018-01-01T00:00:00.000 04:30:00:am Solo daños Choque
## 5 2018-01-01T00:00:00.000 05:20:00:pm Solo daños Choque
## 6 2018-01-01T00:00:00.000 06:00:00:pm Con heridos Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 1 CL 87 9H 24 1
## 2 CL 110 CR 46 NA
## 3 AV CIRCUNVALAR CR 9G NA
## 4 CLLE 72 CRA 29 NA
## 5 VIA 40 CALLE 75 NA
## 6 CR 8 CL 41 3
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 1 NA 1 2018
## 2 NA 1 2018
## 3 NA 1 2018
## 4 NA 1 2018
## 5 NA 1 2018
## 6 NA 1 2018
## MES_ACCIDENTE DIA_ACCIDENTE
## 1 January Mon
## 2 January Mon
## 3 January Mon
## 4 January Mon
## 5 January Mon
## 6 January Mon
tail(datos)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 25605 2024-06-29T00:00:00.000 10:00:00:pm Con heridos Choque
## 25606 2024-06-29T00:00:00.000 10:15:00:am Con heridos Choque
## 25607 2024-06-30T00:00:00.000 02:00:00:am Con heridos Choque
## 25608 2024-06-30T00:00:00.000 02:00:00:pm Con heridos Choque
## 25609 2024-06-30T00:00:00.000 05:00:00:pm Con muertos Choque
## 25610 2024-06-30T00:00:00.000 06:30:00:pm Con heridos Atropello
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 25605 CARRERA 5C CALLE 90 2
## 25606 CARRERA 42G CALLE 90 1
## 25607 CALLE 116 CARRERA 38 1
## 25608 CALLE 56 FRENTE AL # 8E - 48 2
## 25609 CARRERA 43 CON CALLE 41 NA
## 25610 CARRERA 8 CALLE 49 2
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 25605 NA 1 2024
## 25606 NA 1 2024
## 25607 NA 1 2024
## 25608 NA 1 2024
## 25609 1 1 2024
## 25610 NA 1 2024
## MES_ACCIDENTE DIA_ACCIDENTE
## 25605 June Sat
## 25606 June Sat
## 25607 June Sun
## 25608 June Sun
## 25609 June Sun
## 25610 June Sun
dim(datos)
## [1] 25610 11
La base de datos tiene dimensiones de 25610 por 11.
str(datos)
## 'data.frame': 25610 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "01:30:00:am" "02:00:00:pm" "04:00:00:am" "04:30:00:am" ...
## $ GRAVEDAD_ACCIDENTE : chr "Con heridos" "Solo daños" "Solo daños" "Solo daños" ...
## $ CLASE_ACCIDENTE : chr "Atropello" "Choque" "Choque" "Choque" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "CL 87 9H 24" "CL 110 CR 46" "AV CIRCUNVALAR CR 9G" "CLLE 72 CRA 29" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: int 1 NA NA NA NA 3 1 NA NA NA ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: int NA NA NA NA NA NA NA NA NA NA ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ...
## $ MES_ACCIDENTE : chr "January" "January" "January" "January" ...
## $ DIA_ACCIDENTE : chr "Mon" "Mon" "Mon" "Mon" ...
summary(datos)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## Length:25610 Length:25610 Length:25610 Length:25610
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## Length:25610 Min. : 1.000
## Class :character 1st Qu.: 1.000
## 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 Min. :2018
## 1st Qu.:1.000 1st Qu.:1 1st Qu.:2019
## Median :1.000 Median :1 Median :2020
## Mean :1.036 Mean :1 Mean :2020
## 3rd Qu.:1.000 3rd Qu.:1 3rd Qu.:2021
## Max. :2.000 Max. :2 Max. :2024
## NA's :25358
## MES_ACCIDENTE DIA_ACCIDENTE
## Length:25610 Length:25610
## Class :character Class :character
## Mode :character Mode :character
##
##
##
##
Analizar cada una de las variables según su tipo.
Algunas variables se pueden clasificar de diferentes formas según el uso que se les dará a cada una. Sin embargo, se clasificaron así las variables tomando como principio que la base de datos es para llevar un registro de accidentalidad.
VARIABLES CATEGORICAS: fecha, hora de accidente, gravedad del accidente, clase de accidente, sitio exacto, mes del accidente y día del accidente
VARIABLES NUMÉRICAS: cantidad de heridos en el sitio del acciente, cantidad de muertos en el sitio del accidente, cantidad de accidentes y año del accidente.
Ahora brindaremos la descripción de cada una de ellas:
FECHA_ACCIDENTE: registra la fecha del siniestro vial.
HORA_ACCIDENTE: registra la hora exacta de lo sucedido.
GRAVEDAD_ACCIDENTE: la clasifica según si hubo heridos, muertos o daños
materiales.
CLASE_ACCIDENTE: guarda la clase de accidente dependiendo si fue
atropello, caida ocupante, choque, incendio, volcamiento u otro.
SITIO_EXACTO_ACCIDENTE: registra el sitio donde ocurrió todo.
CANT_HERIDOS_EN._SITIO_ACCIDENTE: cantidad de personas heridas.
CANT_MUERTOS_EN._SITIO_ACCIDENTE: cantidad de personas fallecidas en el
accidente.
CANTIDAD_ACCIDENTES: cantidad de accidentes registrados en ese
momento.
AÑO_ACCIDENTE: registra el año del accidente de manera individual a la
fecha.
MES_ACCIDENTE: registra el mes del accidente de manera de manera escrita
en inglés.
DIA_ACCIDENTE: registra el mdía del accidente de manera de manera
escrita en inglés.
Filtrar la base de datos para entender mejor su estructura. Aplique filtros en al menos cinco oportunidades.
Cargo la librería y reemplazo los valores NA por 0 en una base temporal porque más adelante si reemplazaremos los datos NA por 0 para la base de datos original.
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datos_temp <- datos
datos_temp$CANT_HERIDOS_EN._SITIO_ACCIDENTE[is.na(datos_temp$CANT_HERIDOS_EN._SITIO_ACCIDENTE)] <- 0
datos_temp$CANT_MUERTOS_EN._SITIO_ACCIDENTE[is.na(datos_temp$CANT_MUERTOS_EN._SITIO_ACCIDENTE)] <- 0
Se usará en este apartado la función filter() para entender mejor la base de datos.
filtro_1 <- filter(datos_temp, CANT_HERIDOS_EN._SITIO_ACCIDENTE > 5)
str(filtro_1)
## 'data.frame': 91 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2018-01-11T00:00:00.000" "2018-01-15T00:00:00.000" "2018-03-07T00:00:00.000" "2018-03-27T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "09:40:00:am" "03:00:00:am" "06:55:00:am" "05:10:00:pm" ...
## $ GRAVEDAD_ACCIDENTE : chr "Con heridos" "Con heridos" "Con heridos" "Con heridos" ...
## $ CLASE_ACCIDENTE : chr "Choque" "Choque" "Choque" "Choque" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "CR 44 CL 51" "CR 46 CL 64" "CALLE 110 CARRERA 5" "CALLE 72 CARRERA 46" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: num 7 8 11 7 8 8 6 6 10 8 ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: num 0 0 0 0 0 0 0 0 0 0 ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ...
## $ MES_ACCIDENTE : chr "January" "January" "March" "March" ...
## $ DIA_ACCIDENTE : chr "Thu" "Mon" "Wed" "Tue" ...
filtro_2 <- filter(datos_temp, AÑO_ACCIDENTE>2017 & AÑO_ACCIDENTE <2020 )
str(filtro_2)
## 'data.frame': 11543 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "01:30:00:am" "02:00:00:pm" "04:00:00:am" "04:30:00:am" ...
## $ GRAVEDAD_ACCIDENTE : chr "Con heridos" "Solo daños" "Solo daños" "Solo daños" ...
## $ CLASE_ACCIDENTE : chr "Atropello" "Choque" "Choque" "Choque" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "CL 87 9H 24" "CL 110 CR 46" "AV CIRCUNVALAR CR 9G" "CLLE 72 CRA 29" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: num 1 0 0 0 0 3 1 0 0 0 ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: num 0 0 0 0 0 0 0 0 0 0 ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ...
## $ MES_ACCIDENTE : chr "January" "January" "January" "January" ...
## $ DIA_ACCIDENTE : chr "Mon" "Mon" "Mon" "Mon" ...
filtro_3 <- filter(datos_temp, AÑO_ACCIDENTE>2021 & AÑO_ACCIDENTE<2024 & CANT_MUERTOS_EN._SITIO_ACCIDENTE>0)
str(filtro_3)
## 'data.frame': 96 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2022-01-03T00:00:00.000" "2022-01-09T00:00:00.000" "2022-01-16T00:00:00.000" "2022-01-24T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "08:30:00:am" "09:09:00:pm" "03:15:00:am" "04:20:00:am" ...
## $ GRAVEDAD_ACCIDENTE : chr "Con muertos" "Con muertos" "Con muertos" "Con muertos" ...
## $ CLASE_ACCIDENTE : chr "Atropello" "Atropello" "Choque" "Atropello" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "VIA 40 # 76-252" "AV. CORDIALIDAD CALLE 47 # 218-69" "CRA 47 CALLE 58" "CALLE 45 # 32-74" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: num 0 1 0 0 0 2 2 1 2 2 ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: num 1 1 1 1 1 1 2 1 1 1 ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 ...
## $ MES_ACCIDENTE : chr "January" "January" "January" "January" ...
## $ DIA_ACCIDENTE : chr "Mon" "Sun" "Sun" "Mon" ...
filtro_4 <- filter(datos_temp, CANT_HERIDOS_EN._SITIO_ACCIDENTE<1 & CANT_MUERTOS_EN._SITIO_ACCIDENTE<1)
str(filtro_4)
## 'data.frame': 15457 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" "2018-01-01T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "02:00:00:pm" "04:00:00:am" "04:30:00:am" "05:20:00:pm" ...
## $ GRAVEDAD_ACCIDENTE : chr "Solo daños" "Solo daños" "Solo daños" "Solo daños" ...
## $ CLASE_ACCIDENTE : chr "Choque" "Choque" "Choque" "Choque" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "CL 110 CR 46" "AV CIRCUNVALAR CR 9G" "CLLE 72 CRA 29" "VIA 40 CALLE 75" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: num 0 0 0 0 0 0 0 0 0 0 ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: num 0 0 0 0 0 0 0 0 0 0 ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ...
## $ MES_ACCIDENTE : chr "January" "January" "January" "January" ...
## $ DIA_ACCIDENTE : chr "Mon" "Mon" "Mon" "Mon" ...
filtro_5 <- filter(datos_temp, CANT_HERIDOS_EN._SITIO_ACCIDENTE>9 & CANTIDAD_ACCIDENTES<2)
str(filtro_5)
## 'data.frame': 33 obs. of 11 variables:
## $ FECHA_ACCIDENTE : chr "2018-03-07T00:00:00.000" "2018-08-07T00:00:00.000" "2018-10-25T00:00:00.000" "2018-12-03T00:00:00.000" ...
## $ HORA_ACCIDENTE : chr "06:55:00:am" "08:30:00:am" "08:10:00:pm" "11:40:00:pm" ...
## $ GRAVEDAD_ACCIDENTE : chr "Con heridos" "Con heridos" "Con heridos" "Con heridos" ...
## $ CLASE_ACCIDENTE : chr "Choque" "Choque" "Choque" "Volcamiento" ...
## $ SITIO_EXACTO_ACCIDENTE : chr "CALLE 110 CARRERA 5" "CORDIALIDAD KM 115 + 800" "CL 78 21B 415" "CR 44 CL 66" ...
## $ CANT_HERIDOS_EN._SITIO_ACCIDENTE: num 11 10 12 20 22 13 10 12 13 12 ...
## $ CANT_MUERTOS_EN._SITIO_ACCIDENTE: num 0 0 0 0 0 0 0 1 0 0 ...
## $ CANTIDAD_ACCIDENTES : int 1 1 1 1 1 1 1 1 1 1 ...
## $ AÑO_ACCIDENTE : int 2018 2018 2018 2018 2019 2019 2019 2019 2020 2020 ...
## $ MES_ACCIDENTE : chr "March" "August" "October" "December" ...
## $ DIA_ACCIDENTE : chr "Wed" "Tue" "Thu" "Mon" ...
Utilice la función table para explorar la base de datos.
Para explorar la base de datos usamos la función table() para analizar la frecuencia y comportamiento de cada variable en la base de datos y entender más la estructura de la base de datos. Además, se implementarán diagramas de barras en las variables donde se puede hacer.
table(datos$GRAVEDAD_ACCIDENTE)
##
## Con heridos Con muertos Solo daños
## 9901 252 15457
barplot(sort(table(datos$GRAVEDAD_ACCIDENTE), decreasing=TRUE), las=2)
table(datos$CLASE_ACCIDENTE)
##
## Atropello Caida Ocupante Choque Incendio Otro
## 1344 194 23819 13 123
## Volcamiento
## 117
barplot(sort(table(datos$CLASE_ACCIDENTE), decreasing=TRUE), las=2)
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
barplot(sort(table(datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE), decreasing=TRUE), las=2)
table(datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE)
##
## 1 2
## 243 9
barplot(sort(table(datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE), decreasing=TRUE), las=2)
table(datos$CANTIDAD_ACCIDENTES)
##
## 1 2
## 25605 5
barplot(sort(table(datos$CANTIDAD_ACCIDENTES), decreasing=TRUE), las=2)
table(datos$AÑO_ACCIDENTE)
##
## 2018 2019 2020 2021 2022 2023 2024
## 5898 5645 3281 4700 3683 1662 741
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
table(datos$DIA_ACCIDENTE)
##
## Fri Mon Sat Sun Thu Tue Wed
## 3920 3774 3735 2577 3756 4009 3839
Solo se puede usar la función table() con estas variables porque las demás variabes guardan valores muy distintos entre sí y que tienen poca frecuencia. Por tal motivo, para visualizar esos datos se necesitan graficos muy extensos, trabajarlos por intervalos o solo guardarlos, por ejemplo la variable sitio exacto, cada accidente tiene un sitio diferente y es dificil medir a menos que se usen otras técnicas.
Identifique los valores NA (Not Available) en la base de datos.
La base de datos tiene algunos datos que no aparecen al usar la
función head(), por ejemplo en la variable que mide la cantidad de
muertos en el sitio, esta no mide los datos vacios como una frecuencia,
en este caso no hay frecuencia para los accidentes donde no hay muertos
y se reflejan como NA (Not Available).
Ahora buscaremos los indices de cada columna donde haya datos tipo NA.
Lo haremos tomando la cadena vacia y guardando en un vector los indices
donde hay un NA (esto para cada variable).
PASO 1
Para identificar los datos NA, descartaré cuales variables no tienen datos vacios, en este caso la frecuencia recolectada table será usada para saber si la suma de todas concuerda con la dimensión de la base de datos que es de 25610.
dimension_datos=25610
resumen_fecha=table(datos$FECHA_ACCIDENTE)
total_fecha=sum(resumen_fecha)
total_fecha
## [1] 25610
resumen_hora=table(datos$HORA_ACCIDENTE)
total_hora=sum(resumen_hora)
total_hora
## [1] 25610
resumen_gravedad=table(datos$GRAVEDAD_ACCIDENTE)
total_gravedad=sum(resumen_gravedad)
total_gravedad
## [1] 25610
resumen_clase=table(datos$CLASE_ACCIDENTE)
total_clase=sum(resumen_clase)
total_clase
## [1] 25610
resumen_sitio=table(datos$SITIO_EXACTO_ACCIDENTE)
total_sitio=sum(resumen_sitio)
total_sitio
## [1] 25610
resumen_heridos=table(datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE)
total_heridos=sum(resumen_heridos)
total_heridos
## [1] 9984
Acá se puede apreciar que la suma de las frecuencias en table(datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE) no corresponde a la dimensión de la base de datos, por tanto, hay datos NA vacios que no son contados como tal.
resumen_muertos=table(datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE)
total_muertos=sum(resumen_muertos)
total_muertos
## [1] 252
Acá ocurre lo mismo que en la prueba anterior, casillas vacias.
resumen_cantidad=table(datos$CANTIDAD_ACCIDENTES)
total_cantidad=sum(resumen_cantidad)
total_cantidad
## [1] 25610
resumen_ano=table(datos$AÑO_ACCIDENTE)
total_ano=sum(resumen_ano)
total_ano
## [1] 25610
resumen_mes=table(datos$MES_ACCIDENTE)
total_mes=sum(resumen_mes)
total_mes
## [1] 25610
resumen_dia=table(datos$DIA_ACCIDENTE)
total_dia=sum(resumen_dia)
total_dia
## [1] 25610
Ahora sabemos que las variables que guardan la cantidad de heridos y la cantidad de muertos, son las que tienen datos vacios o no validos, los cuales se clasifican como NA.
PASO 2
Ahora hay que buscar los valores no validos en estas variables y guardar sus indices en vectores para saber la posición de cada espacio en blanco.
indices_NA_heridos=which(is.na(datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE))
length(indices_NA_heridos)
## [1] 15626
Vemos que en el vector “indices_NA_heridos” se encuentran los indices donde hay datos vacios y rectificamos la dimensión de este que es 15626, la sumamos con la suma de frecuencias en el paso 1 de esta variable y nos da 25610 que corresponde a la dimensión de la base de datos.Por tanto, 15626 son los datos NA que se encuentran en esta variable.
indices_NA_muertos=which(is.na(datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE))
length(indices_NA_muertos)
## [1] 25358
Haciendo lo mismo con la variable de cantidad de heridos, vemos que 25358 son los datos NA que aparecen en esta variable.
Además, según lo analizado en los puntos anteriores se puede inferir que en las variables FECHA_ACCIDENTE, HORA_ACCIDENTE y SITIO_EXACTO_ACCIDENTE, pueden haber datos mal registrados dado el contenido de estos, por ejemplo, si una dirección está mal registrada o si la hora al ser leída fue con el horario militar.
Analice la presencia de posibles valores atípicos.
Primero se reemplazan los valores NA con 0 en las variables que se
estudiarán.
Para este punto se indetificará los valores atípicos de las variables
numéricas: cantidad de heridos, cantidad de muertos y cantidad de
accidentes. Para analizar los valores atipicos de cada variable,
usaremos el grafico de caja y bigotes con la función boxplot().
datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE[is.na(datos$CANT_HERIDOS_EN._SITIO_ACCIDENTE)] <- 0
datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE[is.na(datos$CANT_MUERTOS_EN._SITIO_ACCIDENTE)] <- 0
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="C.Accidentes")
Podemos apreciar que:
- La variable heridos tiene algunos valores atípicos muy altos.
- La variable muertos tiene algunos valores atipicos altos.
- La variable C.accidentes tiene algunos valores atípicos altos.
Finalizado esto, podemos dar por terminada la actividad.