dfacci <- read.csv("/Users/juansebastianquintanacontreras/Documents/6 semestre/Accidentalidad_en_Barranquilla_20240826.csv")
DT::datatable(dfacci, options = list(pageLength = 5))
names(dfacci)
## [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"
dim(dfacci)
## [1] 25610 11
str(dfacci)
## '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" ...
La base de datos contiene 25,610 observaciones y 11 variables. A continuación, se describen las variables:
Como observamos, vamos a realizar un análisis separando las variables categóricas y las numéricas.
summary(dfacci$FECHA_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$HORA_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$GRAVEDAD_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$CLASE_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$SITIO_EXACTO_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$MES_ACCIDENTE)
## Length Class Mode
## 25610 character character
summary(dfacci$DIA_ACCIDENTE)
## Length Class Mode
## 25610 character character
Observamos que la cantidad de datos de las variables es de 25,610, y todas son del tipo carácter.
barplot(sort(table(dfacci$CLASE_ACCIDENTE),decreasing=TRUE), col = "lightblue", main = "Frecuencia de Clases de Accidentes", las = 2)
table(dfacci$CLASE_ACCIDENTE)
##
## Atropello Caida Ocupante Choque Incendio Otro
## 1344 194 23819 13 123
## Volcamiento
## 117
barplot(sort(table(dfacci$GRAVEDAD_ACCIDENTE),decreasing=TRUE), col = "#FF7F50", main = "Frecuencia de Gravedad de Accidentes")
table(dfacci$GRAVEDAD_ACCIDENTE)
##
## Con heridos Con muertos Solo daños
## 9901 252 15457
barplot(sort(table(dfacci$MES_ACCIDENTE),decreasing=TRUE), col = "#CAFF70", main = "Frecuencia de Mes de Accidentes", las = 2)
table(dfacci$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
barplot(sort(table(dfacci$DIA_ACCIDENTE),decreasing=TRUE), col = "#BF3EFF", main = "Frecuencia de Dia de Accidentes")
table(dfacci$DIA_ACCIDENTE)
##
## Fri Mon Sat Sun Thu Tue Wed
## 3920 3774 3735 2577 3756 4009 3839
En esta sección, presentamos gráficas que muestran la distribución de los datos en función de varias categorías relacionadas con los accidentes.
En la gráfica de Clase de Accidente, la mayoría de los datos se concentran en la categoría “Choque”, con 23,819 casos, mientras que la menor concentración se encuentra en “Incendio”, con solo 13 casos.
En la gráfica de Gravedad de Accidentes, la mayor concentración está en “Solo daños”, con 15,457 casos, y la menor en “De muertos”, con 252 casos.
En la gráfica de Mes de Accidente, febrero tiene el mayor número de accidentes, con 2,477, y agosto tiene el menor, con 1,918 accidentes en el mes.
En la gráfica de Día de Accidente, el día con mayor concentración de accidentes es el martes, con 4,009, y el día con menor concentración es el domingo, con 2,577.
## Warning: Removed 20059 rows containing non-finite values (`stat_count()`).
addmargins(table(dfacci$CLASE_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE))
##
## Con heridos Con muertos Solo daños Sum
## Atropello 1266 78 0 1344
## Caida Ocupante 188 6 0 194
## Choque 8277 157 15385 23819
## Incendio 1 0 12 13
## Otro 83 8 32 123
## Volcamiento 86 3 28 117
## Sum 9901 252 15457 25610
chisq.test(table(dfacci$CLASE_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE))
##
## Pearson's Chi-squared test
##
## data: table(dfacci$CLASE_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE)
## X-squared = 2846.9, df = 10, p-value < 2.2e-16
addmargins(table(dfacci$DIA_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE))
##
## Con heridos Con muertos Solo daños Sum
## Fri 1468 33 2419 3920
## Mon 1507 43 2224 3774
## Sat 1474 36 2225 3735
## Sun 1256 55 1266 2577
## Thu 1355 28 2373 3756
## Tue 1439 25 2545 4009
## Wed 1402 32 2405 3839
## Sum 9901 252 15457 25610
chisq.test(table(dfacci$DIA_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE))
##
## Pearson's Chi-squared test
##
## data: table(dfacci$DIA_ACCIDENTE, dfacci$GRAVEDAD_ACCIDENTE)
## X-squared = 206.58, df = 12, p-value < 2.2e-16
addmargins(table(dfacci$MES_ACCIDENTE, dfacci$CLASE_ACCIDENTE))
##
## Atropello Caida Ocupante Choque Incendio Otro Volcamiento Sum
## April 98 20 1871 0 12 9 2010
## August 83 13 1800 1 12 9 1918
## December 121 21 2028 2 10 7 2189
## February 130 15 2310 1 7 14 2477
## January 133 20 2181 2 9 4 2349
## July 83 5 1831 1 6 6 1932
## June 114 12 1952 0 11 14 2103
## March 126 20 2268 1 17 14 2446
## May 104 23 1968 2 11 13 2121
## November 110 16 1849 0 11 9 1995
## October 123 16 1930 2 8 11 2090
## September 119 13 1831 1 9 7 1980
## Sum 1344 194 23819 13 123 117 25610
chisq.test(table(dfacci$MES_ACCIDENTE, dfacci$CLASE_ACCIDENTE))
##
## Pearson's Chi-squared test
##
## data: table(dfacci$MES_ACCIDENTE, dfacci$CLASE_ACCIDENTE)
## X-squared = 53.967, df = 55, p-value = 0.5141
1. Distribución por Mes y Clase de Accidente:
La clase de accidente más frecuente es Choque, con 23,819 casos, mientras que la menos común es Incendio con solo 13 incidentes.
Los accidentes parecen estar distribuidos de manera más uniforme a lo largo de los meses, con febrero registrando la mayor cantidad de accidentes (2,477) y agosto la menor (1,918).
2. Distribución por Gravedad de Accidentes y Clase de Accidente
3. Distribución por Día de la Semana y Gravedad de Accidentes
4. Pruebas de Chi-cuadrado
summary(dfacci$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
summary(dfacci$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
summary(dfacci$CANTIDAD_ACCIDENTES)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1 1 1 1 1 2
summary(dfacci$AÑO_ACCIDENTE)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2018 2019 2020 2020 2021 2024
hist(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE,
main = "Distribución de Heridos en el Sitio del Accidente",
xlab = "Cantidad de Heridos en el Sitio del Accidente", col = "lightblue", border = "blue")
boxcanth <- boxplot(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE,
main = "Boxplot de Heridos en el Sitio del Accidente",
ylab = "Cantidad de Heridos en el Sitio del Accidente", col = "lightblue", border = "blue")
hist(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE,
main = "Distribución de Muertos en el Sitio del Accidente",
xlab = "Cantidad de Muertos en el Sitio del Accidente", col = "lightcoral", border = "red")
boxcantm <- boxplot(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE,
main = "Boxplot de Muertos en el Sitio del Accidente",
ylab = "Cantidad de Muertos en el Sitio del Accidente", col = "lightcoral", border = "red")
CANTIDAD_ACCIDENTES parece estar repartido
en 1 y 2, con la mayoría de los registros reportando un solo accidente y
muy pocos casos con dos accidentes.AÑO_ACCIDENTE muestra que
los datos abarcan desde 2018 hasta 2024. Hay una disminución notable en
los reportes de accidentes en los últimos años.Se elaboró un mapa de calor para evaluar las correlaciones entre las variables numéricas:
CANT_HERIDOS_EN._SITIO_ACCIDENTE y
CANT_MUERTOS_EN._SITIO_ACCIDENTE (0.23), lo cual es lógico,
dado que en accidentes con más heridos es más probable que también haya
fallecidos.CANTIDAD_ACCIDENTES muestra una correlación positiva
perfecta consigo misma y con AÑO_ACCIDENTE, lo cual es
esperable.canth <- table(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE)
canth
##
## 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
cantm <- table(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE)
cantm
##
## 1 2
## 243 9
canta <- table(dfacci$CANTIDAD_ACCIDENTES)
canta
##
## 1 2
## 25605 5
anoa <- table(dfacci$AÑO_ACCIDENTE)
anoa
##
## 2018 2019 2020 2021 2022 2023 2024
## 5898 5645 3281 4700 3683 1662 741
Se presentan las tablas de frecuencia para las variables categóricas y numéricas discretas:
df2020 <- dfacci[dfacci$AÑO_ACCIDENTE == 2020, ]
head(df2020)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 11544 2020-01-01 05:00:00:pm Solo daños Choque
## 11545 2020-01-01 05:30:00:am Solo daños Choque
## 11546 2020-01-01 05:40:00:pm Solo daños Choque
## 11547 2020-01-01 08:00:00:pm Con heridos Choque
## 11548 2020-01-01 08:10:00:pm Solo daños Choque
## 11549 2020-01-01 09:00:00:pm Solo daños Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 11544 AV CIRCUNVALAR CL 96 NA
## 11545 CR 10 CL 10 NA
## 11546 CL 114 CR 42 NA
## 11547 CL 86 CR 9L 1
## 11548 CL 72 CR 44 25 NA
## 11549 CL 19 CR 2 NA
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 11544 NA 1 2020
## 11545 NA 1 2020
## 11546 NA 1 2020
## 11547 NA 1 2020
## 11548 NA 1 2020
## 11549 NA 1 2020
## MES_ACCIDENTE DIA_ACCIDENTE
## 11544 January Wed
## 11545 January Wed
## 11546 January Wed
## 11547 January Wed
## 11548 January Wed
## 11549 January Wed
dfheri <- dfacci[dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE > 0, ]
head(dfheri)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 1 2018-01-01 01:30:00:am Con heridos Atropello
## NA <NA> <NA> <NA> <NA>
## NA.1 <NA> <NA> <NA> <NA>
## NA.2 <NA> <NA> <NA> <NA>
## NA.3 <NA> <NA> <NA> <NA>
## 6 2018-01-01 06:00:00:pm Con heridos Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 1 CL 87 9H 24 1
## NA <NA> NA
## NA.1 <NA> NA
## NA.2 <NA> NA
## NA.3 <NA> NA
## 6 CR 8 CL 41 3
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 1 NA 1 2018
## NA NA NA NA
## NA.1 NA NA NA
## NA.2 NA NA NA
## NA.3 NA NA NA
## 6 NA 1 2018
## MES_ACCIDENTE DIA_ACCIDENTE
## 1 January Mon
## NA <NA> <NA>
## NA.1 <NA> <NA>
## NA.2 <NA> <NA>
## NA.3 <NA> <NA>
## 6 January Mon
dfchoq <- dfacci[dfacci$CLASE_ACCIDENTE == "Choque", ]
head(dfchoq)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 2 2018-01-01 02:00:00:pm Solo daños Choque
## 3 2018-01-01 04:00:00:am Solo daños Choque
## 4 2018-01-01 04:30:00:am Solo daños Choque
## 5 2018-01-01 05:20:00:pm Solo daños Choque
## 6 2018-01-01 06:00:00:pm Con heridos Choque
## 8 2018-01-02 02:30:00:pm Solo daños Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 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
## 8 CARRERA 25 37-42 NA
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 2 NA 1 2018
## 3 NA 1 2018
## 4 NA 1 2018
## 5 NA 1 2018
## 6 NA 1 2018
## 8 NA 1 2018
## MES_ACCIDENTE DIA_ACCIDENTE
## 2 January Mon
## 3 January Mon
## 4 January Mon
## 5 January Mon
## 6 January Mon
## 8 January Tue
dfmanan <- dfacci[dfacci$MES_ACCIDENTE == "July", ]
head(dfmanan)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 2918 2018-07-01 01:30:00:am Con heridos Atropello
## 2919 2018-07-01 02:00:00:pm Solo daños Choque
## 2920 2018-07-01 02:00:00:pm Solo daños Choque
## 2921 2018-07-01 03:00:00:pm Solo daños Choque
## 2922 2018-07-01 05:00:00:pm Con heridos Choque
## 2923 2018-07-01 05:30:00:pm Solo daños Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 2918 CARRERA 15 SUR 72-16 1
## 2919 CARRERA 46 CALLE 42B NA
## 2920 CL 74 CR 57 NA
## 2921 CL 5 CR 30 NA
## 2922 AVENIDA CIRCUNVALAR CARRERA 39 2
## 2923 CALLE 94 CARRERA 4B NA
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 2918 NA 1 2018
## 2919 NA 1 2018
## 2920 NA 1 2018
## 2921 NA 1 2018
## 2922 NA 1 2018
## 2923 NA 1 2018
## MES_ACCIDENTE DIA_ACCIDENTE
## 2918 July Sun
## 2919 July Sun
## 2920 July Sun
## 2921 July Sun
## 2922 July Sun
## 2923 July Sun
dfsit <- dfacci[dfacci$SITIO_EXACTO_ACCIDENTE == "CL 110 CR 9G", ]
head(dfsit)
## FECHA_ACCIDENTE HORA_ACCIDENTE GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 1220 2018-03-17 09:00:00:pm Con heridos Choque
## 3240 2018-07-21 12:40:00:pm Solo daños Choque
## 3669 2018-08-20 10:30:00:am Con heridos Choque
## 3674 2018-08-21 02:00:00:pm Con heridos Choque
## 3796 2018-08-29 08:30:00:am Con heridos Choque
## 4096 2018-09-16 10:00:00:am Solo daños Choque
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 1220 CL 110 CR 9G 2
## 3240 CL 110 CR 9G NA
## 3669 CL 110 CR 9G 2
## 3674 CL 110 CR 9G 2
## 3796 CL 110 CR 9G 1
## 4096 CL 110 CR 9G NA
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES AÑO_ACCIDENTE
## 1220 NA 1 2018
## 3240 NA 1 2018
## 3669 NA 1 2018
## 3674 NA 1 2018
## 3796 NA 1 2018
## 4096 NA 1 2018
## MES_ACCIDENTE DIA_ACCIDENTE
## 1220 March Sat
## 3240 July Sat
## 3669 August Mon
## 3674 August Tue
## 3796 August Wed
## 4096 September Sun
Observamos cómo se distribuyen los accidentes en el año 2020, además de los accidentes que resultan en uno o más heridos. También analizamos los accidentes clasificados como choques y aquellos accidentes que pasaron en el mes de “July”. Por último, se muestra el lugar que previamente se identificó como el sitio con más accidentes.
sum(is.na(dfacci))
## [1] 40984
colSums(is.na(dfacci))
## FECHA_ACCIDENTE HORA_ACCIDENTE
## 0 0
## GRAVEDAD_ACCIDENTE CLASE_ACCIDENTE
## 0 0
## SITIO_EXACTO_ACCIDENTE CANT_HERIDOS_EN._SITIO_ACCIDENTE
## 0 15626
## CANT_MUERTOS_EN._SITIO_ACCIDENTE CANTIDAD_ACCIDENTES
## 25358 0
## AÑO_ACCIDENTE MES_ACCIDENTE
## 0 0
## DIA_ACCIDENTE
## 0
unique(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE)
## [1] 1 NA 3 2 5 7 8 4 11 6 10 12 20 22 13 9 16 14 42 19 21 23 18 15
unique(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE)
## [1] NA 1 2
suppressWarnings(require(Amelia))
## Loading required package: Amelia
## Loading required package: Rcpp
## ##
## ## Amelia II: Multiple Imputation
## ## (Version 1.8.2, built: 2024-04-10)
## ## Copyright (C) 2005-2024 James Honaker, Gary King and Matthew Blackwell
## ## Refer to http://gking.harvard.edu/amelia/ for more information
## ##
suppressWarnings(missmap(dfacci))
suppressWarnings(missmap(as.data.frame(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE)))
suppressWarnings(missmap(as.data.frame(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE)))
Al analizar los valores NA en las variables CANT_HERIDOS_EN._SITIO_ACCIDENTE y CANT_MUERTOS_EN._SITIO_ACCIDENTE, se puede deducir que estos representan un “0” en esos casos, ya que los valores presentes en estas variables no incluyen el 0, como se observó anteriormente. No obstante, vamos a proceder con una serie de imputaciones utilizando los métodos dados en clase, como “norm.nob”, “norm”, “pmm” y “norm.predict”.
df_subset <- data.frame(
CANT_HERIDOS_EN_SITIO_ACCIDENTE = dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE,
CANT_MUERTOS_EN_SITIO_ACCIDENTE = dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE
)
methods1 <- c("pmm", "norm.predict")
impucamyh1 <- mice(df_subset, method = methods1, m = 1, maxit = 5)
##
## iter imp variable
## 1 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 2 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 3 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 4 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 5 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
imp1 <- complete(impucamyh1)
head(imp1)
## CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 1 1 1.008943
## 2 1 1.008943
## 3 1 1.008943
## 4 1 1.008943
## 5 1 1.008943
## 6 3 1.084745
methods2 <- c("norm.nob", "norm")
impucamyh2 <- mice(df_subset, method = methods2, m = 1, maxit = 5)
##
## iter imp variable
## 1 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 2 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 3 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 4 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 5 1 CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
imp2 <- complete(impucamyh2)
head(imp2, main = "metodos de inputacion norm.nob, norm", )
## CANT_HERIDOS_EN_SITIO_ACCIDENTE CANT_MUERTOS_EN_SITIO_ACCIDENTE
## 1 1.0000000 1.0144790
## 2 0.6917852 0.8377020
## 3 0.9222113 1.0686513
## 4 1.5872494 1.0712101
## 5 1.8544242 0.6772743
## 6 3.0000000 1.0298078
Observamos cómo, mediante los métodos de imputación, se realizó el respectivo reemplazo de las variables con valores NA según el método utilizado.
p1 <- ggplot(dfacci, aes(y = CANT_HERIDOS_EN._SITIO_ACCIDENTE)) +
geom_boxplot(fill = "lightblue", color = "blue") +
labs(title = "Boxplot de Heridos en el Sitio del Accidente", y = "Cantidad de Heridos")
p2 <- ggplot(dfacci, aes(y = CANT_MUERTOS_EN._SITIO_ACCIDENTE)) +
geom_boxplot(fill = "lightcoral", color = "red") +
labs(title = "Boxplot de Muertos en el Sitio del Accidente", y = "Cantidad de Muertos")
p3 <- ggplot(dfacci, aes(y = CANTIDAD_ACCIDENTES)) +
geom_boxplot(fill = "darkolivegreen2", color = "green") +
labs(title = "Boxplot de Cantidad de Accidentes", y = "Cantidad de Accidentes")
p4 <- ggplot(dfacci, aes(y = AÑO_ACCIDENTE)) +
geom_boxplot(fill = "orchid1", color = "purple") +
labs(title = "Boxplot del Año del Accidente", y = "Año del Accidente")
grid.arrange(p1, p2, p3, p4, ncol = 2)
## Warning: Removed 15626 rows containing non-finite values (`stat_boxplot()`).
## Warning: Removed 25358 rows containing non-finite values (`stat_boxplot()`).
CANT_HERIDOS_EN._SITIO_ACCIDENTE, CANT_MUERTOS_EN._SITIO_ACCIDENTE, CANTIDAD_ACCIDENTES, y AÑO_ACCIDENTE. A continuación, se describen los resultados obtenidos para cada variable.
Hipótesis:
grubbs.test(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE)
##
## Grubbs test for one outlier
##
## data: dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE
## G = 35.03637, U = 0.87702, p-value < 2.2e-16
## alternative hypothesis: highest value 42 is an outlier
grubbs.test(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE, opposite = TRUE)
##
## Grubbs test for one outlier
##
## data: dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE
## G = 0.40774, U = 0.99998, p-value = 1
## alternative hypothesis: lowest value 1 is an outlier
grubbs.test(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE)
##
## Grubbs test for one outlier
##
## data: dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE
## G = 5.18583, U = 0.89243, p-value = 1.246e-05
## alternative hypothesis: highest value 2 is an outlier
grubbs.test(dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE, opposite = TRUE)
##
## Grubbs test for one outlier
##
## data: dfacci$CANT_MUERTOS_EN._SITIO_ACCIDENTE
## G = 0.19207, U = 0.99985, p-value = 1
## alternative hypothesis: lowest value 1 is an outlier
grubbs.test(dfacci$CANTIDAD_ACCIDENTES)
##
## Grubbs test for one outlier
##
## data: dfacci$CANTIDAD_ACCIDENTES
## G = 71.55977, U = 0.80003, p-value < 2.2e-16
## alternative hypothesis: highest value 2 is an outlier
grubbs.test(dfacci$CANTIDAD_ACCIDENTES, opposite = TRUE)
##
## Grubbs test for one outlier
##
## data: dfacci$CANTIDAD_ACCIDENTES
## G = 0.013974, U = 1.000000, p-value = 1
## alternative hypothesis: lowest value 1 is an outlier
grubbs.test(dfacci$AÑO_ACCIDENTE)
##
## Grubbs test for one outlier
##
## data: dfacci$AÑO_ACCIDENTE
## G = 2.2752, U = 0.9998, p-value = 1
## alternative hypothesis: highest value 2024 is an outlier
grubbs.test(dfacci$AÑO_ACCIDENTE, opposite = TRUE)
##
## Grubbs test for one outlier
##
## data: dfacci$AÑO_ACCIDENTE
## G = 1.22560, U = 0.99994, p-value = 1
## alternative hypothesis: lowest value 2018 is an outlier
1. Variable: CANT_HERIDOS_EN._SITIO_ACCIDENTE:
2. Variable: CANT_MUERTOS_EN._SITIO_ACCIDENTE:
3. Variable: CANTIDAD_ACCIDENTES:
4. Variable: AÑO_ACCIDENTE
test <- rosnerTest(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE, k =152)
## Warning in rosnerTest(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE, k = 152): 15626
## observations with NA/NaN/Inf in 'x' removed.
## Warning in rosnerTest(dfacci$CANT_HERIDOS_EN._SITIO_ACCIDENTE, k = 152): The true Type I error may be larger than assumed.
## Although the help file for 'rosnerTest' has a table with information
## on the estimated Type I error level,
## simulations were not run for k > 10 or k > floor(n/2).
test$all.stats
## i Mean.i SD.i Value Obs.Num R.i+1 lambda.i+1 Outlier
## 1 0 1.471655 1.1567509 42 21268 35.036365 4.562185 TRUE
## 2 1 1.467595 1.0833463 23 24471 19.875828 4.562164 TRUE
## 3 2 1.465438 1.0617436 22 7117 19.340415 4.562143 TRUE
## 4 3 1.463380 1.0417086 21 23372 18.754399 4.562122 TRUE
## 5 4 1.461423 1.0232368 20 5434 18.117583 4.562100 TRUE
## 6 5 1.459565 1.0063157 19 22779 17.430350 4.562079 TRUE
## 7 6 1.457807 0.9909249 18 24502 16.693690 4.562058 TRUE
## 8 7 1.456149 0.9770351 16 13184 14.885700 4.562037 TRUE
## 9 8 1.454691 0.9661707 15 24714 14.019582 4.562016 TRUE
## 10 9 1.453333 0.9566515 14 19479 13.115190 4.561994 TRUE
## 11 10 1.452075 0.9484133 14 25275 13.230439 4.561973 TRUE
## 12 11 1.450817 0.9400996 13 9107 12.285063 4.561952 TRUE
## 13 12 1.449659 0.9330045 13 12001 12.379727 4.561931 TRUE
## 14 13 1.448501 0.9258521 12 4747 11.396528 4.561909 TRUE
## 15 14 1.447442 0.9198472 12 11308 11.472076 4.561888 TRUE
## 16 15 1.446384 0.9138005 12 12870 11.549147 4.561867 TRUE
## 17 16 1.445325 0.9077110 12 13289 11.627793 4.561846 TRUE
## 18 17 1.444266 0.9015779 12 20361 11.708067 4.561824 TRUE
## 19 18 1.443207 0.8954002 12 23366 11.790027 4.561803 TRUE
## 20 19 1.442148 0.8891772 12 24631 11.873733 4.561782 TRUE
## 21 20 1.441088 0.8829078 11 1047 10.826626 4.561761 TRUE
## 22 21 1.440128 0.8777422 11 17452 10.891435 4.561739 TRUE
## 23 22 1.439169 0.8725439 11 18713 10.957422 4.561718 TRUE
## 24 23 1.438209 0.8673123 11 20406 11.024622 4.561697 TRUE
## 25 24 1.437249 0.8620469 11 23337 11.093075 4.561676 TRUE
## 26 25 1.436289 0.8567470 11 24952 11.162819 4.561654 TRUE
## 27 26 1.435328 0.8514119 10 3461 10.059375 4.561633 TRUE
## 28 27 1.434468 0.8471166 10 11105 10.111397 4.561612 TRUE
## 29 28 1.433608 0.8427976 10 14225 10.164234 4.561591 TRUE
## 30 29 1.432747 0.8384547 10 15825 10.217908 4.561569 TRUE
## 31 30 1.431887 0.8340874 10 20907 10.272441 4.561548 TRUE
## 32 31 1.431026 0.8296953 10 22673 10.327857 4.561527 TRUE
## 33 32 1.430165 0.8252780 10 24328 10.384180 4.561505 TRUE
## 34 33 1.429304 0.8208352 9 12178 9.223163 4.561484 TRUE
## 35 34 1.428543 0.8173595 9 12716 9.263313 4.561463 TRUE
## 36 35 1.427782 0.8138676 9 18667 9.303993 4.561442 TRUE
## 37 36 1.427021 0.8103592 9 21472 9.345213 4.561420 TRUE
## 38 37 1.426259 0.8068342 9 22807 9.386985 4.561399 TRUE
## 39 38 1.425498 0.8032922 9 22900 9.429323 4.561378 TRUE
## 40 39 1.424736 0.7997331 8 172 8.221822 4.561356 TRUE
## 41 40 1.424075 0.7970501 8 2019 8.250329 4.561335 TRUE
## 42 41 1.423413 0.7943568 8 2181 8.279134 4.561314 TRUE
## 43 42 1.422752 0.7916533 8 3561 8.308243 4.561293 TRUE
## 44 43 1.422090 0.7889394 8 4109 8.337661 4.561271 TRUE
## 45 44 1.421429 0.7862151 8 4976 8.367394 4.561250 TRUE
## 46 45 1.420767 0.7834802 8 14345 8.397447 4.561229 TRUE
## 47 46 1.420105 0.7807346 8 20264 8.427826 4.561207 TRUE
## 48 47 1.419442 0.7779781 8 24707 8.458538 4.561186 TRUE
## 49 48 1.418780 0.7752108 7 118 7.199616 4.561165 TRUE
## 50 49 1.418218 0.7732246 7 1389 7.218836 4.561143 TRUE
## 51 50 1.417657 0.7712324 7 8824 7.238212 4.561122 TRUE
## 52 51 1.417095 0.7692343 7 12690 7.257744 4.561101 TRUE
## 53 52 1.416532 0.7672302 7 14417 7.277435 4.561079 TRUE
## 54 53 1.415970 0.7652200 7 15407 7.297287 4.561058 TRUE
## 55 54 1.415408 0.7632037 7 16102 7.317302 4.561037 TRUE
## 56 55 1.414845 0.7611812 7 16777 7.337484 4.561015 TRUE
## 57 56 1.414283 0.7591525 7 22373 7.357833 4.560994 TRUE
## 58 57 1.413720 0.7571176 7 22754 7.378352 4.560973 TRUE
## 59 58 1.413157 0.7550763 7 23241 7.399044 4.560951 TRUE
## 60 59 1.412594 0.7530287 7 23408 7.419911 4.560930 TRUE
## 61 60 1.412031 0.7509746 7 24653 7.440955 4.560909 TRUE
## 62 61 1.411468 0.7489141 7 25360 7.462180 4.560887 TRUE
## 63 62 1.410905 0.7468470 6 2349 6.144625 4.560866 TRUE
## 64 63 1.410442 0.7454620 6 3295 6.156662 4.560845 TRUE
## 65 64 1.409980 0.7440737 6 4797 6.168771 4.560823 TRUE
## 66 65 1.409517 0.7426824 6 9129 6.180950 4.560802 TRUE
## 67 66 1.409054 0.7412878 6 9484 6.193203 4.560781 TRUE
## 68 67 1.408591 0.7398900 6 12889 6.205528 4.560759 TRUE
## 69 68 1.408128 0.7384891 6 13072 6.217928 4.560738 TRUE
## 70 69 1.407665 0.7370848 6 13661 6.230402 4.560717 TRUE
## 71 70 1.407202 0.7356774 6 15414 6.242951 4.560695 TRUE
## 72 71 1.406739 0.7342666 6 16466 6.255577 4.560674 TRUE
## 73 72 1.406275 0.7328526 6 18086 6.268279 4.560652 TRUE
## 74 73 1.405812 0.7314352 6 18620 6.281060 4.560631 TRUE
## 75 74 1.405348 0.7300145 6 18903 6.293918 4.560610 TRUE
## 76 75 1.404884 0.7285905 6 19226 6.306856 4.560588 TRUE
## 77 76 1.404421 0.7271631 6 20565 6.319874 4.560567 TRUE
## 78 77 1.403957 0.7257323 6 20818 6.332973 4.560546 TRUE
## 79 78 1.403493 0.7242981 6 20926 6.346154 4.560524 TRUE
## 80 79 1.403029 0.7228604 6 21236 6.359418 4.560503 TRUE
## 81 80 1.402565 0.7214193 6 22476 6.372765 4.560481 TRUE
## 82 81 1.402100 0.7199747 6 22663 6.386196 4.560460 TRUE
## 83 82 1.401636 0.7185266 6 22834 6.399713 4.560439 TRUE
## 84 83 1.401172 0.7170750 6 22847 6.413315 4.560417 TRUE
## 85 84 1.400707 0.7156199 6 22998 6.427005 4.560396 TRUE
## 86 85 1.400242 0.7141612 6 23454 6.440783 4.560374 TRUE
## 87 86 1.399778 0.7126989 6 23477 6.454650 4.560353 TRUE
## 88 87 1.399313 0.7112330 6 24137 6.468607 4.560332 TRUE
## 89 88 1.398848 0.7097635 6 24241 6.482655 4.560310 TRUE
## 90 89 1.398383 0.7082903 6 24495 6.496795 4.560289 TRUE
## 91 90 1.397918 0.7068135 6 24851 6.511028 4.560267 TRUE
## 92 91 1.397453 0.7053329 5 76 5.107584 4.560246 TRUE
## 93 92 1.397089 0.7044378 5 1023 5.114592 4.560225 TRUE
## 94 93 1.396724 0.7035411 5 1657 5.121628 4.560203 TRUE
## 95 94 1.396360 0.7026429 5 1815 5.128693 4.560182 TRUE
## 96 95 1.395996 0.7017432 5 2558 5.135788 4.560160 TRUE
## 97 96 1.395631 0.7008420 5 2617 5.142913 4.560139 TRUE
## 98 97 1.395267 0.6999392 5 2714 5.150067 4.560117 TRUE
## 99 98 1.394902 0.6990349 5 3211 5.157251 4.560096 TRUE
## 100 99 1.394537 0.6981290 5 3686 5.164465 4.560075 TRUE
## 101 100 1.394172 0.6972216 5 4028 5.171709 4.560053 TRUE
## 102 101 1.393808 0.6963127 5 5147 5.178984 4.560032 TRUE
## 103 102 1.393443 0.6954022 5 5356 5.186290 4.560010 TRUE
## 104 103 1.393078 0.6944901 5 6678 5.193627 4.559989 TRUE
## 105 104 1.392713 0.6935764 5 7747 5.200995 4.559967 TRUE
## 106 105 1.392347 0.6926611 5 8961 5.208395 4.559946 TRUE
## 107 106 1.391982 0.6917443 5 9640 5.215826 4.559924 TRUE
## 108 107 1.391617 0.6908259 5 10024 5.223289 4.559903 TRUE
## 109 108 1.391252 0.6899058 5 10325 5.230784 4.559882 TRUE
## 110 109 1.390886 0.6889842 5 12631 5.238312 4.559860 TRUE
## 111 110 1.390521 0.6880609 5 12692 5.245872 4.559839 TRUE
## 112 111 1.390155 0.6871360 5 13139 5.253465 4.559817 TRUE
## 113 112 1.389789 0.6862095 5 13444 5.261091 4.559796 TRUE
## 114 113 1.389424 0.6852813 5 14382 5.268751 4.559774 TRUE
## 115 114 1.389058 0.6843515 5 14674 5.276443 4.559753 TRUE
## 116 115 1.388692 0.6834201 5 14832 5.284170 4.559731 TRUE
## 117 116 1.388326 0.6824870 5 15031 5.291931 4.559710 TRUE
## 118 117 1.387960 0.6815522 5 15517 5.299726 4.559688 TRUE
## 119 118 1.387594 0.6806158 5 15541 5.307556 4.559667 TRUE
## 120 119 1.387228 0.6796777 5 16574 5.315420 4.559645 TRUE
## 121 120 1.386861 0.6787379 5 16979 5.323320 4.559624 TRUE
## 122 121 1.386495 0.6777964 5 17389 5.331254 4.559603 TRUE
## 123 122 1.386129 0.6768532 5 17941 5.339225 4.559581 TRUE
## 124 123 1.385762 0.6759083 5 18817 5.347231 4.559560 TRUE
## 125 124 1.385396 0.6749617 5 19438 5.355274 4.559538 TRUE
## 126 125 1.385029 0.6740134 5 19880 5.363352 4.559517 TRUE
## 127 126 1.384662 0.6730633 5 20475 5.371468 4.559495 TRUE
## 128 127 1.384295 0.6721115 5 20613 5.379620 4.559474 TRUE
## 129 128 1.383929 0.6711580 5 21194 5.387810 4.559452 TRUE
## 130 129 1.383562 0.6702027 5 21970 5.396037 4.559431 TRUE
## 131 130 1.383195 0.6692456 5 22443 5.404302 4.559409 TRUE
## 132 131 1.382828 0.6682868 5 22472 5.412605 4.559388 TRUE
## 133 132 1.382460 0.6673262 5 22750 5.420946 4.559366 TRUE
## 134 133 1.382093 0.6663638 5 22884 5.429327 4.559345 TRUE
## 135 134 1.381726 0.6653996 5 22971 5.437746 4.559323 TRUE
## 136 135 1.381359 0.6644337 5 23021 5.446204 4.559302 TRUE
## 137 136 1.380991 0.6634659 5 23921 5.454702 4.559280 TRUE
## 138 137 1.380624 0.6624963 5 24087 5.463240 4.559259 TRUE
## 139 138 1.380256 0.6615249 5 24105 5.471818 4.559237 TRUE
## 140 139 1.379888 0.6605517 5 24233 5.480437 4.559215 TRUE
## 141 140 1.379521 0.6595766 5 24382 5.489096 4.559194 TRUE
## 142 141 1.379153 0.6585997 5 24433 5.497797 4.559172 TRUE
## 143 142 1.378785 0.6576209 5 24638 5.506539 4.559151 TRUE
## 144 143 1.378417 0.6566402 5 25071 5.515323 4.559129 TRUE
## 145 144 1.378049 0.6556577 5 25097 5.524149 4.559108 TRUE
## 146 145 1.377681 0.6546733 5 25125 5.533018 4.559086 TRUE
## 147 146 1.377312 0.6536870 5 25240 5.541930 4.559065 TRUE
## 148 147 1.376944 0.6526988 5 25551 5.550885 4.559043 TRUE
## 149 148 1.376576 0.6517087 4 246 4.025455 4.559022 FALSE
## 150 149 1.376309 0.6512047 4 259 4.028980 4.559000 FALSE
## 151 150 1.376042 0.6507000 4 603 4.032515 4.558979 FALSE
## 152 151 1.375775 0.6501948 4 644 4.036059 4.558957 FALSE
Aplicamos el Test de Rosner a la variable CANT_HERIDOS_EN._SITIO_ACCIDENTE debido a que, en la gráfica de boxplot, observamos una dispersión en los datos atípicos. Al realizar la prueba, se identificó que, a partir del dato 149, los valores dejan de considerarse atípicos, lo que sugiere que los datos previos a este punto son los verdaderos outliers.
head(dfgas)
## BANDERA NOMBRE.COMERCIAL PRODUCTO FECHA.REGISTRO
## 1 TERPEL ESTACION DE SERVICIO AVENIDA SEXTA GASOLINA MOTOR 01-Jan-2018
## 2 TERPEL ESTACION DE SERVICIO AVENIDA SEXTA DIESEL 01-Jan-2018
## 3 BIOMAX EDS ESSO BELLO MADERA EXTRA 01-Jan-2018
## 4 BIOMAX EDS ESSO BELLO MADERA DIESEL 01-Jan-2018
## 5 BIOMAX EDS ESSO BELLO MADERA GASOLINA MOTOR 01-Jan-2018
## 6 TERPEL ESTACION DE SERVICIO BOMBA VILLA LUZ DIESEL 01-Jan-2018
## DEPARTAMENTO MUNICIPIO VALOR.PRECIO
## 1 AMAZONAS LETICIA 9030
## 2 AMAZONAS LETICIA 8250
## 3 ANTIOQUIA BELLO 11390
## 4 ANTIOQUIA BELLO 8220
## 5 ANTIOQUIA BELLO 8320
## 6 ANTIOQUIA BETULIA 9050
names(dfgas)
## [1] "BANDERA" "NOMBRE.COMERCIAL" "PRODUCTO" "FECHA.REGISTRO"
## [5] "DEPARTAMENTO" "MUNICIPIO" "VALOR.PRECIO"
dim(dfgas)
## [1] 1223000 7
str(dfgas)
## 'data.frame': 1223000 obs. of 7 variables:
## $ BANDERA : chr "TERPEL" "TERPEL" "BIOMAX" "BIOMAX" ...
## $ NOMBRE.COMERCIAL: chr "ESTACION DE SERVICIO AVENIDA SEXTA" "ESTACION DE SERVICIO AVENIDA SEXTA" "EDS ESSO BELLO MADERA" "EDS ESSO BELLO MADERA" ...
## $ PRODUCTO : chr "GASOLINA MOTOR" "DIESEL" "EXTRA" "DIESEL" ...
## $ FECHA.REGISTRO : chr "01-Jan-2018" "01-Jan-2018" "01-Jan-2018" "01-Jan-2018" ...
## $ DEPARTAMENTO : chr "AMAZONAS" "AMAZONAS" "ANTIOQUIA" "ANTIOQUIA" ...
## $ MUNICIPIO : chr "LETICIA" "LETICIA" "BELLO" "BELLO" ...
## $ VALOR.PRECIO : num 9030 8250 11390 8220 8320 ...
summary(dfgas)
## BANDERA NOMBRE.COMERCIAL PRODUCTO FECHA.REGISTRO
## Length:1223000 Length:1223000 Length:1223000 Length:1223000
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## DEPARTAMENTO MUNICIPIO VALOR.PRECIO
## Length:1223000 Length:1223000 Min. : 0
## Class :character Class :character 1st Qu.: 8310
## Mode :character Mode :character Median : 8990
## Mean : 9542
## 3rd Qu.: 9685
## Max. :120000
El data frame contiene información sobre al menos las siguientes variables:
Hay 20 valores faltantes en la columna VALOR.PRECIO. El precio del gas tiene un rango bastante amplio, desde 0 hasta 79484.
table(dfgas$BANDERA)
##
## - AYATAWACOOP BIOMAX BRIO
## 177 32254 157832 3295
## COOMULPINORT DISCOM DISCOWACOOP ECOS
## 18939 12617 11962 15999
## ESSO OCTANO P Y B PETRDECOL
## 16664 5777 3907 9396
## PETROBRAS PETRODECOL PETROMIL PLUS MAS
## 25693 10126 71066 6756
## PRIMAX PROXXON PUMA SAVE
## 189431 788 14295 1308
## TERPEL TEXACO ZAPATA Y VELASQUEZ ZEUSS
## 451698 123957 3725 35338
table(dfgas$PRODUCTO)
##
## DIESEL EXTRA GASOLINA MOTOR
## 537933 164693 520374
table(head(dfgas$FECHA.REGISTRO, 50000))
##
## 01-Apr-2018 01-Feb-2018 01-Jan-2018 01-Mar-2018 02-Apr-2018 02-Feb-2018
## 878 5933 845 7259 839 4486
## 02-Jan-2018 02-Mar-2018 03-Feb-2018 03-Jan-2018 03-Mar-2018 04-Feb-2018
## 6140 2773 1464 2880 663 249
## 04-Jan-2018 04-Mar-2018 05-Feb-2018 05-Jan-2018 05-Mar-2018 06-Feb-2018
## 1318 134 1611 900 1046 825
## 06-Jan-2018 06-Mar-2018 07-Feb-2018 07-Jan-2018 07-Mar-2018 08-Feb-2018
## 156 724 645 28 536 510
## 08-Jan-2018 08-Mar-2018 09-Feb-2018 09-Jan-2018 09-Mar-2018 10-Feb-2018
## 54 305 328 261 240 82
## 10-Jan-2018 10-Mar-2018 11-Feb-2018 11-Jan-2018 11-Mar-2018 12-Feb-2018
## 170 66 19 300 17 234
## 12-Jan-2018 12-Mar-2018 13-Feb-2018 13-Jan-2018 13-Mar-2018 14-Feb-2018
## 152 169 162 77 129 202
## 14-Jan-2018 14-Mar-2018 15-Feb-2018 15-Jan-2018 15-Mar-2018 16-Feb-2018
## 21 207 278 107 113 226
## 16-Jan-2018 16-Mar-2018 17-Feb-2018 17-Jan-2018 17-Mar-2018 18-Feb-2018
## 76 87 66 139 50 17
## 18-Jan-2018 18-Mar-2018 19-Feb-2018 19-Jan-2018 19-Mar-2018 20-Feb-2018
## 99 11 163 87 14 93
## 20-Jan-2018 20-Mar-2018 21-Feb-2018 21-Jan-2018 21-Mar-2018 22-Feb-2018
## 45 99 121 5 93 76
## 22-Jan-2018 22-Mar-2018 23-Feb-2018 23-Jan-2018 23-Mar-2018 24-Feb-2018
## 92 89 92 85 130 52
## 24-Jan-2018 24-Mar-2018 25-Feb-2018 25-Jan-2018 25-Mar-2018 26-Feb-2018
## 97 50 5 85 17 93
## 26-Jan-2018 26-Mar-2018 27-Feb-2018 27-Jan-2018 27-Mar-2018 28-Feb-2018
## 116 126 93 52 96 141
## 28-Jan-2018 28-Mar-2018 29-Jan-2018 29-Mar-2018 30-Jan-2018 30-Mar-2018
## 12 93 122 10 54 13
## 31-Jan-2018 31-Mar-2018
## 70 13
table(dfgas$DEPARTAMENTO)
##
## -
## 177
## AMAZONAS
## 2826
## ANTIOQUIA
## 135851
## ARAUCA
## 10563
## ARCHIPIELAGO DE SAN ANDRES, SANTA CATALINA Y PROVIDENCIA
## 1276
## ATLANTICO
## 42723
## BOGOTA D.C.
## 89982
## BOLIVAR
## 33194
## BOYACA
## 42904
## CALDAS
## 25351
## CAQUETA
## 13057
## CASANARE
## 14463
## CAUCA
## 26016
## CESAR
## 75707
## CHOCO
## 12396
## CORDOBA
## 34395
## CUNDINAMARCA
## 80871
## GUAINIA
## 1575
## GUAVIARE
## 4039
## HUILA
## 29366
## LA GUAJIRA
## 48123
## MAGDALENA
## 19642
## META
## 30488
## NARIÑO
## 134055
## NORTE DE SANTANDER
## 53784
## PUTUMAYO
## 31125
## QUINDIO
## 12842
## RISARALDA
## 24557
## SANTANDER
## 48417
## SUCRE
## 18465
## TOLIMA
## 34734
## VALLE DEL CAUCA
## 85156
## VAUPES
## 473
## VICHADA
## 4407
En este resumen se muestran los datos relacionados con precios de combustible en Colombia y la distribución de ventas por marca y fecha:
ggplot(dfgas, aes(x = VALOR.PRECIO)) +
geom_bar(binwidth = 1, fill = "blue", color = "#A52A2A") +
facet_wrap(~ PRODUCTO, scales = "free_x") +
labs(title = "Histogramas de PRECIO por Tipo de Producto", x = "VALOR.PRECIO", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
## Warning in geom_bar(binwidth = 1, fill = "blue", color = "#A52A2A"): Ignoring
## unknown parameters: `binwidth`
Diesel: La distribución de precios para el Diesel parece ser más normal en comparación con los otros dos productos, con una menor concentración de precios en un rango específico.
Extra: La distribución de precios para el producto Extra es similar a la del Diesel, aunque con una ligera tendencia a tener precios ligeramente más altos.
Gasolina Motor: La distribución de precios para la Gasolina Motor es la más dispersa de las tres, con una mayor concentración de precios bajos y un pico muy pronunciado en un valor de precio específico.
valores_faltantes <- dfgas %>%
summarise(across(everything(), ~sum(is.na(.)))) %>%
pivot_longer(cols = everything(), names_to = "variable", values_to = "n_faltantes") %>%
filter(n_faltantes > 0)
print("Valores faltantes por variable:")
## [1] "Valores faltantes por variable:"
print(valores_faltantes)
## # A tibble: 0 × 2
## # ℹ 2 variables: variable <chr>, n_faltantes <int>
colSums(is.na(dfgas))
## BANDERA NOMBRE.COMERCIAL PRODUCTO FECHA.REGISTRO
## 0 0 0 0
## DEPARTAMENTO MUNICIPIO VALOR.PRECIO
## 0 0 0
suppressWarnings(require(Amelia))
suppressWarnings(missmap(dfgas))
suppressWarnings(missmap(as.data.frame(dfgas$VALOR.PRECIO)))
NA en la base de datos cuando se
realizaron los descriptivos por categoría, pero son muy pocos en
comparación con la cantidad total de datos disponibles.Con respecto a esto, realizaremos lo siguiente: Eliminaremos estos
valores faltantes (NA), ya que, aunque se observó su
presencia en el resumen, son muy pocos y no afectan significativamente
el análisis.
colSums(is.na(dfgana))
## BANDERA NOMBRE.COMERCIAL PRODUCTO FECHA.REGISTRO
## 0 0 0 0
## DEPARTAMENTO MUNICIPIO VALOR.PRECIO
## 0 0 0
Luego de inputacion
Como observamos en estos tres histogramas, no se presentó ningún cambio significativo en la distribución de las gráficas.
Ahora analizaremos visualmente utilizando un mapa
## ℹ © Stadia Maps © Stamen Design © OpenMapTiles © OpenStreetMap contributors.
## Reading layer `COLOMBIA' from data source
## `/Users/juansebastianquintanacontreras/Documents/Python _Act/coordenadas/COLOMBIA/COLOMBIA.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 33 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.73575 ymin: -4.227907 xmax: -66.84735 ymax: 13.39453
## Geodetic CRS: WGS 84
## Simple feature collection with 6 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.13556 ymin: 3.726892 xmax: -71.94853 ymax: 11.1092
## Geodetic CRS: WGS 84
## OBJECTID DPTO_CCDGO DPTO_NANO_ DPTO_CNMBR DPTO_CACTO
## 1 1 05 1886 ANTIOQUIA Constitucion Politica de 1886
## 2 2 08 1910 ATLANTICO Ley 21 de 1910
## 3 3 11 0 BOGOTA D.C. <NA>
## 4 4 13 1886 BOLIVAR Constitucion Politica de 1886
## 5 5 15 1886 BOYACA Constitucion Politica de 1886
## 6 6 17 1905 CALDAS 11 de Abril de 1905
## DPTO_NAREA DPTO_CSMBL DPTO_NANO PAIS_PAIS_ SHAPE_Leng SHAPE_Area
## 1 63063325603 3 2005 1 21.137035 5.1557833
## 2 3326730008 3 2005 2 2.461077 0.2748252
## 3 1633209262 3 2005 3 3.731288 0.1330445
## 4 26665590821 3 2005 4 15.706980 2.1910550
## 5 23077053534 3 2005 5 15.280968 1.8833146
## 6 7415932693 3 2005 6 6.614200 0.6047122
## geometry
## 1 MULTIPOLYGON (((-76.40481 8...
## 2 MULTIPOLYGON (((-74.82969 1...
## 3 MULTIPOLYGON (((-74.07274 4...
## 4 MULTIPOLYGON (((-75.24966 1...
## 5 MULTIPOLYGON (((-72.01129 7...
## 6 MULTIPOLYGON (((-74.67118 5...
library(sf)
dfcorde_sf <- st_as_sf(dfcorde, crs = 4326)
dfcorde_sf <- st_as_sf(dfcorde_sf, coords = c("longitude", "latitude"), crs = 4326)
print(head(dfcorde_sf))
## Simple feature collection with 6 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -77.13556 ymin: 3.726892 xmax: -71.94853 ymax: 11.1092
## Geodetic CRS: WGS 84
## OBJECTID DPTO_CCDGO DPTO_NANO_ DPTO_CNMBR DPTO_CACTO
## 1 1 05 1886 ANTIOQUIA Constitucion Politica de 1886
## 2 2 08 1910 ATLANTICO Ley 21 de 1910
## 3 3 11 0 BOGOTA D.C. <NA>
## 4 4 13 1886 BOLIVAR Constitucion Politica de 1886
## 5 5 15 1886 BOYACA Constitucion Politica de 1886
## 6 6 17 1905 CALDAS 11 de Abril de 1905
## DPTO_NAREA DPTO_CSMBL DPTO_NANO PAIS_PAIS_ SHAPE_Leng SHAPE_Area
## 1 63063325603 3 2005 1 21.137035 5.1557833
## 2 3326730008 3 2005 2 2.461077 0.2748252
## 3 1633209262 3 2005 3 3.731288 0.1330445
## 4 26665590821 3 2005 4 15.706980 2.1910550
## 5 23077053534 3 2005 5 15.280968 1.8833146
## 6 7415932693 3 2005 6 6.614200 0.6047122
## geometry
## 1 MULTIPOLYGON (((-76.40481 8...
## 2 MULTIPOLYGON (((-74.82969 1...
## 3 MULTIPOLYGON (((-74.07274 4...
## 4 MULTIPOLYGON (((-75.24966 1...
## 5 MULTIPOLYGON (((-72.01129 7...
## 6 MULTIPOLYGON (((-74.67118 5...
ggplot(data = dfcorde_sf) +
geom_sf() +
ggtitle("Mapa de Coordenadas") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) # Centra el título
Se promedia el valor de precio, que es donde se encuentra el precio de la gasolina, diésel y extra, para poder graficar en el mapa. Esto permite que el computador pueda trabajar de manera más eficiente, ya que de no hacerlo, el archivo sería demasiado pesado.
resumdi <- dfgas %>%
filter(PRODUCTO == 'DIESEL') %>%
group_by(DEPARTAMENTO) %>%
summarise(precio = mean(VALOR.PRECIO, na.rm = TRUE)) %>%
ungroup()
print(resumdi)
## # A tibble: 34 × 2
## DEPARTAMENTO precio
## <chr> <dbl>
## 1 - 8961.
## 2 AMAZONAS 10740.
## 3 ANTIOQUIA 9105.
## 4 ARAUCA 8332.
## 5 ARCHIPIELAGO DE SAN ANDRES 10098.
## 6 ATLANTICO 8630.
## 7 BOGOTA D.C. 8787.
## 8 BOLIVAR 8715.
## 9 BOYACA 8997.
## 10 CALDAS 8993.
## # ℹ 24 more rows
resumex <- dfgas %>%
filter(PRODUCTO == 'EXTRA') %>%
group_by(DEPARTAMENTO) %>%
summarise(precio = mean(VALOR.PRECIO, na.rm = TRUE)) %>%
ungroup()
print(resumex)
## # A tibble: 29 × 2
## DEPARTAMENTO precio
## <chr> <dbl>
## 1 - 12618.
## 2 ANTIOQUIA 14504.
## 3 ARCHIPIELAGO DE SAN ANDRES 16314.
## 4 ATLANTICO 13839.
## 5 BOGOTA D.C. 14162.
## 6 BOLIVAR 13414.
## 7 BOYACA 14390.
## 8 CALDAS 13761.
## 9 CAQUETA 13455.
## 10 CASANARE 13113.
## # ℹ 19 more rows
resumgas <- dfgas %>%
filter(PRODUCTO == 'GASOLINA MOTOR') %>%
group_by(DEPARTAMENTO) %>%
summarise(precio = mean(VALOR.PRECIO, na.rm = TRUE)) %>%
ungroup()
print(resumgas)
## # A tibble: 34 × 2
## DEPARTAMENTO precio
## <chr> <dbl>
## 1 - 9085.
## 2 AMAZONAS 11947.
## 3 ANTIOQUIA 10189.
## 4 ARAUCA 9438.
## 5 ARCHIPIELAGO DE SAN ANDRES 11787.
## 6 ATLANTICO 9773.
## 7 BOGOTA D.C. 9523.
## 8 BOLIVAR 9526.
## 9 BOYACA 10138.
## 10 CALDAS 10174.
## # ℹ 24 more rows
Usaremos este tipo de producto, ya que toma los 33 departamentos que nos proporciona el DataFrame de coordenadas, asegurando que todos los departamentos tengan un resultado. Además, es el producto con más datos disponibles.
Eliminares todos los ‘-’ que tenga la variable departamentos
resumdi <- resumdi[resumdi$DEPARTAMENTO != '-', ]
unique_departamentos <- unique(resumdi$DEPARTAMENTO)
print(unique_departamentos)
## [1] "AMAZONAS" "ANTIOQUIA"
## [3] "ARAUCA" "ARCHIPIELAGO DE SAN ANDRES"
## [5] "ATLANTICO" "BOGOTA D.C."
## [7] "BOLIVAR" "BOYACA"
## [9] "CALDAS" "CAQUETA"
## [11] "CASANARE" "CAUCA"
## [13] "CESAR" "CHOCO"
## [15] "CORDOBA" "CUNDINAMARCA"
## [17] "GUAINIA" "GUAVIARE"
## [19] "HUILA" "LA GUAJIRA"
## [21] "MAGDALENA" "META"
## [23] "NARIÑO" "NORTE DE SANTANDER"
## [25] "PUTUMAYO" "QUINDIO"
## [27] "RISARALDA" "SANTANDER"
## [29] "SUCRE" "TOLIMA"
## [31] "VALLE DEL CAUCA" "VAUPES"
## [33] "VICHADA"
munic_2 <- dfcorde_sf[['DPTO_CNMBR']]
print(munic_2)
## [1] "ANTIOQUIA" "ATLANTICO"
## [3] "BOGOTA D.C." "BOLIVAR"
## [5] "BOYACA" "CALDAS"
## [7] "CAQUETA" "CAUCA"
## [9] "CESAR" "CORDOBA"
## [11] "CUNDINAMARCA" "CHOCO"
## [13] "HUILA" "LA GUAJIRA"
## [15] "MAGDALENA" "META"
## [17] "NARI?O" "NORTE DE SANTANDER"
## [19] "QUINDIO" "RISARALDA"
## [21] "SANTANDER" "SUCRE"
## [23] "TOLIMA" "VALLE DEL CAUCA"
## [25] "ARAUCA" "CASANARE"
## [27] "PUTUMAYO" "AMAZONAS"
## [29] "GUAINIA" "GUAVIARE"
## [31] "VAUPES" "VICHADA"
## [33] "ARCHIPIELAGO DE SAN ANDRES"
munic_1 <- resumdi[['DEPARTAMENTO']]
print(munic_1)
## [1] "AMAZONAS" "ANTIOQUIA"
## [3] "ARAUCA" "ARCHIPIELAGO DE SAN ANDRES"
## [5] "ATLANTICO" "BOGOTA D.C."
## [7] "BOLIVAR" "BOYACA"
## [9] "CALDAS" "CAQUETA"
## [11] "CASANARE" "CAUCA"
## [13] "CESAR" "CHOCO"
## [15] "CORDOBA" "CUNDINAMARCA"
## [17] "GUAINIA" "GUAVIARE"
## [19] "HUILA" "LA GUAJIRA"
## [21] "MAGDALENA" "META"
## [23] "NARIÑO" "NORTE DE SANTANDER"
## [25] "PUTUMAYO" "QUINDIO"
## [27] "RISARALDA" "SANTANDER"
## [29] "SUCRE" "TOLIMA"
## [31] "VALLE DEL CAUCA" "VAUPES"
## [33] "VICHADA"
Observamos a primera vista un error en la escritura con respecto a “NARIÑO” en dfgas y en los datos de coordenadas aparece como “NARI?O”. Dado que existen errores de este tipo, procederemos a corregirlos.
aca corregiremos los errores que tengan las bases de datos por algun caracter.
## [1] "amazonas" "antioquia"
## [3] "arauca" "archipielago de san andres"
## [5] "atlantico" "bogota d.c."
## [7] "bolivar" "boyaca"
## [9] "caldas" "caqueta"
## [11] "casanare" "cauca"
## [13] "cesar" "choco"
## [15] "cordoba" "cundinamarca"
## [17] "guainia" "guaviare"
## [19] "huila" "la guajira"
## [21] "magdalena" "meta"
## [23] "nariño" "norte de santander"
## [25] "putumayo" "quindio"
## [27] "risaralda" "santander"
## [29] "sucre" "tolima"
## [31] "valle del cauca" "vaupes"
## [33] "vichada"
## [1] "antioquia" "atlantico"
## [3] "bogota d.c." "bolivar"
## [5] "boyaca" "caldas"
## [7] "caqueta" "cauca"
## [9] "cesar" "cordoba"
## [11] "cundinamarca" "choco"
## [13] "huila" "la guajira"
## [15] "magdalena" "meta"
## [17] "narino" "norte de santander"
## [19] "quindio" "risaralda"
## [21] "santander" "sucre"
## [23] "tolima" "valle del cauca"
## [25] "arauca" "casanare"
## [27] "putumayo" "amazonas"
## [29] "guainia" "guaviare"
## [31] "vaupes" "vichada"
## [33] "archipielago de san andres"
find_non_matching_indices <- function(a, b) {
set_b <- unique(b)
indices <- which(!(a %in% set_b)) # Encontrar los índices de a que no están en b
return(indices)
}
a1 <- find_non_matching_indices(munic_1, munic_2)
a2 <- find_non_matching_indices(munic_2, munic_1)
cat("Posiciones en munic_1 que no están en munic_2:", a1, "\n")
## Posiciones en munic_1 que no están en munic_2: 23
cat("Posiciones en munic_2 que no están en munic_1:", a2, "\n")
## Posiciones en munic_2 que no están en munic_1: 17
print(munic_1[a1])
## [1] "nariño"
print(munic_2[a2])
## [1] "narino"
Remplazamos los nombres que tengan errores de escritura
## [1] "nariño"
## [1] "narino"
Creamos columna para poder combinar bases de datos:
resumdi$codigo <- munic_1
dfcorde_sf$codigo <- munic_2
Datos_tot <- merge(dfcorde_sf, resumdi, by = "codigo", all = TRUE)
head(Datos_tot)
## Simple feature collection with 6 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.73575 ymin: -4.227907 xmax: -69.39101 ymax: 13.39453
## Geodetic CRS: WGS 84
## codigo OBJECTID DPTO_CCDGO DPTO_NANO_
## 1 amazonas 28 91 1991
## 2 antioquia 1 05 1886
## 3 arauca 25 81 1991
## 4 archipielago de san andres 33 88 1991
## 5 atlantico 2 08 1910
## 6 bogota d.c. 3 11 0
## DPTO_CNMBR DPTO_CACTO
## 1 AMAZONAS Decreto 2274 del 4 de Octubre de la Constitucion *
## 2 ANTIOQUIA Constitucion Politica de 1886
## 3 ARAUCA 5 de Julio Constitucion Politica de 1991
## 4 ARCHIPIELAGO DE SAN ANDRES Artículo 310 Constitucion Politica de 1991
## 5 ATLANTICO Ley 21 de 1910
## 6 BOGOTA D.C. <NA>
## DPTO_NAREA DPTO_CSMBL DPTO_NANO PAIS_PAIS_ SHAPE_Leng SHAPE_Area
## 1 1.100465e+11 3 2005 28 24.7478421 8.921606592
## 2 6.306333e+10 3 2005 1 21.1370351 5.155783322
## 3 2.380556e+10 3 2005 25 9.1629393 1.940327371
## 4 4.960214e+04 3 2005 12 0.6506981 0.004064367
## 5 3.326730e+09 3 2005 2 2.4610773 0.274825157
## 6 1.633209e+09 3 2005 3 3.7312885 0.133044539
## DEPARTAMENTO precio geometry
## 1 AMAZONAS 10739.547 MULTIPOLYGON (((-71.29212 0...
## 2 ANTIOQUIA 9104.612 MULTIPOLYGON (((-76.40481 8...
## 3 ARAUCA 8332.387 MULTIPOLYGON (((-70.67671 7...
## 4 ARCHIPIELAGO DE SAN ANDRES 10098.152 MULTIPOLYGON (((-81.70353 1...
## 5 ATLANTICO 8629.520 MULTIPOLYGON (((-74.82969 1...
## 6 BOGOTA D.C. 8787.134 MULTIPOLYGON (((-74.07274 4...
length(Datos_tot$codigo)
## [1] 34
length(dfcorde_sf$codigo)
## [1] 33
ggplot(data = Datos_tot) +
geom_sf(aes(fill = precio), color = NA) +
scale_fill_viridis_c(option = "C")
theme_void() +
labs(title = "Precio de Diesel en Colombia", fill = "Precio") +
theme(legend.position = "right")
## List of 98
## $ line : list()
## ..- attr(*, "class")= chr [1:2] "element_blank" "element"
## $ rect : list()
## ..- attr(*, "class")= chr [1:2] "element_blank" "element"
## $ text :List of 11
## ..$ family : chr ""
## ..$ face : chr "plain"
## ..$ colour : chr "black"
## ..$ size : num 11
## ..$ hjust : num 0.5
## ..$ vjust : num 0.5
## ..$ angle : num 0
## ..$ lineheight : num 0.9
## ..$ margin : 'margin' num [1:4] 0points 0points 0points 0points
## .. ..- attr(*, "unit")= int 8
## ..$ debug : logi FALSE
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ title : chr "Precio de Diesel en Colombia"
## $ aspect.ratio : NULL
## $ axis.title : list()
## ..- attr(*, "class")= chr [1:2] "element_blank" "element"
## $ axis.title.x : NULL
## $ axis.title.x.top : NULL
## $ axis.title.x.bottom : NULL
## $ axis.title.y : NULL
## $ axis.title.y.left : NULL
## $ axis.title.y.right : NULL
## $ axis.text : list()
## ..- attr(*, "class")= chr [1:2] "element_blank" "element"
## $ axis.text.x : NULL
## $ axis.text.x.top : NULL
## $ axis.text.x.bottom : NULL
## $ axis.text.y : NULL
## $ axis.text.y.left : NULL
## $ axis.text.y.right : NULL
## $ axis.ticks : NULL
## $ axis.ticks.x : NULL
## $ axis.ticks.x.top : NULL
## $ axis.ticks.x.bottom : NULL
## $ axis.ticks.y : NULL
## $ axis.ticks.y.left : NULL
## $ axis.ticks.y.right : NULL
## $ axis.ticks.length : 'simpleUnit' num 0points
## ..- attr(*, "unit")= int 8
## $ axis.ticks.length.x : NULL
## $ axis.ticks.length.x.top : NULL
## $ axis.ticks.length.x.bottom: NULL
## $ axis.ticks.length.y : NULL
## $ axis.ticks.length.y.left : NULL
## $ axis.ticks.length.y.right : NULL
## $ axis.line : NULL
## $ axis.line.x : NULL
## $ axis.line.x.top : NULL
## $ axis.line.x.bottom : NULL
## $ axis.line.y : NULL
## $ axis.line.y.left : NULL
## $ axis.line.y.right : NULL
## $ legend.background : NULL
## $ legend.margin : NULL
## $ legend.spacing : NULL
## $ legend.spacing.x : NULL
## $ legend.spacing.y : NULL
## $ legend.key : NULL
## $ legend.key.size : 'simpleUnit' num 1.2lines
## ..- attr(*, "unit")= int 3
## $ legend.key.height : NULL
## $ legend.key.width : NULL
## $ legend.text :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : 'rel' num 0.8
## ..$ hjust : NULL
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ legend.text.align : NULL
## $ legend.title :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : NULL
## ..$ hjust : num 0
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ legend.title.align : NULL
## $ legend.position : chr "right"
## $ legend.direction : NULL
## $ legend.justification : NULL
## $ legend.box : NULL
## $ legend.box.just : NULL
## $ legend.box.margin : NULL
## $ legend.box.background : NULL
## $ legend.box.spacing : NULL
## $ panel.background : NULL
## $ panel.border : NULL
## $ panel.spacing : 'simpleUnit' num 5.5points
## ..- attr(*, "unit")= int 8
## $ panel.spacing.x : NULL
## $ panel.spacing.y : NULL
## $ panel.grid : NULL
## $ panel.grid.major : NULL
## $ panel.grid.minor : NULL
## $ panel.grid.major.x : NULL
## $ panel.grid.major.y : NULL
## $ panel.grid.minor.x : NULL
## $ panel.grid.minor.y : NULL
## $ panel.ontop : logi FALSE
## $ plot.background : NULL
## $ plot.title :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : 'rel' num 1.2
## ..$ hjust : num 0
## ..$ vjust : num 1
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : 'margin' num [1:4] 5.5points 0points 0points 0points
## .. ..- attr(*, "unit")= int 8
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ plot.title.position : chr "panel"
## $ plot.subtitle :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : NULL
## ..$ hjust : num 0
## ..$ vjust : num 1
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : 'margin' num [1:4] 5.5points 0points 0points 0points
## .. ..- attr(*, "unit")= int 8
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ plot.caption :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : 'rel' num 0.8
## ..$ hjust : num 1
## ..$ vjust : num 1
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : 'margin' num [1:4] 5.5points 0points 0points 0points
## .. ..- attr(*, "unit")= int 8
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ plot.caption.position : chr "panel"
## $ plot.tag :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : 'rel' num 1.2
## ..$ hjust : num 0.5
## ..$ vjust : num 0.5
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ plot.tag.position : chr "topleft"
## $ plot.margin : 'simpleUnit' num [1:4] 0lines 0lines 0lines 0lines
## ..- attr(*, "unit")= int 3
## $ strip.background : NULL
## $ strip.background.x : NULL
## $ strip.background.y : NULL
## $ strip.clip : chr "inherit"
## $ strip.placement : NULL
## $ strip.text :List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : 'rel' num 0.8
## ..$ hjust : NULL
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi TRUE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ strip.text.x : NULL
## $ strip.text.x.bottom : NULL
## $ strip.text.x.top : NULL
## $ strip.text.y : NULL
## $ strip.text.y.left : NULL
## $ strip.text.y.right : NULL
## $ strip.switch.pad.grid : 'simpleUnit' num 2.75points
## ..- attr(*, "unit")= int 8
## $ strip.switch.pad.wrap : 'simpleUnit' num 2.75points
## ..- attr(*, "unit")= int 8
## $ fill : chr "Precio"
## - attr(*, "class")= chr [1:2] "theme" "gg"
## - attr(*, "complete")= logi TRUE
## - attr(*, "validate")= logi TRUE
Se reflejan los puntos donde el costo de la gasolina es más alto en Colombia. Además, se observa el costo alrededor de cada departamento, representado según el color que le corresponde.