Cargamos librerias a utilizar
library(tidyverse)
library(sf)
library(ggmap)
library(leaflet)
library(sp)
library(tmap)
library(spdep)
library(gstat)
library(spatstat)
library(dplyr)
Importamos dataset en formato shapefile de las comunas de la Ciudad Autónoma de Buenos Aires con población proyectada a 2021
comunas_pob_21_mas60 <- st_read("comunas_pobproy21_m60.shp", stringsAsFactors = TRUE)
## Reading layer `comunas_pobproy21_m60' from data source
## `E:\Documentos\BDEIT\Geoestadistica\TPF\comunas_pobproy21_m60.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 15 features and 12 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.53152 ymin: -34.7053 xmax: -58.33515 ymax: -34.5265
## Geodetic CRS: WGS 84
Vemos que variables contiene el dataset de comunas
summary(comunas_pob_21_mas60)
## BARRIOS
## AGRONOMIA - CHACARITA - PARQUE CHAS - PATERNAL - VILLA CRESPO - VILLA ORTUZAR:1
## ALMAGRO - BOEDO :1
## BALVANERA - SAN CRISTOBAL :1
## BARRACAS - BOCA - NUEVA POMPEYA - PARQUE PATRICIOS :1
## BELGRANO - COLEGIALES - NU<U+FFFD>EZ :1
## CABALLITO :1
## (Other) :9
## PERIMETRO AREA COMUNAS ID
## Min. :10486 Min. : 6317265 Min. : 1.0 Min. : 1.0
## 1st Qu.:17532 1st Qu.: 9636965 1st Qu.: 4.5 1st Qu.: 4.5
## Median :19988 Median :14322897 Median : 8.0 Median : 8.0
## Mean :20587 Mean :13604581 Mean : 8.0 Mean : 8.0
## 3rd Qu.:21790 3rd Qu.:16175589 3rd Qu.:11.5 3rd Qu.:11.5
## Max. :36102 Max. :22216902 Max. :15.0 Max. :15.0
##
## OBJETO COMUNA POB21_M60 X._CABA_M60 X._COM_M60
## LIMITE COMUNAL:15 Min. : 1.0 Min. :31869 21% :3 5%:1
## 1st Qu.: 4.5 1st Qu.:39506 23% :3 6%:7
## Median : 8.0 Median :42737 24% :3 7%:4
## Mean : 8.0 Mean :44204 14% :1 8%:2
## 3rd Qu.:11.5 3rd Qu.:49243 17% :1 9%:1
## Max. :15.0 Max. :58706 19% :1
## (Other):3
## P_COMU_M60 P_CABA_M60 geometry
## Min. :14.0 Min. :5.000 MULTIPOLYGON :15
## 1st Qu.:21.0 1st Qu.:6.000 epsg:4326 : 0
## Median :23.0 Median :6.000 +proj=long...: 0
## Mean :21.8 Mean :6.667
## 3rd Qu.:24.0 3rd Qu.:7.000
## Max. :26.0 Max. :9.000
##
Filtramos las variables de interés
comunas_pob_21_mas60 <- comunas_pob_21_mas60 %>%
select(1,4,8,11,12,13)
Importamos shape de los radios censales de CABA
rc_pob_21_mas55 <- st_read("rc_pob_proy21_mas55.shp", stringsAsFactors = TRUE)
## Reading layer `rc_pob_proy21_mas55' from data source
## `E:\Documentos\BDEIT\Geoestadistica\TPF\rc_pob_proy21_mas55.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 3553 features and 67 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.53152 ymin: -34.70529 xmax: -58.33514 ymax: -34.52755
## Geodetic CRS: WGS 84
Vemos que variables contiene el dataset de radios censales
glimpse(rc_pob_21_mas55)
## Rows: 3,553
## Columns: 68
## $ REDCODE <fct> 020130302, 020131101, 020130104, 020130103, 020130102, 0201~
## $ P_TOTAL <dbl> 585, 495, 763, 612, 770, 835, 719, 606, 709, 509, 882, 456,~
## $ P_A17 <dbl> 86, 104, 115, 94, 127, 145, 121, 111, 94, 96, 166, 54, 93, ~
## $ P_0A3 <dbl> 24, 14, 39, 35, 33, 64, 26, 18, 27, 14, 40, 13, 31, 50, 49,~
## $ P_4A5 <dbl> 7, 7, 12, 11, 14, 16, 11, 11, 12, 12, 23, 6, 11, 28, 27, 10~
## $ P_6A12 <dbl> 38, 44, 32, 31, 44, 43, 49, 47, 26, 37, 69, 14, 32, 72, 63,~
## $ P_13A17 <dbl> 17, 39, 32, 17, 36, 22, 35, 35, 29, 33, 34, 21, 19, 48, 48,~
## $ P_18A <dbl> 499, 391, 648, 518, 643, 690, 598, 495, 615, 413, 716, 402,~
## $ P_18A29 <dbl> 103, 70, 137, 91, 109, 112, 120, 102, 96, 87, 147, 81, 117,~
## $ P_30A54 <dbl> 249, 150, 327, 204, 290, 417, 251, 211, 247, 149, 367, 150,~
## $ P_55A69 <dbl> 82, 92, 102, 145, 135, 104, 115, 104, 146, 103, 130, 89, 13~
## $ P_70A <dbl> 65, 79, 82, 78, 109, 57, 112, 78, 126, 74, 72, 82, 89, 151,~
## $ M_TOTAL <dbl> 318, 269, 384, 326, 397, 433, 404, 323, 368, 269, 452, 237,~
## $ M_A17 <dbl> 51, 41, 52, 48, 65, 86, 66, 47, 40, 45, 78, 24, 51, 89, 76,~
## $ M_0A3 <dbl> 14, 7, 19, 14, 16, 38, 14, 9, 14, 5, 16, 5, 17, 23, 19, 15,~
## $ M_4A5 <dbl> 4, 2, 6, 9, 8, 9, 4, 3, 4, 5, 12, 3, 6, 15, 7, 3, 6, 1, 7, ~
## $ M_6A12 <dbl> 24, 20, 11, 14, 23, 25, 26, 22, 7, 21, 32, 7, 17, 35, 29, 9~
## $ M_13A17 <dbl> 9, 12, 16, 11, 18, 14, 22, 13, 15, 14, 18, 9, 11, 16, 21, 1~
## $ M_18A <dbl> 267, 228, 332, 278, 332, 347, 338, 276, 328, 224, 374, 213,~
## $ M_18A29 <dbl> 56, 37, 64, 44, 56, 58, 61, 44, 45, 37, 71, 39, 60, 87, 67,~
## $ M_30A54 <dbl> 120, 88, 162, 107, 143, 200, 133, 114, 121, 88, 186, 79, 12~
## $ M_55A69 <dbl> 46, 54, 61, 79, 64, 54, 72, 66, 86, 54, 69, 50, 76, 101, 72~
## $ M_70A <dbl> 45, 49, 45, 48, 69, 35, 72, 52, 76, 45, 48, 45, 67, 91, 44,~
## $ V_TOTAL <dbl> 267, 226, 379, 286, 373, 402, 315, 283, 341, 240, 430, 219,~
## $ V_A17 <dbl> 35, 63, 63, 46, 62, 59, 55, 64, 54, 51, 88, 30, 42, 109, 11~
## $ V_0A3 <dbl> 10, 7, 20, 21, 17, 26, 12, 9, 13, 9, 24, 8, 14, 27, 30, 13,~
## $ V_4A5 <dbl> 3, 5, 6, 2, 6, 7, 7, 8, 8, 7, 11, 3, 5, 13, 20, 7, 9, 8, 5,~
## $ V_6A12 <dbl> 14, 24, 21, 17, 21, 18, 23, 25, 19, 16, 37, 7, 15, 37, 34, ~
## $ V_13A17 <dbl> 8, 27, 16, 6, 18, 8, 13, 22, 14, 19, 16, 12, 8, 32, 27, 10,~
## $ V_18A <dbl> 232, 163, 316, 240, 311, 343, 260, 219, 287, 189, 342, 189,~
## $ V_18A29 <dbl> 47, 33, 73, 47, 53, 54, 59, 58, 51, 50, 76, 42, 57, 66, 76,~
## $ V_30A54 <dbl> 129, 62, 165, 97, 147, 217, 118, 97, 126, 61, 181, 71, 107,~
## $ V_55A69 <dbl> 36, 38, 41, 66, 71, 50, 43, 38, 60, 49, 61, 39, 57, 71, 53,~
## $ V_70A <dbl> 20, 30, 37, 30, 40, 22, 40, 26, 50, 29, 24, 37, 22, 60, 31,~
## $ P18A_SIN_I <int> 8, 3, 7, 15, 6, 4, 15, 19, 3, 6, 3, 4, 5, 16, 14, 2, 33, 24~
## $ P18A_PRIMA <int> 489, 387, 635, 503, 632, 686, 582, 468, 601, 405, 707, 399,~
## $ P18A_SECUN <int> 414, 342, 548, 433, 555, 636, 470, 371, 520, 341, 626, 337,~
## $ P18A_SOLOP <int> 75, 45, 87, 70, 77, 50, 112, 97, 81, 64, 81, 62, 87, 170, 1~
## $ P18A_SOLOS <int> 215, 164, 279, 228, 297, 252, 290, 244, 304, 164, 299, 178,~
## $ P18A_TERCI <int> 49, 38, 65, 60, 60, 67, 49, 37, 55, 25, 66, 51, 55, 100, 61~
## $ P18A_UNIVE <int> 150, 140, 204, 145, 198, 317, 131, 90, 161, 152, 261, 108, ~
## $ P4A5_ASIST <int> 7, 7, 12, 11, 12, 16, 11, 11, 12, 12, 21, 6, 11, 28, 25, 10~
## $ P6A12_ASIS <int> 38, 44, 32, 31, 44, 43, 49, 46, 26, 37, 69, 14, 31, 71, 62,~
## $ P1317_ASIS <int> 17, 38, 29, 17, 36, 22, 28, 31, 28, 31, 32, 21, 19, 44, 44,~
## $ P1317_SIN_ <int> 17, 39, 29, 17, 36, 22, 34, 32, 28, 32, 34, 21, 19, 47, 48,~
## $ P1829_ASIS <int> 3, 10, 9, 12, 6, 6, 5, 15, 5, 9, 11, 6, 5, 8, 16, 4, 13, 9,~
## $ P1829_SIN_ <int> 11, 12, 17, 18, 12, 15, 13, 22, 9, 13, 20, 8, 13, 20, 32, 6~
## $ P1425_ASIS <int> 16, 40, 31, 25, 31, 23, 25, 39, 33, 35, 39, 22, 21, 42, 51,~
## $ P1425_SIN_ <int> 23, 42, 39, 30, 37, 28, 33, 47, 37, 37, 47, 23, 27, 52, 69,~
## $ P1425 <int> 83, 88, 101, 65, 92, 90, 112, 101, 88, 89, 117, 75, 83, 132~
## $ IDPROV <fct> 02, 02, 02, 02, 02, 02, 02, 02, 02, 02, 02, 02, 02, 02, 02,~
## $ PROV <fct> Ciudad Autónoma de Buenos Aires, Ciudad Autónoma de Buenos ~
## $ IDDPTO <fct> 02013, 02013, 02013, 02013, 02013, 02013, 02013, 02012, 020~
## $ DPTO <fct> Comuna 13, Comuna 13, Comuna 13, Comuna 13, Comuna 13, Comu~
## $ REDCODE_1 <fct> 020130302, 020131101, 020130104, 020130103, 020130102, 0201~
## $ RADIOS_POB <dbl> 654, 568, 763, 612, 770, 835, 733, 606, 709, 509, 882, 457,~
## $ RADIOS_HOG <dbl> 270, 172, 367, 258, 343, 421, 296, 249, 314, 185, 386, 217,~
## $ RADIOS_LAT <dbl> -34.53827, -34.54318, -34.53693, -34.53716, -34.53769, -34.~
## $ RADIOS_LON <dbl> -58.45845, -58.44252, -58.46702, -58.46880, -58.47100, -58.~
## $ RADIOS_SUP <dbl> 1.760, 2.239, 0.046, 0.068, 0.054, 0.013, 0.090, 0.100, 0.0~
## $ AREA_RC <dbl> 2141937, 2724911, 56329, 82759, 65459, 15703, 109003, 12168~
## $ POBTOT.55 <dbl> 147, 171, 184, 223, 244, 161, 227, 182, 272, 177, 202, 171,~
## $ COD_RC <dbl> 20130302, 20131101, 20130104, 20130103, 20130102, 20130105,~
## $ RC <dbl> 20130302, 20131101, 20130104, 20130103, 20130102, 20130105,~
## $ ESTIM_2020 <dbl> 1303, 589, 1520, 1219, 1534, 866, 1460, 1097, 736, 528, 915~
## $ RC_2 <dbl> 20130302, 20131101, 20130104, 20130103, 20130102, 20130105,~
## $ P21_MAS55 <dbl> 157, 182, 196, 237, 260, 171, 242, 194, 290, 189, 215, 182,~
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((-58.46739 -..., MULTIPOLYGON (~
Filtramos las variables de interés
rc_pob_21_mas55 <- rc_pob_21_mas55 %>%
select(67,60,68)
Mapeamos la población mayor a 60 años proyectada a 2021 por comuna
tm_shape(comunas_pob_21_mas60) +
tm_fill("POB21_M60",title="Población mayor 60 años",style = "quantile", n = 5, palette = "Reds") +
tm_borders(alpha = 0.8) +
tm_layout(main.title = "Población mayor a 60 años por Comuna (Proyección 2021)", main.title.size = 0.7 ,
legend.position = c("right", "bottom"), legend.title.size = 0.8)
La mayor parte de la población mayor a 60 años se localiza hacia el norte de la ciudad (comunas 12,13 y 14) y en el centro (comunas 6 y 7)
Transformamos la variable de COMUNAS a factor
comunas_pob_21_mas60$COMUNAS <- as.factor(comunas_pob_21_mas60$COMUNAS)
Graficamos la cantidad de población +60 años por comuna
comunas_pob_21_mas60 %>%
select(COMUNAS,POB21_M60) %>%
ggplot(mapping = aes(x = fct_reorder(COMUNAS,POB21_M60),
y= POB21_M60))+
geom_col(fill="firebrick3")+
labs(title = "Población mayor a 60 años por Comuna",
subtitle = "(Proyección 2021)",
x = "Comunas",
y = "Población mayor a 60 años",
fill = "COMUNAS")+
theme(axis.text.x = element_text(angle = 90))+
theme(legend.position = "none")
Mapeamos el % de población mayor a 60 años en relación al total por comuna (Proyección 2021)
tm_shape(comunas_pob_21_mas60) +
tm_fill("P_COMU_M60",title="% de población mayor a 60 años por Comuna",style = "quantile", n = 5, palette = "Reds") +
tm_borders(alpha = 0.8) +
tm_layout(main.title = "% Población mayor a 60 años por Comuna (Proyección 2021)", main.title.size = 0.7 ,
legend.position = c("right", "bottom"), legend.title.size = 0.8)
En este caso, identificamos que los porcentajes más altos se encuentran en las comunas 2,13 y 14 al norte, y en las comunas 6 y 11 al centro-oeste de la ciudad.
Definimos los intervalos de población por radio censal
custom.breaks <- c(0,100,200,300,400,500,898)
Mapeamos los radios censales según el total de población mayor a 55 años
tm_shape(rc_pob_21_mas55) +
tm_fill("P21_MAS55",title="Población mayor a 55 años",breaks=custom.breaks,palette="Reds") +
tm_borders(alpha = 0.5) +
tm_layout(main.title = "Población mayor a 55 años por radio censal (Proyección 2021)", main.title.size = 0.5 ,
legend.position = c("right", "bottom"), legend.title.size = 0.5)
Se identifican algunas zonas con mayor cantidad de población mayor a 55 años en los barrios de Recoleta, Belgrano, Palermo, Villa del Parque, Villa Lugano y sobre Av. Rivadavia (Comuna 5,6 y 7).
Importamos base en formato csv de los siniestros viales ocurridos entre 2015 y 2018
siniestros_viales <- read.csv("Victimas_siniestros_2015-2018.csv", stringsAsFactors = TRUE)
Damos un vistazo a las variables del dataset
glimpse(siniestros_viales)
## Rows: 33,234
## Columns: 29
## $ causa <fct> homicidio, homicidio, homicidio, homicidi~
## $ rol <fct> conductor, , peaton, , pasajero, conducto~
## $ tipo <fct> moto, , peaton, , camion, moto, moto, aut~
## $ sexo <fct> , , femenino, , masculino, , masculino, m~
## $ edad <int> NA, NA, NA, NA, NA, NA, 18, 26, 24, NA, 3~
## $ mes <int> 2, 2, 2, 3, 4, 4, 1, 1, 3, 9, 4, 8, 8, 10~
## $ periodo <int> 2015, 2015, 2015, 2015, 2015, 2015, 2015,~
## $ fecha <fct> 2/14/2015, 2/25/2015, 2/27/2015, 03-02-15~
## $ hora <fct> 19:00:00, 3:00:00, 8:00:00, 18:30:00, 1:2~
## $ lugar_hecho <fct> "cafayate y severo garcia grande de zeque~
## $ direccion_normalizada <fct> "cafayate y garcia grande de zequeira, se~
## $ tipo_calle <fct> calle, avenida, avenida, calle, avenida, ~
## $ direccion_normalizada_arcgis <fct> "cafayate & garcia grande de zequeira, se~
## $ calle1 <fct> "cafayate", "lugones, leopoldo av.", "juj~
## $ altura <int> NA, NA, NA, 1730, 2434, NA, NA, 2850, NA,~
## $ calle2 <fct> "garcia grande de zequeira, severo", "uda~
## $ codigo_calle <int> 3015, 12152, 10013, 12089, 4039, 12112, 1~
## $ codigo_cruce <int> 27019, 22003, 9010, NA, NA, 3028, 9010, 0~
## $ geocodificacion <fct> point(95841.9588592157 97312.345524462), ~
## $ semestre <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 2,~
## $ x <dbl> -58.50866, -58.44768, -58.40352, -58.3913~
## $ y <dbl> -34.65349, -34.54351, -34.61884, -34.6031~
## $ geom <fct> 0101000020E610000057E042B51B414DC00841988~
## $ cantidad_victimas <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1,~
## $ comuna <int> 9, 13, 3, 1, 15, 1, 1, 7, 9, 15, 14, 14, ~
## $ geom_3857 <fct> 0101000020110F0000DE9B958180D858C1EC80296~
## $ tipo_colision1 <fct> motovehiculo - vehiculo, , peaton - vehic~
## $ participantes_victimas <fct> "moto", "NULL", "peaton", "NULL", "camion~
## $ participantes_acusados <fct> "automovil", "", "\"transporte publico\""~
Filtramos los siniestros viales de personas mayores a 60 años (3273 siniestros)
siniestros_viales_60 <- siniestros_viales %>%
select(1,5,7,11,19,21,22,23,24,25,26)%>%
filter(edad > 60)
Graficamos la cantidad de accidentes viales de personas +60 años ocurridos en los años 2015, 2016, 2017 y 2018 por tipo (homicidio o lesión)
ggplot(siniestros_viales_60)+
geom_bar(aes(x = periodo, fill=causa)) +
labs(title = "Cantidad de accidentes viales de personas mayores a 60 años",
subtitle = "Por año",
x = "Año",
y = "Cantidad",
fill = "Tipo de Siniestro vial",
caption = "Fuente: BA Data")
Transformamos el csv a formato geográfico
siniestros_viales_geo <- st_as_sf(siniestros_viales_60, coords = c("x", "y"), crs = 4326, na.fail=FALSE)
Eliminamos los NA
siniestros_viales_geo <-na.omit(siniestros_viales_geo)
siniestros_viales_geo
## Simple feature collection with 3204 features and 9 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -58.53107 ymin: -34.70374 xmax: -58.35662 ymax: -34.53584
## Geodetic CRS: WGS 84
## First 10 features:
## causa edad periodo direccion_normalizada
## 1 homicidio 64 2015 corrientes av. y scalabrini ortiz, raul av.
## 2 homicidio 61 2017 maipu y peron, juan domingo, tte. general
## 3 homicidio 61 2017 bonifacio, jose 2114
## 4 homicidio 72 2015 san martin 1225
## 5 homicidio 70 2015 27 de febrero av. 5509
## 6 homicidio 73 2015 pueyrredon, honorio, dr. av. 1137
## 7 homicidio 66 2015 santa fe av. y fray justo santamaria de oro
## 8 homicidio 70 2016 ceretti y nuñez
## 9 homicidio 79 2015 la plata av. 655
## 10 homicidio 81 2016 castro y pavon av.
## geocodificacion
## 1 point(102250.450183927 103260.755742479)
## 2 point(107958.580695741 102597.492340379)
## 3 point(100559.089684 99787.0206996)
## 4 point(108266.618089 104023.69612)
## 5 POINT(103543.564772744 96344.0586567678)
## 6 point(101586.10004 102500.038192)
## 7 point(103570.930586172 105543.599263887)
## 8 point(96492.8903044916 106832.194845936)
## 9 point(103259.318628 100714.261804)
## 10 point(104049.285186283 99858.3753165837)
## geom cantidad_victimas comuna
## 1 0101000020E6100000AF3DED7E29384DC0C16071ABC84C41C0 1 15
## 2 0101000020E6100000F931EA3B32304DC098F8C5AA8B4D41C0 1 1
## 3 0101000020E6100000722CDD9D853A4DC0A0F99AD3CA5041C0 1 7
## 4 0101000020E61000006E551DA4C42F4DC05927684FE64B41C0 1 1
## 5 0101000020E6100000A57FE1A25A364DC0CA13FF9FC35441C0 1 8
## 6 0101000020E6100000FF2B30C516394DC0F767BE69A94D41C0 1 15
## 7 0101000020E610000072225B1A52364DC0D4F8783B264A41C0 1 14
## 8 0101000020E6100000932617B931404DC0CB433D98A94841C0 1 12
## 9 0101000020E61000004FB6D7CAC0364DC0C3EE83C6B84F41C0 1 6
## 10 0101000020E610000094BBF463A6354DC0AF56B47FB55041C0 1 5
## geom_3857
## 1 0101000020110F00005F319F6DE7D058C128ECF6D7A25A4FC1
## 2 0101000020110F0000198B887B23CA58C1EA5F993F355C4FC1
## 3 0101000020110F000052D01B82E8D258C1F2B1AAC9E8624FC1
## 4 0101000020110F0000D7C0BB67C6C958C1161836C1CF584FC1
## 5 0101000020110F0000CE404A525ECF58C1203584341C6B4FC1
## 6 0101000020110F00006E280BF2B0D158C1F974D2A2725C4FC1
## 7 0101000020110F00004EEFF81257CF58C164F9B84433554FC1
## 8 0101000020110F0000BCBB59C8B9D758C10E1ED00B22524FC1
## 9 0101000020110F0000A3CE2815B5CF58C1345B6514B3604FC1
## 10 0101000020110F0000DCE6163DC5CE58C1EFDE94C2BC624FC1
## geometry
## 1 POINT (-58.43877 -34.59987)
## 2 POINT (-58.37653 -34.60582)
## 3 POINT (-58.4572 -34.63119)
## 4 POINT (-58.37319 -34.59297)
## 5 POINT (-58.42464 -34.66222)
## 6 POINT (-58.44601 -34.60673)
## 7 POINT (-58.42438 -34.57929)
## 8 POINT (-58.50152 -34.56768)
## 9 POINT (-58.42776 -34.62283)
## 10 POINT (-58.41914 -34.63054)
Generamos un mapa interactivo con los siniestros viales de personas +60 años ocurridos en el período 2015-2018
tmap_mode("view")
tm_shape(siniestros_viales_geo) +
tm_bubbles(c("cantidad_victimas"), col = "darkslateblue")
Agrupamos los siniestros viales por comuna
sin_viales_mas60_comu <- siniestros_viales_geo%>%
select(comuna, causa, cantidad_victimas) %>% #selecciono las variables
group_by(comuna) %>% #agrupo por comuna
summarise(cantidad_victimas = n())
glimpse(sin_viales_mas60_comu)
## Rows: 15
## Columns: 3
## $ comuna <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
## $ cantidad_victimas <int> 385, 180, 313, 207, 186, 166, 207, 97, 227, 164, 212~
## $ geometry <MULTIPOINT [°]> MULTIPOINT ((-58.36795 -34...., MULTIPOINT ((-58.395~
sin_viales_mas60_comu$comuna <- as.factor(sin_viales_mas60_comu$comuna)
Graficamos los siniestros viales del período 2015-2018 por comuna
sin_viales_mas60_comu %>%
select(comuna,cantidad_victimas) %>%
ggplot(mapping = aes(x = fct_reorder(comuna,cantidad_victimas, na.rm = TRUE),
y= cantidad_victimas))+
geom_col(fill="darkslateblue")+
labs(title = "Cantidad de accidentes viales de personas mayores a 60 años por Comuna",
subtitle = "Período 2015-2018",
x = "Comunas",
y = "Cantidad de accidentes viales",
fill = "comuna")+
theme(axis.text.x = element_text(angle = 90))+
theme(legend.position = "none")
Unimos la tabla de datos con unidades espaciales y calculamos casos por comuna
st_crs(comunas_pob_21_mas60)
## Coordinate Reference System:
## User input: WGS 84
## wkt:
## GEOGCRS["WGS 84",
## DATUM["World Geodetic System 1984",
## ELLIPSOID["WGS 84",6378137,298.257223563,
## LENGTHUNIT["metre",1]]],
## PRIMEM["Greenwich",0,
## ANGLEUNIT["degree",0.0174532925199433]],
## CS[ellipsoidal,2],
## AXIS["latitude",north,
## ORDER[1],
## ANGLEUNIT["degree",0.0174532925199433]],
## AXIS["longitude",east,
## ORDER[2],
## ANGLEUNIT["degree",0.0174532925199433]],
## ID["EPSG",4326]]
st_crs(sin_viales_mas60_comu)
## Coordinate Reference System:
## User input: EPSG:4326
## wkt:
## GEOGCRS["WGS 84",
## DATUM["World Geodetic System 1984",
## ELLIPSOID["WGS 84",6378137,298.257223563,
## LENGTHUNIT["metre",1]]],
## PRIMEM["Greenwich",0,
## ANGLEUNIT["degree",0.0174532925199433]],
## CS[ellipsoidal,2],
## AXIS["geodetic latitude (Lat)",north,
## ORDER[1],
## ANGLEUNIT["degree",0.0174532925199433]],
## AXIS["geodetic longitude (Lon)",east,
## ORDER[2],
## ANGLEUNIT["degree",0.0174532925199433]],
## USAGE[
## SCOPE["Horizontal component of 3D system."],
## AREA["World."],
## BBOX[-90,-180,90,180]],
## ID["EPSG",4326]]
Agregamos una variable con la proporción de víctimas en función de la población mayor a 60 años por comuna
comunas_siniestros_60 <- st_join(comunas_pob_21_mas60, sin_viales_mas60_comu)%>%
mutate(propcasos = cantidad_victimas/POB21_M60)
comunas_siniestros_60
## Simple feature collection with 33 features and 8 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -58.53152 ymin: -34.7053 xmax: -58.33515 ymax: -34.5265
## Geodetic CRS: WGS 84
## First 10 features:
## BARRIOS COMUNAS POB21_M60 P_COMU_M60 P_CABA_M60 comuna
## 1 RECOLETA 2 39464 26 6 2
## 1.1 RECOLETA 2 39464 26 6 3
## 1.2 RECOLETA 2 39464 26 6 14
## 2 ALMAGRO - BOEDO 5 42737 23 6 5
## 2.1 ALMAGRO - BOEDO 5 42737 23 6 6
## 2.2 ALMAGRO - BOEDO 5 42737 23 6 7
## 3 CABALLITO 6 44952 24 7 6
## 3.1 CABALLITO 6 44952 24 7 7
## 3.2 CABALLITO 6 44952 24 7 11
## 4 FLORES - PARQUE CHACABUCO 7 49788 21 8 7
## cantidad_victimas geometry propcasos
## 1 180 MULTIPOLYGON (((-58.38001 -... 0.004561119
## 1.1 313 MULTIPOLYGON (((-58.38001 -... 0.007931279
## 1.2 210 MULTIPOLYGON (((-58.38001 -... 0.005321305
## 2 186 MULTIPOLYGON (((-58.41287 -... 0.004352201
## 2.1 166 MULTIPOLYGON (((-58.41287 -... 0.003884222
## 2.2 207 MULTIPOLYGON (((-58.41287 -... 0.004843578
## 3 166 MULTIPOLYGON (((-58.43061 -... 0.003692828
## 3.1 207 MULTIPOLYGON (((-58.43061 -... 0.004604912
## 3.2 212 MULTIPOLYGON (((-58.43061 -... 0.004716142
## 4 207 MULTIPOLYGON (((-58.452 -34... 0.004157628
Exploramos la distribución espacial de la cantidad de víctimas por comuna
tm_shape(comunas_siniestros_60)+
tm_polygons("cantidad_victimas", style="quantile", title="Cantidad de víctimas")
Hacia el norte de la ciudad se localizan mayor cantidad de siniestros viales de personas +60 años en este período.
Mapeamos la proporción de casos por población +60 años por comuna Cantidad de accidentes viales +60 años / Población mayor a 60 años por comuna
tm_shape(comunas_siniestros_60)+
tm_polygons("propcasos", style="quantile", title="Proporción de casos por población +60 años por comuna")
Cambiamos la proyección del dataset geográfico
siniestros_viales_5347 <- siniestros_viales_geo %>%
st_transform(5347)
Filtramos los siniestros del año 2018
siniestros_viales_5347_2018 <- siniestros_viales_geo %>%
filter(periodo==2018)%>%
st_transform(5347)
Generamos las áreas de interés (buffer de 2000 metros y convex hull)
sf_use_s2(FALSE)
## Spherical geometry (s2) switched off
buf <- siniestros_viales_5347_2018 %>% st_buffer(dist= 2000) %>% st_geometry() %>% st_union()
buf
## Geometry set for 1 feature
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 5632880 ymin: 6158516 xmax: 5652216 ymax: 6179418
## Projected CRS: POSGAR 2007 / Argentina 5
ch <- siniestros_viales_5347_2018 %>% st_union()%>% st_convex_hull()
ch
## Geometry set for 1 feature
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: 5634880 ymin: 6160516 xmax: 5650216 ymax: 6177418
## Projected CRS: POSGAR 2007 / Argentina 5
Mapeamos los polígonos voronoi de los siniestros viales de 2018 a partir de un buffer de 2000 metros y de la envolvente convexa, para identificar zonas con mayor cantidad de víctimas por accidente
voronoi_buf2000 <- siniestros_viales_5347_2018 %>%
st_geometry() %>%
st_union() %>%
st_voronoi() %>%
st_collection_extract()%>%
st_sfc(crs = st_crs(siniestros_viales_5347_2018)) %>%
st_sf() %>%
st_join(siniestros_viales_5347_2018) %>%
st_intersection(buf)
qtm(voronoi_buf2000, fill=NULL)+
qtm(buf, fill=NULL)+
qtm(siniestros_viales_5347_2018)
qtm(voronoi_buf2000, fill = "cantidad_victimas")
voronoi_ch <- siniestros_viales_5347_2018 %>%
st_geometry() %>%
st_union() %>%
st_voronoi() %>%
st_collection_extract()%>%
st_sfc(crs = st_crs(siniestros_viales_5347_2018)) %>%
st_sf() %>%
st_join(siniestros_viales_5347_2018) %>%
st_intersection(ch)
qtm(voronoi_ch, fill=NULL)+
qtm(ch, fill=NULL)+
qtm(siniestros_viales_5347_2018)
qtm(voronoi_ch, fill = "cantidad_victimas")
Evaluamos la cantidad de siniestros de la ciudad según la causa y la cantidad de víctimas
siniestros_viales_5347 %>% group_by(causa,cantidad_victimas) %>% summarise(tot=n()) %>% arrange(-tot)
## Simple feature collection with 12 features and 3 fields
## Geometry type: GEOMETRY
## Dimension: XY
## Bounding box: xmin: 5634727 ymin: 6159162 xmax: 5650689 ymax: 6177798
## Projected CRS: POSGAR 2007 / Argentina 5
## # A tibble: 12 x 4
## # Groups: causa [2]
## causa cantidad_victimas tot geometry
## <fct> <int> <int> <GEOMETRY [m]>
## 1 lesiones 1 2803 MULTIPOINT ((5634727 6169141), (5634788 61~
## 2 lesiones 2 236 MULTIPOINT ((5634896 6166399), (5635361 61~
## 3 homicidio 1 57 MULTIPOINT ((5634913 6165199), (5635168 61~
## 4 lesiones 3 56 MULTIPOINT ((5635319 6164556), (5635773 61~
## 5 lesiones 4 28 MULTIPOINT ((5635114 6169863), (5635159 61~
## 6 lesiones 5 7 MULTIPOINT ((5636866 6164419), (5636998 61~
## 7 lesiones 6 5 MULTIPOINT ((5635830 6169733), (5637717 61~
## 8 lesiones 7 4 MULTIPOINT ((5643582 6164818), (5647033 61~
## 9 lesiones 8 4 MULTIPOINT ((5643446 6175821), (5645909 61~
## 10 lesiones 18 2 POINT (5643108 6170575)
## 11 homicidio 2 1 POINT (5649769 6169187)
## 12 lesiones 17 1 POINT (5641494 6175088)
¿Cuántos siniestros hay por comuna?
siniestros_viales_5347 %>% group_by(comuna) %>% summarise(tot=n())%>% arrange(-tot)
## Simple feature collection with 15 features and 2 fields
## Geometry type: MULTIPOINT
## Dimension: XY
## Bounding box: xmin: 5634727 ymin: 6159162 xmax: 5650689 ymax: 6177798
## Projected CRS: POSGAR 2007 / Argentina 5
## # A tibble: 15 x 3
## comuna tot geometry
## <int> <int> <MULTIPOINT [m]>
## 1 1 385 ((5647503 6169610), (5647528 6167921), (5647546 6170484), (5647~
## 2 3 313 ((5645594 6168882), (5645629 6170424), (5645648 6170156), (5645~
## 3 15 248 ((5637416 6171490), (5637543 6171225), (5637586 6171256), (5637~
## 4 9 227 ((5634788 6166266), (5634788 6166266), (5634829 6165201), (5634~
## 5 13 224 ((5640261 6175948), (5640265 6176123), (5640268 6177156), (5640~
## 6 11 212 ((5634892 6169546), (5634892 6169547), (5635114 6169863), (5635~
## 7 14 210 ((5642507 6174274), (5642634 6174028), (5642645 6174033), (5642~
## 8 4 207 ((5643950 6165047), (5644174 6165385), (5644241 6164130), (5644~
## 9 7 207 ((5639740 6168150), (5639756 6167784), (5639844 6168181), (5639~
## 10 5 186 ((5643846 6170409), (5643877 6170464), (5643958 6169930), (5643~
## 11 2 180 ((5645437 6170839), (5645560 6171352), (5645563 6170831), (5645~
## 12 12 178 ((5636533 6173503), (5636661 6172271), (5636662 6173047), (5636~
## 13 6 166 ((5641298 6169129), (5641300 6169885), (5641402 6169166), (5641~
## 14 10 164 ((5634727 6169141), (5634792 6168636), (5634802 6168352), (5634~
## 15 8 97 ((5637747 6162551), (5638108 6162200), (5638150 6162594), (5638~
En la comuna 3 se identifican 313 accidentes, mientras que en la comuna 5 y 6 disminuyen a 186 y 166 respectivamente.
Importamos los datasets con los polígonos de las comunas y las líneas de las calles y los convertimos a una proyección métrica (5347) al igual que el dataset geográfico de siniestros viales
comunas <- comunas_pob_21_mas60 %>%
st_transform(crs = 5347)
qtm(comunas,text = "COMUNAS", text.size = 1,text.col="red")
callesba <- st_read("./data/callejero.shp")
## Reading layer `callejero' from data source
## `E:\Documentos\BDEIT\Geoestadistica\TPF\data\callejero.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 30712 features and 29 fields
## Geometry type: LINESTRING
## Dimension: XY
## Bounding box: xmin: -58.53244 ymin: -34.70574 xmax: -58.34191 ymax: -34.52947
## Geodetic CRS: WGS 84
glimpse(callesba)
## Rows: 30,712
## Columns: 30
## $ id <dbl> 28686, 896, 1724, 1729, 1828, 1997, 2062, 3137, 3831, 30056~
## $ codigo <dbl> 17138, 16003, 16003, 19028, 16003, 21059, 19053, 16011, 401~
## $ nomoficial <chr> "PUNTA ARENAS", "OBLIGADO RAFAEL, Av.Costanera", "OBLIGADO ~
## $ alt_izqini <dbl> 0, 6182, 4202, 4202, 3452, 0, 0, 2796, 3002, 1172, 2602, 0,~
## $ alt_izqfin <dbl> 0, 6200, 4500, 4220, 4200, 0, 0, 2800, 3030, 1200, 3100, 0,~
## $ alt_derini <dbl> 0, 6181, 4201, 4201, 3451, 0, 0, 2795, 3001, 1171, 2601, 32~
## $ alt_derfin <dbl> 0, 6199, 4499, 4219, 4199, 0, 0, 2799, 3029, 1199, 3099, 32~
## $ nomanter <chr> NA, "COSTANERA NORTE, Av.", "COSTANERA NORTE, Av.", "REPUBL~
## $ nom_mapa <chr> "TÚNEL PUNTA ARENAS", "AV.COSTANERA RAFAEL OBLIGADO", "AV.C~
## $ tipo_c <chr> "TÚNEL", "AVENIDA", "AVENIDA", "AVENIDA", "AVENIDA", "CALLE~
## $ long <dbl> 334.6034, 56.3800, 297.2600, 30.5900, 175.9300, 9.4000, 14.~
## $ sentido <chr> "DOBLE", "DOBLE", "DOBLE", "CRECIENTE", "DOBLE", "DOBLE", "~
## $ cod_sent <dbl> 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, -1, 1, 1, -1, 1, 1, 2, ~
## $ observa <chr> "Viaducto - Túnel inaugurado en Abril de 2009", NA, NA, NA,~
## $ bicisenda <chr> "-", "Ciclovías", "Ciclovías", "-", "Ciclovías", "Ciclovías~
## $ lado_ciclo <chr> NA, NA, NA, NA, NA, "Por calzada paralela y adyacente a la ~
## $ recorrid_x <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Vereda", NA, NA, N~
## $ ciclo_obse <chr> NA, "Construcción Año 2014", "Construcción Año 2014", NA, "~
## $ tooltip_bi <chr> NA, "Ciclovía", "Ciclovía", NA, "Ciclovía", "Ciclovía", NA,~
## $ red_jerarq <chr> "VÍA DISTRIBUIDORA COMPLEMENTARIA", "VÍA DISTRIBUIDORA PRIN~
## $ red_tp <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, "SI", NA, NA, "SI", NA,~
## $ ffcc <chr> "SI", NA, NA, "SI", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ tipo_ffcc <chr> "Túnel", NA, NA, "Paso a Nivel", NA, NA, NA, NA, NA, NA, NA~
## $ COMUNA <int> 15, 13, 14, 12, 14, 12, 12, 13, 14, 2, 14, 12, 13, 2, 2, 2,~
## $ COM_PAR <int> 15, 13, 14, 12, 14, 12, 12, 13, 14, 2, 14, 12, 13, 2, 2, 2,~
## $ COM_IMPAR <int> 15, 13, 14, 12, 14, 12, 12, 13, 14, 2, 14, 12, 13, 2, 2, 2,~
## $ BARRIO <chr> "PATERNAL", "PALERMO", "PALERMO", "SAAVEDRA", "PALERMO", "C~
## $ BARRIO_PAR <chr> "PATERNAL", "PALERMO", "PALERMO", "SAAVEDRA", "PALERMO", "C~
## $ BARRIO_IMP <chr> "PATERNAL", "PALERMO", "PALERMO", "SAAVEDRA", "PALERMO", "C~
## $ geometry <LINESTRING [°]> LINESTRING (-58.4694 -34.59..., LINESTRING (-58.~
calles <- callesba %>%
st_transform(crs = 5347)
Filtramos las calles de las comunas 3, 5 y 6.
callesc356 <- callesba %>% filter(COMUNA %in% c("3","5","6")) %>% select(id)
callesc356 <- callesc356 %>%
st_transform(crs = 5347)
qtm(callesc356)
glimpse(comunas)
## Rows: 15
## Columns: 6
## $ BARRIOS <fct> RECOLETA, ALMAGRO - BOEDO, CABALLITO, FLORES - PARQUE CHACA~
## $ COMUNAS <fct> 2, 5, 6, 7, 9, 10, 11, 12, 14, 3, 15, 8, 4, 1, 13
## $ POB21_M60 <dbl> 39464, 42737, 44952, 49788, 36761, 39205, 44737, 49197, 545~
## $ P_COMU_M60 <dbl> 26, 23, 24, 21, 21, 23, 24, 23, 24, 21, 22, 14, 17, 19, 25
## $ P_CABA_M60 <dbl> 6, 6, 7, 8, 6, 6, 7, 7, 8, 6, 6, 5, 6, 7, 9
## $ geometry <MULTIPOLYGON [m]> MULTIPOLYGON (((5648663 617..., MULTIPOLYGON (((5645570 616~
comuna356 <- comunas %>%
select (COMUNAS,BARRIOS)%>%
filter(COMUNAS %in% c("3","5","6"))
qtm(comuna356,text = "COMUNAS", text.size = 1,text.col="red")
sin_viales_c356 <- siniestros_viales_5347 %>% filter(comuna %in% c("3","5","6"))
¿Se repiten los siniestros en una misma localización?
sin_viales_c356 %>% group_by(geom_3857) %>% summarise(tot=n())%>% arrange(-tot)
## Simple feature collection with 572 features and 2 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 5641298 ymin: 6166292 xmax: 5647537 ymax: 6170855
## Projected CRS: POSGAR 2007 / Argentina 5
## # A tibble: 572 x 3
## geom_3857 tot geometry
## <fct> <int> <POINT [m]>
## 1 0101000020110F0000336D42B300D058C1B65AA358F95C4FC1 5 (5643964 6169660)
## 2 0101000020110F00002590BD0427D358C142A5DF55565E4FC1 4 (5641298 6169129)
## 3 0101000020110F0000291E456CF7CD58C16F811B71BF5B4FC1 4 (5645691 6170148)
## 4 0101000020110F000056D273AB56CC58C133E9ED7E6D604FC1 4 (5647033 6168161)
## 5 0101000020110F000058E61C1FDFCC58C19FAC1013935D4FC1 4 (5646602 6169367)
## 6 0101000020110F000059132394D0CD58C102AAB6446D5D4FC1 4 (5645808 6169441)
## 7 0101000020110F000076D75150F9CE58C1C3DCBCA7B35D4FC1 4 (5644828 6169341)
## 8 0101000020110F00001134A3AC56CD58C1D02E32B5575D4FC1 3 (5646210 6169470)
## 9 0101000020110F0000168F922A89CD58C11598A2E9E05F4FC1 3 (5646027 6168408)
## 10 0101000020110F000093E74AAC54CE58C12999E30A2E604FC1 3 (5645354 6168292)
## # ... with 562 more rows
Hay 73 localizaciones donde ocurrieron más de una vez siniestros viales.
Mapeamos los siniestros viales de las 3 comunas seleccionadas (según cantidad de víctimas) donde se concentra gran parte de la población mayor a 60 años.
tm_shape(comuna356) +
tm_fill() +
tm_shape(sin_viales_c356) +
tm_bubbles(size ="cantidad_victimas")
plot(callesc356)
plot(sin_viales_c356, add = TRUE)
Generamos un dataset de procesos puntuales a partir de los siniestros viales de las comunas 3, 5 y 6.
ventana <-as.owin(st_geometry(comuna356))
sin0 <- as.ppp(st_geometry(sin_viales_c356))
Generamos un dataset de red de lineas de las calles asociada a los puntos
callesnet <- as.psp(st_geometry(callesc356)) %>% as.linnet()
plot(callesnet)
Generamos el patrón de puntos sobre la red de líneas
sinnet <- lpp(sin0,callesnet)
plot(sinnet)
intensity(sinnet)
## [1] 0.002148839
Generamos intensidades kernel de los siniestros en las comunas
dsv <- density(sin0)
plot(dsv, main='densidad de siniestros viales en Comunas 3, 5 y 6')
Generamos intensidades kernel de los siniestros en las comunas sobre las líneas de las calles
d10 <- density.lpp(sinnet, 10)
plot(-d10, main='densidad de siniestros viales cada 10 metros en Comuna 3,5 y 6')
plot(d10, style="width", adjust=5, main='Densidad de siniestros viales cada 10 metros en Comuna 3,5 y 6')