Se propone abordar la primera fase de un proyecto de analítica de datos: la fase descriptiva. Para este sprint se pide cargar y transformar los datos facilitados en el link de descarga solo para los años 2012 a 2018.
Familiarizarse con problemas reales basados en datos abiertos. Reproducir paso a paso la primera parte de un proyecto de analítica de datos: carga y limpieza de datos, y análisis exploratorio inicial. En este caso, un reto relacionado con la predicción de accidentes de tráfico, conectado así con el sector Transportes.
Se cargan las librerias y los datos a trabajar.
options(repos = c(CRAN = "https://cloud.r-project.org"))
# Instalar y cargar las bibliotecas necesarias
# install.packages(c("tidyverse", "lubridate", "readxl", "ggmap"))
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate)
library(readxl)
library(ggmap)
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
## Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
## OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.
library(dplyr)
# Cargar los datos
data <- read_excel("/Users/anadinezio/Downloads/ADP_Clase 1/Sprint1Table.xlsx")
# Analitica exploratoria basica
View(data) #lo comento para que me permita generar el html
summary(data)
## FECHA RANGO HORARIO DIA SEMANA
## Min. :2012-01-01 00:00:00.00 Length:199078 Length:199078
## 1st Qu.:2013-11-17 00:00:00.00 Class :character Class :character
## Median :2015-08-26 00:00:00.00 Mode :character Mode :character
## Mean :2015-08-04 11:54:54.02
## 3rd Qu.:2017-05-11 00:00:00.00
## Max. :2018-12-31 00:00:00.00
##
## DISTRITO LUGAR ACCIDENTE Nº Nº PARTE
## Length:199078 Length:199078 Min. : 0.0 Length:199078
## Class :character Class :character 1st Qu.: 0.0 Class :character
## Mode :character Mode :character Median : 1.0 Mode :character
## Mean : 968.7
## 3rd Qu.: 50.0
## Max. :53500.0
## NA's :3087
## CPFA Granizo CPFA Hielo CPFA Lluvia CPFA Niebla
## Length:199078 Length:199078 Length:199078 Length:199078
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## CPFA Seco CPFA Nieve CPSV Mojada CPSV Aceite
## Length:199078 Length:199078 Length:199078 Length:199078
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## CPSV Barro CPSV Grava Suelta CPSV Hielo CPSV Seca Y Limpia
## Length:199078 Length:199078 Length:199078 Length:199078
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## Nº VICTIMAS * TIPO ACCIDENTE Tipo Vehiculo TIPO PERSONA
## Min. : 1.00 Length:199078 Length:199078 Length:199078
## 1st Qu.: 1.00 Class :character Class :character Class :character
## Median : 1.00 Mode :character Mode :character Mode :character
## Mean : 1.46
## 3rd Qu.: 2.00
## Max. :19.00
##
## SEXO LESIVIDAD Tramo Edad
## Length:199078 Length:199078 Length:199078
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
print(data)
## # A tibble: 199,078 × 26
## FECHA `RANGO HORARIO` `DIA SEMANA` DISTRITO `LUGAR ACCIDENTE`
## <dttm> <chr> <chr> <chr> <chr>
## 1 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 2 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 3 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 4 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 5 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE… AVENIDA DE SAN D…
## 6 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE… AVENIDA DE SAN D…
## 7 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE… AVENIDA DE SAN D…
## 8 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE… AVENIDA DE SAN D…
## 9 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE… AVENIDA DE SAN D…
## 10 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO TETUAN CALLE DE BRAVO M…
## # ℹ 199,068 more rows
## # ℹ 21 more variables: Nº <dbl>, `Nº PARTE` <chr>, `CPFA Granizo` <chr>,
## # `CPFA Hielo` <chr>, `CPFA Lluvia` <chr>, `CPFA Niebla` <chr>,
## # `CPFA Seco` <chr>, `CPFA Nieve` <chr>, `CPSV Mojada` <chr>,
## # `CPSV Aceite` <chr>, `CPSV Barro` <chr>, `CPSV Grava Suelta` <chr>,
## # `CPSV Hielo` <chr>, `CPSV Seca Y Limpia` <chr>, `Nº VICTIMAS *` <dbl>,
## # `TIPO ACCIDENTE` <chr>, `Tipo Vehiculo` <chr>, `TIPO PERSONA` <chr>, …
head(data)
## # A tibble: 6 × 26
## FECHA `RANGO HORARIO` `DIA SEMANA` DISTRITO `LUGAR ACCIDENTE`
## <dttm> <chr> <chr> <chr> <chr>
## 1 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 2 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 3 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 4 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO CENTRO CALLE DE LA PRIN…
## 5 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE … AVENIDA DE SAN D…
## 6 2012-01-01 00:00:00 DE 2:00 A 2:59 DOMINGO PUENTE DE … AVENIDA DE SAN D…
## # ℹ 21 more variables: Nº <dbl>, `Nº PARTE` <chr>, `CPFA Granizo` <chr>,
## # `CPFA Hielo` <chr>, `CPFA Lluvia` <chr>, `CPFA Niebla` <chr>,
## # `CPFA Seco` <chr>, `CPFA Nieve` <chr>, `CPSV Mojada` <chr>,
## # `CPSV Aceite` <chr>, `CPSV Barro` <chr>, `CPSV Grava Suelta` <chr>,
## # `CPSV Hielo` <chr>, `CPSV Seca Y Limpia` <chr>, `Nº VICTIMAS *` <dbl>,
## # `TIPO ACCIDENTE` <chr>, `Tipo Vehiculo` <chr>, `TIPO PERSONA` <chr>,
## # SEXO <chr>, LESIVIDAD <chr>, `Tramo Edad` <chr>
tail(data)
## # A tibble: 6 × 26
## FECHA `RANGO HORARIO` `DIA SEMANA` DISTRITO `LUGAR ACCIDENTE`
## <dttm> <chr> <chr> <chr> <chr>
## 1 2018-12-31 00:00:00 DE 21:00 A 21:59 LUNES SALAMANCA CALLE DE VELAZQUE…
## 2 2018-12-31 00:00:00 DE 21:00 A 21:59 LUNES SALAMANCA CALLE DE VELAZQUE…
## 3 2018-12-31 00:00:00 DE 21:00 A 21:59 LUNES SALAMANCA CALLE DE VELAZQUE…
## 4 2018-12-31 00:00:00 DE 23:00 A 23:59 LUNES HORTALEZA CALLE DE JOAQUIN …
## 5 2018-12-31 00:00:00 DE 23:00 A 23:59 LUNES HORTALEZA CALLE DE JOAQUIN …
## 6 2018-12-31 00:00:00 DE 23:00 A 23:59 LUNES HORTALEZA CALLE DE JOAQUIN …
## # ℹ 21 more variables: Nº <dbl>, `Nº PARTE` <chr>, `CPFA Granizo` <chr>,
## # `CPFA Hielo` <chr>, `CPFA Lluvia` <chr>, `CPFA Niebla` <chr>,
## # `CPFA Seco` <chr>, `CPFA Nieve` <chr>, `CPSV Mojada` <chr>,
## # `CPSV Aceite` <chr>, `CPSV Barro` <chr>, `CPSV Grava Suelta` <chr>,
## # `CPSV Hielo` <chr>, `CPSV Seca Y Limpia` <chr>, `Nº VICTIMAS *` <dbl>,
## # `TIPO ACCIDENTE` <chr>, `Tipo Vehiculo` <chr>, `TIPO PERSONA` <chr>,
## # SEXO <chr>, LESIVIDAD <chr>, `Tramo Edad` <chr>
str(data)
## tibble [199,078 × 26] (S3: tbl_df/tbl/data.frame)
## $ FECHA : POSIXct[1:199078], format: "2012-01-01" "2012-01-01" ...
## $ RANGO HORARIO : chr [1:199078] "DE 2:00 A 2:59" "DE 2:00 A 2:59" "DE 2:00 A 2:59" "DE 2:00 A 2:59" ...
## $ DIA SEMANA : chr [1:199078] "DOMINGO" "DOMINGO" "DOMINGO" "DOMINGO" ...
## $ DISTRITO : chr [1:199078] "CENTRO" "CENTRO" "CENTRO" "CENTRO" ...
## $ LUGAR ACCIDENTE : chr [1:199078] "CALLE DE LA PRINCESA NUM" "CALLE DE LA PRINCESA NUM" "CALLE DE LA PRINCESA NUM" "CALLE DE LA PRINCESA NUM" ...
## $ Nº : num [1:199078] 10 10 10 10 96 96 96 96 96 0 ...
## $ Nº PARTE : chr [1:199078] "2012/98" "2012/98" "2012/98" "2012/98" ...
## $ CPFA Granizo : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPFA Hielo : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPFA Lluvia : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPFA Niebla : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPFA Seco : chr [1:199078] "SI" "SI" "SI" "SI" ...
## $ CPFA Nieve : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Mojada : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Aceite : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Barro : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Grava Suelta : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Hielo : chr [1:199078] "NO" "NO" "NO" "NO" ...
## $ CPSV Seca Y Limpia: chr [1:199078] "SI" "SI" "SI" "SI" ...
## $ Nº VICTIMAS * : num [1:199078] 2 2 2 2 1 1 1 1 1 3 ...
## $ TIPO ACCIDENTE : chr [1:199078] "ATROPELLO" "ATROPELLO" "ATROPELLO" "ATROPELLO" ...
## $ Tipo Vehiculo : chr [1:199078] "NO ASIGNADO" "NO ASIGNADO" "NO ASIGNADO" "AUTO-TAXI" ...
## $ TIPO PERSONA : chr [1:199078] "PEATON" "PEATON" "TESTIGO" "CONDUCTOR" ...
## $ SEXO : chr [1:199078] "HOMBRE" "MUJER" "HOMBRE" "HOMBRE" ...
## $ LESIVIDAD : chr [1:199078] "HL" "HL" "IL" "IL" ...
## $ Tramo Edad : chr [1:199078] "DE 25 A 29 AÑOS" "DE 25 A 29 AÑOS" "DESCONOCIDA" "DE 35 A 39 AÑOS" ...
glimpse(data)
## Rows: 199,078
## Columns: 26
## $ FECHA <dttm> 2012-01-01, 2012-01-01, 2012-01-01, 2012-01-01, …
## $ `RANGO HORARIO` <chr> "DE 2:00 A 2:59", "DE 2:00 A 2:59", "DE 2:00 A 2:…
## $ `DIA SEMANA` <chr> "DOMINGO", "DOMINGO", "DOMINGO", "DOMINGO", "DOMI…
## $ DISTRITO <chr> "CENTRO", "CENTRO", "CENTRO", "CENTRO", "PUENTE D…
## $ `LUGAR ACCIDENTE` <chr> "CALLE DE LA PRINCESA NUM", "CALLE DE LA PRINCESA…
## $ Nº <dbl> 10, 10, 10, 10, 96, 96, 96, 96, 96, 0, 0, 0, 0, 0…
## $ `Nº PARTE` <chr> "2012/98", "2012/98", "2012/98", "2012/98", "2012…
## $ `CPFA Granizo` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPFA Hielo` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPFA Lluvia` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPFA Niebla` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPFA Seco` <chr> "SI", "SI", "SI", "SI", "SI", "SI", "SI", "SI", "…
## $ `CPFA Nieve` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Mojada` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Aceite` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Barro` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Grava Suelta` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Hielo` <chr> "NO", "NO", "NO", "NO", "NO", "NO", "NO", "NO", "…
## $ `CPSV Seca Y Limpia` <chr> "SI", "SI", "SI", "SI", "SI", "SI", "SI", "SI", "…
## $ `Nº VICTIMAS *` <dbl> 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1…
## $ `TIPO ACCIDENTE` <chr> "ATROPELLO", "ATROPELLO", "ATROPELLO", "ATROPELLO…
## $ `Tipo Vehiculo` <chr> "NO ASIGNADO", "NO ASIGNADO", "NO ASIGNADO", "AUT…
## $ `TIPO PERSONA` <chr> "PEATON", "PEATON", "TESTIGO", "CONDUCTOR", "COND…
## $ SEXO <chr> "HOMBRE", "MUJER", "HOMBRE", "HOMBRE", "HOMBRE", …
## $ LESIVIDAD <chr> "HL", "HL", "IL", "IL", "IL", "IL", "IL", "HL", "…
## $ `Tramo Edad` <chr> "DE 25 A 29 AÑOS", "DE 25 A 29 AÑOS", "DESCONOCID…
Despues de una exploracion basica de los datos se hacen tablas por variable y graficas simples.
# Tablas por variable
table(data$`DIA SEMANA`)
##
## DOMINGO JUEVES LUNES MARTES MIERCOLES SABADO VIERNES
## 21500 30565 28771 29729 30484 23946 34083
table(data$`RANGO HORARIO`)
##
## DE 00:00 A 00:59 DE 1:00 A 1:59 DE 10:00 A 10:59 DE 11:00 A 11:59
## 3688 2700 9159 9761
## DE 12:00 A 12:59 DE 13:00 A 13:59 DE 14:00 A 14:59 DE 15:00 A 15:59
## 11340 12667 14575 11664
## DE 16:00 A 16:59 DE 17:00 A 17:59 DE 18:00 A 18:59 DE 19:00 A 19:59
## 10677 11249 12647 14232
## DE 2:00 A 2:59 DE 20:00 A 20:59 DE 21:00 A 21:59 DE 22:00 A 22:59
## 2111 13619 11164 8398
## DE 23:00 A 23:59 DE 3:00 A 3:59 DE 4:00 A 4:59 DE 5:00 A 5:59
## 5602 1728 1520 1612
## DE 6:00 A 6:59 DE 7:00 A 7:59 DE 8:00 A 8:59 DE 9:00 A 9:59
## 2954 5090 9376 11545
table(data$DISTRITO)
##
## ARGANZUELA BARAJAS CARABANCHEL CENTRO
## 10246 2749 12225 13791
## CHAMARTIN CHAMBERI CIUDAD LINEAL FUENCARRAL-EL PARDO
## 14736 11354 12876 10745
## HORTALEZA LATINA MONCLOA-ARAVACA MORATALAZ
## 6875 9532 10446 4955
## PUENTE DE VALLECAS RETIRO SALAMANCA SAN BLAS
## 12825 10873 15288 9574
## TETUAN USERA VICALVARO VILLA DE VALLECAS
## 10763 6975 2486 4434
## VILLAVERDE
## 5330
table(data$`TIPO ACCIDENTE`)
##
## ATROPELLO CAÍDA BICICLETA CAÍDA CICLOMOTOR
## 31775 2309 1963
## CAÍDA MOTOCICLETA CAÍDA VEHÍCULO 3 RUEDAS CAÍDA VIAJERO BUS
## 11730 19 2169
## CHOQUE CON OBJETO FIJO COLISIÓN DOBLE COLISIÓN MÚLTIPLE
## 9741 114867 22802
## OTRAS CAUSAS VUELCO
## 845 858
table(data$`Nº VICTIMAS *`)
##
## 1 2 3 4 5 6 7 8 9 10 11
## 145861 33474 10878 4718 2113 808 603 200 96 97 44
## 12 13 14 15 16 18 19
## 28 27 33 17 19 20 42
table(data$LESIVIDAD)
##
## HG HL IL MT NO ASIGNADA
## 6886 80869 103251 212 7860
table(data$`Tipo Vehiculo`)
##
## AMBULANCIA AUTO-TAXI AUTOBUS-AUTOCAR BICICLETA CAMION
## 408 6417 5540 4743 1864
## CICLOMOTOR FURGONETA MOTOCICLETA NO ASIGNADO TURISMO
## 4508 7758 26713 36409 103035
## VARIOS VEH.3 RUEDAS
## 1640 43
table(data$`TIPO PERSONA`)
##
## CONDUCTOR PEATON TESTIGO VIAJERO
## 125534 11692 24725 37127
table(data$SEXO)
##
## HOMBRE MUJER NO ASIGNADO
## 125962 63840 9276
# Histograma nro de victimas
hist (data$`Nº VICTIMAS *`)
#Formateamos los datos para operaciones que haremos posteriormente
data$`TIPO_ACCIDENTE` <- as.factor(data$`TIPO ACCIDENTE`)
data$`LESIVIDAD_` <- as.factor(data$`LESIVIDAD`)
data$`TIPO_VEHÍCULO` <- as.factor(data$`Tipo Vehiculo`)
data$`TIPO_PERSONA` <- as.factor(data$`TIPO PERSONA`)
data$`RANGO_EDAD` <- as.factor(data$`Tramo Edad`)
data$`RANGO_HORARIO` <- as.factor(data$`RANGO HORARIO`)
data$SEXO_ <- as.factor(data$SEXO)
data$`NUMERO_VICTIMAS` <- as.factor(data$`Nº VICTIMAS *`)
data$YEAR <- factor(year(data$FECHA))
data$`DIA_SEMANA` <- as.factor(data$`DIA SEMANA`)
data$`LUGAR_ACCIDENTE` <- as.factor(data$`LUGAR ACCIDENTE`)
# Graficos de barras basico
plot(data$`YEAR`)
plot(data$SEXO_)
plot(data$`TIPO_VEHÍCULO`)
plot(data$`TIPO_ACCIDENTE`)
plot(data$`TIPO_PERSONA`)
plot(data$`LESIVIDAD_`)
plot(data$`RANGO_EDAD`)
plot(data$`RANGO_HORARIO`)
plot(data$`LUGAR_ACCIDENTE`)
# Convertir la columna de fecha a formato de fecha y agregar una columna de año
data <- data %>%
mutate(FECHA = as.Date(FECHA, format = "%Y-%m-%d"),
YEAR =year(data$FECHA))
# Graficar la frecuencia de accidentes a lo largo del tiempo
data %>%
count(YEAR) %>%
ggplot(aes(x = YEAR, y = n)) +
geom_line() +
labs(title = "Frecuencia de Accidentes a lo Largo del Tiempo", x = "Año", y = "Número de Accidentes")
#### Accidentes por dia de la semana
# Graficar accidentes por dia de la semana
data %>%
count(`DIA SEMANA`) %>%
ggplot(aes(x = `DIA SEMANA`, y = n)) +
geom_bar(stat = "identity") +
labs(title = "Accidentes por Día de la Semana", x = "Día de la Semana", y = "Número de Accidentes")
# Gráfico de barras apiladas
ggplot(data, aes(x ='cpfa granizo' , fill = LESIVIDAD_)) +
geom_bar() +
labs(title = "Relación entre Granizo y Lesividad", x = "Granizo", y = "Frecuencia")
# Graficar tipos de accidentes
data %>%
count(`TIPO ACCIDENTE`) %>%
ggplot(aes(x = "", y = n, fill = `TIPO ACCIDENTE`)) +
geom_bar(width = 1, stat = "identity") +
coord_polar("y") +
labs(title = "Tipos de Accidentes", x = "", y = "") +
theme(axis.text.x = element_blank(), axis.ticks = element_blank())
# Graficar severidad de los accidentes
data %>%
count(DISTRITO, LESIVIDAD) %>%
ggplot(aes(x = DISTRITO, y = n, fill = LESIVIDAD)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Severidad de los Accidentes por Distrito", x = "Distrito", y = "Número de Accidentes") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Graficar severidad de los accidentes
data %>%
count(DISTRITO, TIPO_ACCIDENTE) %>%
ggplot(aes(x = DISTRITO, y = n, fill = TIPO_ACCIDENTE)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Tipo de Accidentes por Distrito", x = "Distrito", y = "Número de Accidentes") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# calculo de nro de accidentes por dia
# Contamos el número de accidentes por día
resumen_accidentes_dia <- table(data$FECHA)
# media del nro de accidentes por dia
promedio_accidentes_dia <- mean(resumen_accidentes_dia)
print(promedio_accidentes_dia)
## [1] 77.85608
# Convertir la columna FECHA a tipo fecha (si aún no lo es)
data$FECHA <- ymd(data$FECHA)
# Contar accidentes por día y año
resumen_accidentes_dia_año <- data %>%
mutate(Año = year(FECHA)) %>%
group_by(Año, FECHA) %>%
summarise(Accidentes = n())
## `summarise()` has grouped output by 'Año'. You can override using the `.groups`
## argument.
# Calcular el promedio diario de accidentes por año
promedio_accidentes_por_año <- resumen_accidentes_dia_año %>%
group_by(Año) %>%
summarise(Promedio_Accidentes = mean(Accidentes))
print(promedio_accidentes_por_año)
## # A tibble: 7 × 2
## Año Promedio_Accidentes
## <dbl> <dbl>
## 1 2012 73.7
## 2 2013 73.5
## 3 2014 76.6
## 4 2015 77.2
## 5 2016 79.8
## 6 2017 81.6
## 7 2018 82.5
Una vez cargada la tabla y llevado a cabo el tratamiento de datos inicial, se debe proceder con un análisis exploratorio descriptivo (sencillo) respondiendo a las siguientes preguntas:
¿Qué datos interesa explorar en esta fase? .
En esta fase, es fundamental entender la cantidad de registros (filas) y
campos (columnas) presentes, así como el tipo de variables (si son
categóricas o numéricas). Además, es importante analizar la distribución
temporal de los accidentes y explorar cada una de las variables para
comprender su comportamiento y características.
¿Qué figuras, tablas, gráficas pueden ayudar a comprender los
datos con los que contamos?.
Tablas simples para entender la composición de cada categoría dentro de
las variables categóricas.
Histogramas para visualizar la distribución de frecuencias de los
datos.
Gráficos de barras para conocer las frecuencias de las variables
numéricas y las categorías de las variables categóricas.
Gráficos más complejos con colores para diferenciar las categorías y
facilitar la interpretación de los datos.
¿Qué conclusiones se obtienen tras este análisis exploratorio
inicial?. En esta fase inicial se puede decir de los datos
que:
-el nro de accidentes aumenta con el paso del tiempo.
-los hombres sufren el DOBLE de accidentes que las mujeres.
-la EDAD con MAS accidentes es de 25 a 54 años.
-los CONDUCTORES son los que MAS sufren accidentes (vs testigo, peaton,
viajero).
-los accidentes MAS frecuentes son de COLISION DOBLE.
-el tipo de vehiculo que MAS sufre accidente es de TURISMO.
-la mayoria de los accidentes tienen heridos LEVES o ILESOS, son muy
pocos los accidentes con heridos graves o muertes.
-los DISTRITOS de Salamanca y Chamartin son los que MAS accidentes
reportan.
-los DISTRITOS de Barajas y Vicalvaro son los que MENOS accidentes
reportan.
-los VIERNES son los dias que MAS accidentes se reportan. El DOMINGO el
que menos.