Análisis geoespacial de arbolado público en Montevideo
“El mejor momento para plantar un árbol fue hace 20 años. El segundo mejor momento es ahora.” - Proverbio chino.
Economista
Pandemia y maternidad - comienzo en análisis de datos (Python)
Posgrado Big Data e Inteligencia Territorial
Interés en base de datos locales y temas de ambiente, cultura, género, educación.
En Montevideo hay más de 200.000 árboles en el espacio común.
Desde 2001 cuando se contabilizaron 210.717 ejemplares, el último censo del arbolado público, de 2008 recogió información de unos 137.219. Los restantes no pudieron ser georreferenciados (32 %) o fueron extraídos o cortados.
Usando este conjunto de datos de arbolado público se investigará si su disposición geoespacial puede proporcionar alguna pista sobre los lugares donde sería beneficioso llevar a cabo intervenciones adicionales.
Utilizando datos recopilados sobre más de 200,000 árboles en espacios públicos, examinamos cómo se distribuyen en relación con los diferentes barrios de la ciudad y su población.
Este trabajo es un ejercicio académico y que tiene sus limitaciones de complejidad, técnicas y de extensión.
Mapa digital que contiene la representación de los árboles del ornato público (no incluye los de parques y plazas ni los del área rural del departamento) - Servicio de Arbolado Público de la Intendencia de Montevideo.
Mapa digital que contiene los límites correspondientes a los barrios de la ciudad - Instituto Nacional de Estadística (INE).
Población por barrio - Censo de 2011, INE.
Luego de cargarlo, procesarlo y limpiarlo, arbol
es un dataset con 135.639 registros y 5 variables:
Variable | Descripción |
---|---|
ARBOL | Código de identificación de cada árbol |
ALTURA | Altura del árbol |
NOM_CIENTI | Nombre científico del árbol |
NOM_COMUN | Nombre “común” del árbol |
geometry | Georreferenciación del árbol |
barrios
es un dataset que contiene los 62 barrios de Montevideo y 6 columnas, entre otras, AREA_KM
y una de ellas correspondiente a la geometría.
Y tomo la población del dataset poblacion
para asociarla a cada barrio.
Según el dataset, existen 309 tipos de árboles plantados en espacios públicos de Montevideo. Estos son los 10 más plantados
Dos indicadores de interés:
cantidad de árboles por área de cada barrio (arbol_km2
)
proporción de árboles por habitante (arbol_hab
), también al interior del barrio.
Vamos a analizar la cantidad de árboles por kilómetro cuadrado y la proporción de árboles por habitante en cada barrio.
Primero, vamos a realizar pruebas de autocorrelación espacial para investigar si existe algún patrón significativo en la distribución del arbolado por habitante en los diferentes barrios.
Y en segundo lugar, estudiar el proceso de patrones de puntos para ver si en todo caso, en los agrupamientos, se puede descartar la aleatoriedad.
Parece haber una concentración de densidad de árboles al centro de la ciudad.
(Mapa interactivo)
Destaca, por sobre todo, la concentración de árboles que existe en el barrio Carrasco.
(Mapa interactivo)
Mapeamos las relaciones entre vecinos a través de la función poly2nb
, que crea una lista de vecinos basada en la capa de polígonos de barrios. En este caso, elegí queen = false
para que se necesite más de un punto de contacto para configurarse como vecinos: dos polígonos son considerados vecinos si comparten una frontera común y no solo un vértice (criterio de contigüidad de vecindad de Rook).
Utilizando la función nb2listw()
convertí la lista de vecinos en una matriz de pesos binarios (style='B'
), método que asigna un peso de 1 a los vecinos y 0 a los no vecinos. Es decir, todas las entidades vecinas tienen el mismo peso.
Esto me da 322 relaciones de primer grado y 644 de segundo grado.
Ahora vamos a realizar un test de autocorrelación espacial global utilizando la función moran.test()
que realiza el índice de Moran. El I de Moran toma como argumentos la variable que se desea analizar (en este caso, arbol_hab
) y la matriz de pesos espaciales y evalúa si hay alguna dependencia espacial significativa entre las observaciones.
Moran I test under randomisation
data: arbol_barrio$arbol_hab
weights: lwb
Moran I statistic standard deviate = 4.9821, p-value = 3.145e-07
alternative hypothesis: greater
sample estimates:
Moran I statistic Expectation Variance
0.353315637 -0.016393443 0.005506761
En este caso, el valor del índice de Moran es de 0.35 lo cual no representa un valor alto para este tipo de prueba. Podría existir cierta tendencia de agrupamiento de valores similares en el espacio, es decir, que podría sugerir que las áreas geográficas cercanas tienen valores más similares de la variable de interés.
Después de testear la significatividad, con un p-valor tan bajo (p-value = 3.145e-07), hay evidencia estadísticamente significativa para rechazar la hipótesis nula, es decir que los datos podrían estar mostrando una autocorrelación espacial significativa.
El correlograma de Moran indica que el único orden que puede ser significativo es el primero, es decir los vecinos directos. Para el caso de los vecinos de los vecinos no sería correcta la afirmación.
Los barrios que parecen influir en esta investigación son 1 (Ciudad Vieja), 4 (Cordón), 13 (Punta Gorda), 14 (Carrasco) y 29 (Aires Puros).
x wx is_inf labels dfb.1_ dfb.x
1 0.007566706 0.4135600 TRUE 1 1.383449e-02 -0.0119479540
2 0.073508137 0.2935707 FALSE 2 -1.297112e-01 0.0789483203
3 0.061397262 0.1675896 FALSE 3 -2.293867e-01 0.1573001380
4 0.087785001 1.0116196 TRUE 4 2.349478e-01 -0.1117467739
5 0.086514778 0.2498467 FALSE 5 -1.381163e-01 0.0676914366
6 0.100664400 0.3389300 FALSE 6 -7.950224e-02 0.0223887534
7 0.081841115 0.1834536 FALSE 7 -1.816450e-01 0.0977881099
8 0.082789152 0.5433438 FALSE 8 9.055549e-03 -0.0047917479
9 0.128925888 0.5002068 FALSE 9 -1.328803e-02 -0.0166725350
10 0.144127371 0.6191785 FALSE 10 -3.550071e-05 -0.0023142820
11 0.138410503 0.4243477 FALSE 11 -1.013708e-02 -0.0493302026
12 0.011634996 0.5443369 FALSE 12 1.569134e-01 -0.1341952676
13 0.233817238 0.6893816 TRUE 13 6.716737e-02 -0.1049477634
14 0.328125000 0.4066938 TRUE 14 1.066855e+00 -1.4346091810
15 0.172876527 0.6476384 FALSE 15 6.252074e-03 -0.0154955750
16 0.035726594 0.4673375 FALSE 16 1.762797e-02 -0.0139701366
17 0.103786277 0.3782798 FALSE 17 -6.201614e-02 0.0134073041
18 0.099020221 0.5126959 FALSE 18 -1.504853e-02 0.0047022353
19 0.049969531 0.7952724 FALSE 19 2.628805e-01 -0.1946399221
20 0.042309547 0.1388883 FALSE 20 -2.824373e-01 0.2175404057
21 0.088896768 0.4562123 FALSE 21 -3.688814e-02 0.0170573814
22 0.139906417 0.4845145 FALSE 22 -5.398524e-03 -0.0363953006
23 0.123244734 0.8677526 FALSE 23 4.959300e-02 0.0307869467
24 0.094410361 0.7424031 FALSE 24 8.290115e-02 -0.0321849925
25 0.146223992 0.9937601 FALSE 25 -4.731501e-03 0.1223169975
26 0.130221456 0.6202970 FALSE 26 1.980878e-03 0.0029097920
27 0.167790471 0.6249471 FALSE 27 7.888841e-03 -0.0218795723
28 0.071965722 0.5943425 FALSE 28 5.246438e-02 -0.0325222647
29 0.081323225 1.0228571 TRUE 29 2.751362e-01 -0.1494692096
30 0.014508463 0.5838156 FALSE 30 1.927041e-01 -0.1635975266
31 0.053018885 0.2377501 FALSE 31 -1.860506e-01 0.1352880335
32 0.029046175 0.3638863 FALSE 32 -7.255458e-02 0.0589512098
33 0.162242620 0.6650766 FALSE 33 -1.262214e-03 0.0041530798
34 0.132556850 0.6677714 FALSE 34 6.059505e-03 0.0119410591
35 0.178551177 0.3820554 FALSE 35 8.754680e-02 -0.1973248645
36 0.022569166 0.2753347 FALSE 36 -1.592052e-01 0.1321115424
37 0.032599401 0.4545602 FALSE 37 1.088912e-02 -0.0087348373
38 0.210573343 0.7363150 FALSE 38 -1.694792e-04 0.0002901371
39 0.180553493 1.0758991 FALSE 39 -1.212922e-01 0.2658326447
40 0.141832900 0.7118773 FALSE 40 2.120955e-03 0.0255435422
41 0.136821685 0.6464375 FALSE 41 2.078364e-03 0.0075957977
42 0.176362089 0.9771359 FALSE 42 -8.069814e-02 0.1881088906
43 0.184500988 0.7929872 FALSE 43 -3.376742e-02 0.0704816226
44 0.170411771 0.7709939 FALSE 44 -2.189127e-02 0.0570675536
45 0.174044176 1.0144062 FALSE 45 -8.540649e-02 0.2071254848
46 0.126977055 0.7793586 FALSE 46 2.671643e-02 0.0264879109
47 0.111666667 0.4791162 FALSE 47 -2.578410e-02 -0.0001020081
48 0.159382663 0.7180573 FALSE 48 -8.147369e-03 0.0302208170
49 0.143044390 0.8033677 FALSE 49 2.465404e-03 0.0535240854
50 0.084767048 0.6136005 FALSE 50 4.216360e-02 -0.0214623711
51 0.180704259 0.9242946 FALSE 51 -7.303332e-02 0.1597430837
52 0.151579091 0.5341649 FALSE 52 6.024415e-03 -0.0399031721
53 0.045671539 0.6158990 FALSE 53 1.269288e-01 -0.0961750143
54 0.119063943 0.9398757 FALSE 54 7.689820e-02 0.0256667656
55 0.072942122 0.3778326 FALSE 55 -7.899820e-02 0.0484124418
56 0.116313528 0.6137300 FALSE 56 7.715034e-03 0.0014740874
57 0.064184163 0.3072819 FALSE 57 -1.272453e-01 0.0852614548
58 0.154441880 0.3697327 FALSE 58 2.257486e-02 -0.1131544595
59 0.074629970 0.6177490 FALSE 59 6.165131e-02 -0.0370004469
60 0.133499688 0.3389276 FALSE 60 -2.542551e-02 -0.0567618190
61 0.014264900 0.2971122 FALSE 61 -1.309178e-01 0.1112144718
62 0.048114247 0.1108384 FALSE 62 -2.980198e-01 0.2229387728
dffit cov.r cook.d hat
1 0.0138407492 1.1039657 9.740193e-05 0.06329864
2 -0.1488462240 1.0241514 1.108406e-02 0.02244277
3 -0.2472079760 0.9881469 2.995982e-02 0.02710245
4 0.3069581297 0.8963022 4.418553e-02 0.01859317
5 -0.1777876534 0.9976934 1.563639e-02 0.01886360
6 -0.1270274995 1.0185156 8.074288e-03 0.01664614
7 -0.2227448242 0.9733180 2.422870e-02 0.01997981
8 0.0112061123 1.0547863 6.384594e-05 0.01973798
9 -0.0606860849 1.0451865 1.866050e-03 0.01744582
10 -0.0049007320 1.0560679 1.221189e-05 0.02075816
11 -0.1220895068 1.0279169 7.483058e-03 0.01927595
12 0.1570915358 1.0854688 1.246586e-02 0.05967994
13 -0.1172099469 1.1198576 6.967189e-03 0.08134073
14 -1.4900804172 1.0341155 9.965871e-01 0.22073952
15 -0.0218215458 1.0684509 2.420673e-04 0.03253449
16 0.0179072604 1.0783637 1.630319e-04 0.04121020
17 -0.1058330440 1.0278694 5.631091e-03 0.01639210
18 -0.0232954692 1.0507413 2.757901e-04 0.01681411
19 0.2735321827 0.9931414 3.666732e-02 0.03267272
20 -0.2895136231 0.9988353 4.110154e-02 0.03704428
21 -0.0488558922 1.0489961 1.211059e-03 0.01836803
22 -0.0861178727 1.0417830 3.747476e-03 0.01963625
23 0.1630337396 0.9982021 1.316654e-02 0.01672546
24 0.1186186797 1.0247414 7.059425e-03 0.01741083
25 0.2469349977 0.9634322 2.960428e-02 0.02137322
26 0.0099136994 1.0525712 4.996898e-05 0.01764953
27 -0.0322233299 1.0648742 5.276700e-04 0.02992611
28 0.0596089690 1.0530906 1.802109e-03 0.02296511
29 0.3357647624 0.8833189 5.244288e-02 0.02011522
30 0.1930593464 1.0744555 1.875656e-02 0.05721104
31 -0.1950759165 1.0256834 1.896833e-02 0.03107490
32 -0.0732313390 1.0797612 2.721711e-03 0.04582432
33 0.0064858657 1.0631991 2.138918e-05 0.02733825
34 0.0365717493 1.0506074 6.792436e-04 0.01805372
35 -0.2664735400 1.0060340 3.496939e-02 0.03571111
36 -0.1600108954 1.0718837 1.291373e-02 0.05066970
37 0.0110250811 1.0809187 6.180350e-05 0.04332165
38 0.0003404728 1.0989146 5.894326e-08 0.05890277
39 0.3543214769 0.9637801 6.047694e-02 0.03689905
40 0.0573011268 1.0497350 1.665024e-03 0.02012902
41 0.0197930171 1.0533982 1.991332e-04 0.01891465
42 0.2579386653 1.0064661 3.279362e-02 0.03445239
43 0.0917557103 1.0690776 4.266040e-03 0.03934348
44 0.0820506226 1.0600234 3.411136e-03 0.03124226
45 0.2889941512 0.9865578 4.078360e-02 0.03316517
46 0.1077225241 1.0289467 5.834711e-03 0.01716698
47 -0.0540607040 1.0448159 1.481571e-03 0.01612909
48 0.0488804893 1.0587102 1.213067e-03 0.02610909
49 0.1163826103 1.0329458 6.812351e-03 0.02045549
50 0.0532404784 1.0493528 1.437778e-03 0.01925870
51 0.2127146525 1.0322771 2.255685e-02 0.03698991
52 -0.0725722561 1.0507183 2.667936e-03 0.02311825
53 0.1308785109 1.0548409 8.640717e-03 0.03506255
54 0.2093383076 0.9635092 2.133094e-02 0.01637520
55 -0.0903153749 1.0456105 4.122944e-03 0.02263204
56 0.0188817732 1.0504754 1.812157e-04 0.01622794
57 -0.1387398528 1.0361353 9.668937e-03 0.02591683
58 -0.1963129648 1.0059864 1.909214e-02 0.02415376
59 0.0712889062 1.0495070 2.574300e-03 0.02207590
60 -0.1671878071 1.0016271 1.385916e-02 0.01823039
61 -0.1311502256 1.0867561 8.704299e-03 0.05741751
62 -0.3088119963 0.9774850 4.634179e-02 0.03368455
En la misma línea de análisis, vamos a testear la autocorrelación espacial global a través de otro indicador: el C de Geary. Mientras que el I de Moran se centra en la correlación entre los valores de una variable y los valores de esa misma variable en ubicaciones vecinas, el coeficiente de Geary se centra en la diferencia de los valores entre ubicaciones vecinas.
Geary C test under randomisation
data: arbol_barrio$arbol_hab
weights: lwb
Geary C statistic standard deviate = 5.439, p-value = 2.679e-08
alternative hypothesis: Expectation greater than statistic
sample estimates:
Geary C statistic Expectation Variance
0.490257895 1.000000000 0.008783379
En este caso el C de Geary es de 0.49. Como varía entre 0 y 2, si bien inferior a 1 (ausencia de correlación), no es próximo a 0. Dado el p-valor extremadamente bajo, se podría descartar la hipótesis de que no existe autocorrelación espacial en la cantidad de árboles por habitante.
A nivel global, los valores del árbol por habitante tienen vecinos con valores similares.
El índice de Moran local es una medida que evalúa la autocorrelación espacial a nivel local, es decir, examina si los valores de una variable en una ubicación están correlacionados con los valores de esa misma variable en ubicaciones vecinas.
Azul [Low-Low (LL)]: Las observaciones con valores bajos que están rodeadas principalmente por otras observaciones con valores bajos.
Celeste [High-Low (HL)]: Las observaciones con valores altos que están rodeadas principalmente por observaciones con valores bajos.
Rosa [Low-High (LH)]: Las observaciones con valores bajos que están rodeadas principalmente por observaciones con valores altos.
Rojo [High-High (HH)]: Las observaciones con valores altos que están rodeadas principalmente por otras observaciones con valores altos.
Blanco: áreas no significativas para este análisis.
Estas categorías ayudan a identificar clústeres de alta o baja concentración de valores para una variable específica en el espacio.
Si bien se agruparon por barrios para tener una mirada por área, los árboles representan patrones de puntos, por tanto procederemos a analizar si su frecuencia de ocurrencia es aleatoria o responde a algún patrón.
Primero, preparo una ventana (as.owin()
) que abarca toda la ciudad, eliminando cualquier agujero en la geometría y estableciendo la unidad de medida en metros, y los convierto a un patrón de puntos espaciales (as.ppp()
) que represente la distribución de los árboles dentro de la ventana espacial definida. “Genero ruido” (rjitter()
) para evitar duplicados. Y calculo la intensidad de los árboles en función del área en la que se encuentran.
Este análisis asume que la intensidad del patrón de puntos es homogénea, es decir, que en todos lados hay la misma cantidad de árboles, pero claramente esto no es así.
Intensidad de árboles por kilómetro cuadrado: 256,9
Una forma de saber si existe un patrón aleatorio es subdividir la ventana en porciones que cubran toda el área de interés (teselación) y calcular la intensidad en cada una de estas áreas.
Optamos por la teselación por hexágonos. Con hextess(Ventana, 1500)
generamos una malla de hexágonos dentro de la ventana definida, donde cada hexágono tiene un lado de 1,5 kilómetros, y realizamos el conteo de puntos de árboles dentro de cada hexágono de esta malla.
Y a partir de esta información, la visualizamos a través de un mapa de calor que muestra la densidad de árboles por unidad de área en cada hexágono.
Ahora lo que vamos a evaluar es si la distribución de los árboles en los hexágonos es aleatoria o si hay algún patrón espacial significativo.
Hipótesis nula (\(H_0\)): la intensidad es homogénea y la distribución de casos en los cuadrantes responde a una distribución de Poisson.
Hipótesis alternativa (\(H_1\)) : la intensidad no es homogénea (en una forma no especificada).
La forma por defecto que calcula la significancia está basada en \(\chi^2\), lo cual supone algunas restricciones: (a) el numero de conteos por cuadrado tiene que ser > 5; y (b) Cada uno de los cuadrantes es relativamente similar en superficie.
Dado que estas restricciones no se cumplen en este caso, usamos el método Montecarlo. Este método no tiene estas restricciones y es más robusto en tales situaciones. Realiza simulaciones para generar un conjunto de datos de referencia y evaluar la probabilidad de obtener los resultados observados bajo la hipótesis nula de distribución espacial aleatoria.
Conditional Monte Carlo test of CSR using quadrat counts
Test statistic: Pearson X2 statistic
data:
X2 = 393129, p-value = 0.001998
alternative hypothesis: two.sided
Quadrats: 122 tiles (irregular windows)
Según la prueba, existe una probabilidad de 99.8% de que rechazar la hipótesis nula esté bien, y los datos no sigan una distribución al azar.
Después de realizar los análisis de procesos puntuales y de asociación espacial, parecería que el proceso de arbolado de Montevideo no obedece un orden aleatorio y que habría áreas de prioridad para llevar a cabo políticas de planificación y forestación urbana.
Tal como se comentó anteriormente, hay ciertas áreas que parecerían prioritarias y estás están explicitadas en el análisis LISA, en aquel cluster identificado como “bajo-bajo”.
Por otro lado, surge del análisis que Ciudad Vieja, si bien no conforma un cluster podría identificarse como un barrio para llevar a cabo una intervención de forestación ya que presenta valores bajos de los dos índices estudiados: arbol_hab
y arbol_km2
.
Bozzo, A. et. al. (2021). Consultoría para apoyo al desarrollo e implementación de planes de arbolado urbano y áreas verdes departamentales considerando la capacidad de producción de viveros, para la adaptación al cambio climático y la variabilidad. Montevideo, Uruguay.
Gabinete Ambiental (2017). Política Nacional de Cambio Climático.
Ochoa de la Torre, J.M. (2010). Ciudad, vegetación e impacto climático. El confort en los espacios urbanos. Palapa: Universidad de Colima, México.
Densidad de población por zonas
Nivel socio - económico
Seguro que en mucho más.
Comentarios, críticas, consejos: siempre bienvenidos.
¡Muchas gracias!
Virginia Recagno - virginia.recagno@gmail.com