¿Cómo se explican los precios de la vivienda en San Isidro?

En el trabajo del módulo anterior, se analizaron los precios de las viviendas en el Partido de San Isidro con el fin deteminar las condicionantes que lo modifican. Se observó que variables como la superficie o la cantidad de ambientes afectaban el valor del precio de las viviendas.

El objetivo del presente trabajo es determinar si existe dependencia espacial en los precios de las viviendas.

Librerías a utilizar:

library(tidyverse)
library(ggplot2)
library(dplyr)
library(lubridate)
library(readxl)
library(sf)
library(sp)
library(ggmap)
require(osmdata) 
require(leaflet)
library(rgdal)
library(writexl)
library(kableExtra)
require(spatialreg)
library(scales)
library(jtools)
library(osmdata)
library(gstat)
library(tmap)
library(spdep)
library(spatstat)
library(spgwr)
options(scipen=1000000)

   

Para tener continuidad con el trabajo anterior, se utiliza la misma base de datos, es decir los datos de Properati descargados el día 19/06/2020.

Se carga la base de datos, incluyendo la variable de zonificación incorporada en el trabajo anterior.

prop_si_geo_zona <- read_sf("prop_si_geo_zona.geojson") 

1. VALORES DEL SUELO

 

En primer lugar, se busca evaluar el mapa de gradientes de precio en el partido de San Isidro. Para esto, se consideran a las propiepades como observaciones representativas de la zona.
A fin de estandarizar los precios, se busca generar un mapa de valor del m2.

Se considerará la superficie total como indicadora del precio: surface_total. En caso de esta variable sea NA, se tomará la superficie total: surface_covered.
Se descartan las propiedades sin m2, sin precio o con un metraje inferior a las 20m2 (se asume que no se trataría de una vivienda).

prop_si_geo_zona <- prop_si_geo_zona %>% 
  mutate(m2 = ifelse(!is.na(surface_covered), surface_covered, surface_total)) %>%
  filter(!is.na(m2) & m2> 20 & !is.na(price)) %>%
  mutate(usd_m2 = price / m2)

¿Cómo se distribuye el valor del m2 de las propiedades en San Isidro?

prop_si_geo_zona %>% 
  ggplot(aes(x = property_type, y = usd_m2)) +
  geom_boxplot() + 
  geom_text(data= prop_si_geo_zona %>% filter(usd_m2 > 10000), 
            aes(label = round(usd_m2,2)), nudge_y = 1000) + 
  labs(title = "Distribución del valor del m2 en San Isidro", 
       subtitle = "Según el tipo de propiedad en venta", 
       x = "Tipo de propiedad", 
       y = "USD/m2", 
       caption = "Fuente: Elaboración propia con datos de Properati") +
  theme_minimal()

Se observan 3 claros outliers. Valores de de 33030.2USD/m2, 24904.21 USD/m2 y 11000 USD/m2 parecerían ser errores, ya implicaría valores muy superiores al valor promedio del barrio más caro de Capital Federal.
Además estos valores superan considerablemente los valores de la muestra. Se remueve entonces estos outliers de la muestra.

prop_si_geo_zona <- prop_si_geo_zona %>% 
  filter(usd_m2 <=10000)

Descartado esos outliers, ¿cómo queda entonces la distribución de los precios?

prop_si_geo_zona %>% 
  ggplot(aes(x = property_type, y = usd_m2)) +
  geom_boxplot() + 
  geom_text(data= prop_si_geo_zona %>% filter(usd_m2 < 200), 
            aes(label = round(usd_m2,2)), nudge_y = 100) + 
  labs(title = "Distribución del valor del m2 en San Isidro", 
       subtitle = "Según el tipo de propiedad en venta", 
       x = "Tipo de propiedad", 
       y = "USD/m2", 
       caption = "Fuente: Elaboración propia con datos de Properati") +
  theme_minimal()

Hay dos valores que nuevamente parecerían no ser correctos. Es muy poco probable que el valor del m2 se comercialice a menos de 100 usd_m2.
Se remueven también esas dos observaciones.

prop_si_geo_zona <- prop_si_geo_zona %>% 
  filter(usd_m2 >=100)

¿Cómo queda entonces el gradiente de precios del m2 en el partido de San Isidro?

limites_si <- getbb("Partido de San Isidro, Buenos Aires", format_out = "sf_polygon")
ggplot() +
  geom_sf(data = limites_si, alpha = 0.5 ) + 
  geom_sf(data = prop_si_geo_zona, aes(color=round(usd_m2,2))) +
  scale_color_viridis_c(direction = -1) + 
     labs(title = "Valor del m2 en propiedades residenciales en venta",
         subtitle = paste0("Propiedades publicadas entre: ", 
                           min(ymd(prop_si_geo_zona$created_on)),
                           " y ",  max(ymd(prop_si_geo_zona$created_on))), 
         caption= "Fuente: Properati 2020",
         y="",
         x="", 
         color= "USD/m2") + 

  theme_void()

Para generar mayor contraste de los valores más bajos, se lo transforma en escala logaritmica.

ggplot() +
  geom_sf(data = limites_si, alpha = 0.5 ) + 
  geom_sf(data = prop_si_geo_zona, aes(color=round(usd_m2,1))) +
  scale_color_viridis_c(trans="log", direction = -1, breaks = c(0, 1000,3000,8000)) + 
     labs(title = "Valor del m2 en propiedades residenciales en venta",
         subtitle = paste0("Propiedades publicadas entre: ", 
                           min(ymd(prop_si_geo_zona$created_on)),
                           " y ",  max(ymd(prop_si_geo_zona$created_on))), 
         caption= "Fuente: Properati 2020",
         y="",
         x="", 
         color = "USD/m2") + 

  theme_void()

Si bien no es posible apreciar la concentración de precios altos o precios bajos (hot/cold spot), se observan precios más altos hacia el río y más bajos en la zona de Boulogne.
 

2. INTERPOLACIÓN DE VALORES DEL SUELO

Polígonos de Voronoi

voronoi <- prop_si_geo_zona %>% 
          st_geometry() %>%
          st_union() %>%
          st_voronoi() %>%
          st_collection_extract()%>%
          st_sfc(crs = st_crs(prop_si_geo_zona)) %>% 
          st_sf() %>% 
          st_join(prop_si_geo_zona ) %>%
          st_intersection(limites_si)
## Warning in st_voronoi.sfc(.): st_voronoi does not correctly triangulate
## longitude/latitude data
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
## although coordinates are longitude/latitude, st_intersection assumes that they are planar
## Warning: attribute variables are assumed to be spatially constant throughout all
## geometries
qtm(voronoi, fill="usd_m2", fill.palette="-viridis", fill.breaks=seq(0,9000,1500))+
  qtm(limites_si,  fill=NULL)

Se aplica una transformación logarítmica a fin de evaluar variaciones en precios más bajos.

ggplot() +
  geom_sf(data = limites_si, alpha = 0.5 ) + 
  geom_sf(data = voronoi, aes(fill=round(usd_m2,1)), color = NA) +
  scale_fill_viridis_c(trans="log", direction = -1, breaks = c(0, 1000,3000,8000)) + 
     labs(title = "Valor del m2 en propiedades residenciales en venta",
         caption= "Fuente: Properati 2020",
         y="",
         x="", 
         fill = "USD/m2") + 

  theme_void()

A partir de la interpolación espacial mediante polígonos de Voronoi, se observan ciertas áreas donde se concentran precios más altos, y otras con precios más bajos.

Precios de las propiedades residenciales

A los efectos de evaluar como se construye el precio de la vivienda, solo se tendrán en cuanta los datos de venta en USD de inmuebles con destino residencial.  

Considerando que posteriormente la localización geográfica será utilizada, también se filtran las observaciones que no tienen coordenadas geográficas. Se convierten las variables a sf.

Al no contar con una grilla de puntos, o la geometría de todas las parcelas de San Isidro, no se utilizarán los métodos de Distancia Inversa Ponderada (IDW) ni Kriging para interpolar el valor del m2 (no se cuenta con geometrías donde realizar las predicciones.)

 

3. DATOS AGRUPADOS EN UNIDADES AREALES.

   

A fin de agrupar los datos en unidades areales, y considerando que el municipio de San Isidro cuenta con pocos datos abiertos geográficos, se tomaran las geometrías de los radios censales, disponibles en Indec.
Se prepara un geojson de radios censales solo en San Isidro a partir de los radios censales de Buenos Aires: censo_si <- censo %>%
mutate(dentro_si = st_intersects(st_centroid(censo), limites_si, sparse = FALSE)) %>%
filter(dentro_si == TRUE) %>%
select(-dentro_si)

censo_si <- read_sf( "censo_si.geojson")
ggplot() + geom_sf(data = limites_si) + geom_sf(data = censo_si)+ theme_minimal()

Se asigna a cada propiedad el Id del radio censal.

prop_si_censo <- prop_si_geo_zona %>% 
   mutate(ID_censo = as.numeric(st_intersects(prop_si_geo_zona, censo_si)))
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
censo_si <- censo_si %>%
  mutate(ID_censo = row_number())

censo_mean_prop <- left_join(censo_si, 
                             prop_si_censo %>%
                               st_set_geometry(NULL) %>%
                               group_by(ID_censo) %>%
                               summarise(usd_m2_z = round(mean(usd_m2),2)))
## Joining, by = "ID_censo"
ggplot() + 
  geom_sf(data = censo_mean_prop, aes(fill = usd_m2_z), color = NA)+
  scale_fill_viridis_c(direction = -1)  +
       labs(title = "Valor promedio del m2 por radio censal",
         caption= "Fuente: Properati 2020 + INDEC",
         y="",
         x="", 
         fill = "USD/m2") + 
  theme_void()

tmap_mode("view")
## tmap mode set to interactive viewing
qtm(censo_mean_prop, fill = "usd_m2_z", fill.palette="-viridis")

Este este gráfico se observan concentraciones de valores más alto en la próximidad al río. A continuación se evaluará correlación espacial de las unidades areales. También se pueden visualizar unos clusters de valores más elevados, a primera vista próximos a las estaciones Martínez y San Isidro del Tren Mitre.

Se observan unidades areales sin valor por m2. Se remueven estas áreas.

censo_mean_prop <- censo_mean_prop %>%
  filter(!is.na(usd_m2_z))

Con esta distribución areal, se busca determinar si hay autocorrelación espacial.

Vecinos

vecinos <- poly2nb(censo_mean_prop, row.names = "ID_censo")
summary(vecinos)
## Neighbour list object:
## Number of regions: 301 
## Number of nonzero links: 1756 
## Percentage nonzero weights: 1.938168 
## Average number of links: 5.833887 
## Link number distribution:
## 
##  2  3  4  5  6  7  8  9 10 11 13 16 
##  5 26 35 62 78 50 27  8  5  3  1  1 
## 5 least connected regions:
## 100 111 114 140 285 with 2 links
## 1 most connected region:
## 137 with 16 links
plot(st_geometry(censo_mean_prop), border="grey")
plot(vecinos, coordinates(as(censo_mean_prop, "Spatial")), add=TRUE, col="dodgerblue4")

Se arma una lista de vecinos (binarios):

lvb <-  nb2listw(vecinos, style='B')

A continuación se calculan distintos estadísticos:

  1. Moran I Global
moran.test(censo_mean_prop$usd_m2_z, lvb)
## 
##  Moran I test under randomisation
## 
## data:  censo_mean_prop$usd_m2_z  
## weights: lvb    
## 
## Moran I statistic standard deviate = 18.498, p-value <
## 0.00000000000000022
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic       Expectation          Variance 
##       0.614155434      -0.003333333       0.001114364

El resultado obtenido es altamente significativo. No podría descartarse la hipótesis de no existe autocorrelación espacial en los precios del suelo.
Se obtiene un I Moran de 0.61, lo que significaría una autocorrelación espacial positiva.

Correlograma de Morán

Icorr <-sp.correlogram(neighbours=vecinos,
                       var=censo_mean_prop$usd_m2_z,
                       order=5,method="I",zero.policy=TRUE)
plot(Icorr)

Se observa siempre correlación positiva, que es mayor cuanto menor sea el orden/lag.

Diagrama de disperción

mp <- moran.plot(censo_mean_prop$usd_m2_z, lvb, zero.policy=TRUE)

mp
##           x       wx is_inf labels         dfb.1_          dfb.x         dffit
## 1   2127.20 20724.37  FALSE      1  0.04253002051 -0.01578349629  0.0921914520
## 2   2304.01 20939.59  FALSE      2  0.01967675551  0.00622732056  0.0848648505
## 3   2074.51 14598.37  FALSE      3  0.01262489806 -0.00580214899  0.0241522814
## 4   2162.08 19686.82  FALSE      4  0.03256196860 -0.00964932795  0.0778113036
## 5   2681.01  6880.82  FALSE      5  0.02542217470 -0.05654693010 -0.1097759652
## 6   2424.38  7816.69  FALSE      6 -0.00509002448 -0.01710790161 -0.0727434731
## 7   3195.68 21360.96  FALSE      7 -0.04425253095  0.06111990109  0.0766580428
## 8   4008.38 12250.95   TRUE      8  0.20259477067 -0.24409201421 -0.2635209752
## 9   2274.82 13691.11  FALSE      9  0.00093215756  0.00011245548  0.0034363770
## 10  2219.56 12207.42  FALSE     10 -0.00370590551  0.00047856180 -0.0107496757
## 11  2909.78 18470.67  FALSE     11 -0.01556349686  0.02491968164  0.0367839729
## 12  2040.58 13806.31  FALSE     12  0.00939154881 -0.00474532728  0.0167740543
## 13  2718.93 22435.73  FALSE     13 -0.02618002692  0.05338306153  0.0975291724
## 14  3317.54 17188.48  FALSE     14  0.00826177299 -0.01101256992 -0.0132588657
## 15  2504.50 12771.97  FALSE     15  0.00063165253 -0.00641964977 -0.0192348807
## 16  2991.07 21011.17  FALSE     16 -0.03564338752  0.05395145149  0.0750292125
## 17  1192.47  5300.58  FALSE     17 -0.06818733963  0.05891480120 -0.0710814995
## 18  2825.01  5267.35  FALSE     18  0.05544817293 -0.09626611987 -0.1538171078
## 19  2396.11 15592.37  FALSE     19  0.00210142648  0.00387810390  0.0195472576
## 20  1857.83 20348.92  FALSE     20  0.08259092293 -0.05496095555  0.1139504377
## 21  2266.44 18341.48  FALSE     21  0.01603331460  0.00119261966  0.0567514489
## 22  2041.19 13141.56  FALSE     22  0.00495875622 -0.00250177880  0.0088670405
## 23  2101.55 18108.05  FALSE     23  0.03120529724 -0.01302104931  0.0634582224
## 24  2284.89 14019.92  FALSE     24  0.00172356560  0.00031287033  0.0066883193
## 25  1604.38 11894.11  FALSE     25  0.01809619651 -0.01405602533  0.0209454772
## 26  1544.20 18446.92  FALSE     26  0.11648540059 -0.09252329123  0.1315537510
## 27  1472.12  4942.10  FALSE     27 -0.07698242347  0.06255207460 -0.0848818347
## 28  1890.78  9991.38  FALSE     28 -0.01567507667  0.01009383510 -0.0224093557
## 29  1505.22  9709.97  FALSE     29 -0.00588263245  0.00473258426 -0.0065537191
## 30  1874.30 11859.89  FALSE     30  0.00163589821 -0.00107150930  0.0022963765
## 31  1440.65  8654.48  FALSE     31 -0.01859024405  0.01523891631 -0.0203160611
## 32  1717.18 14673.51  FALSE     32  0.04232187243 -0.03116433018  0.0520579320
## 33  2751.91  9167.42  FALSE     33  0.02601458216 -0.04994089693 -0.0870730065
## 34  1771.24  6579.64  FALSE     34 -0.05006187502  0.03566653340 -0.0639632213
## 35  1386.72  6063.27  FALSE     35 -0.05883417371  0.04889488682 -0.0634391399
## 36  1578.43  7822.91  FALSE     36 -0.03550607420  0.02785790496 -0.0406402141
## 37  1345.91  5128.71  FALSE     37 -0.07421353766  0.06225947052 -0.0793213356
## 38  1529.08  3713.40  FALSE     38 -0.09394562190  0.07500156959 -0.1055184310
## 39  2719.94 17196.10  FALSE     39 -0.00699695351  0.01423836064  0.0259737732
## 40  3317.82 13665.05  FALSE     40  0.05345741268 -0.07125125480 -0.0857777888
## 41  2636.36  5100.54  FALSE     41  0.02368420766 -0.06054692490 -0.1276993120
## 42  2116.89 19946.12  FALSE     42  0.03971439165 -0.01550664337  0.0838443590
## 43  2894.42 14792.92  FALSE     43  0.00781504228 -0.01267240522 -0.0189488229
## 44  2492.84 14016.84  FALSE     44  0.00006601349 -0.00115582712 -0.0036121585
## 45  2530.62 10708.51  FALSE     45  0.00298707946 -0.01674806697 -0.0460334965
## 46  3092.33 12992.28  FALSE     46  0.03628449537 -0.05214239219 -0.0684357424
## 47  2499.31 16442.20  FALSE     47 -0.00066505599  0.00826166954  0.0252150898
## 48  2556.86 14138.63  FALSE     48  0.00053793656 -0.00219645525 -0.0055899244
## 49  3285.83 24086.86  FALSE     49 -0.07885798100  0.10599289477  0.1288388048
## 50  3325.29 20894.52  FALSE     50 -0.03914042977  0.05207078936  0.0625519943
## 51  3403.93 11798.93  FALSE     51  0.09076097675 -0.11857639975 -0.1395321081
## 52  3336.12 18244.62  FALSE     52 -0.00433881426  0.00575677402  0.0068944145
## 53  2124.05  9183.31  FALSE     53 -0.01913009449  0.00721477160 -0.0411301799
## 54  2290.77 13383.42  FALSE     54 -0.00020801336 -0.00004578357 -0.0008328465
## 55  1944.56  9058.97  FALSE     55 -0.02364215673  0.01425891135 -0.0361476757
## 56  2578.61 14229.00  FALSE     56  0.00069064231 -0.00236530826 -0.0056831211
## 57  2140.17  9322.84  FALSE     57 -0.01789581280  0.00617602528 -0.0401630531
## 58  2126.92 21651.97  FALSE     58  0.04757606778 -0.01768185787  0.1030543183
## 59  2776.02 16506.83  FALSE     59 -0.00443147146  0.00819473060  0.0138504924
## 60  1810.94 19727.21  FALSE     60  0.08452529513 -0.05852691222  0.1115649228
## 61  2335.93 12320.60  FALSE     61 -0.00286578775 -0.00178399457 -0.0151940529
## 62  1992.31 19209.59  FALSE     62  0.05189094151 -0.02902217348  0.0851649155
## 63  2399.08 16245.30  FALSE     63  0.00279496411  0.00546103798  0.0269942801
## 64  3052.92 16485.34  FALSE     64  0.00192572000 -0.00281857465 -0.0037766858
## 65  1912.80 14456.48  FALSE     65  0.02238649569 -0.01406238204  0.0328484043
## 66  1142.86 13944.92  FALSE     66  0.10991427693 -0.09572353155  0.1138990409
## 67  1185.19  9838.04  FALSE     67  0.02159380141 -0.01867985298  0.0224894367
## 68  2196.33 10350.34  FALSE     68 -0.01155144488  0.00236705275 -0.0308079619
## 69  1235.93 11291.58  FALSE     69  0.04417800254 -0.03788424058  0.0463290743
## 70  1620.02  8714.09  FALSE     70 -0.02454216672  0.01894102665 -0.0286112275
## 71  1762.64  4311.06  FALSE     71 -0.07505852895  0.05377907698 -0.0952795877
## 72  1423.08  5011.47  FALSE     72 -0.07628622855  0.06282529631 -0.0829844493
## 73  1568.63  7213.54  FALSE     73 -0.04375056996  0.03445120219 -0.0498776656
## 74  1684.78  7770.85  FALSE     74 -0.03737878881  0.02800181466 -0.0450773355
## 75  3683.15 11667.75  FALSE     75  0.14338303642 -0.17877607969 -0.1998196387
## 76  3035.28 21794.76  FALSE     76 -0.04379569719  0.06467639006  0.0875310308
## 77  2639.24 13378.25  FALSE     77  0.00381361978 -0.00964633028 -0.0202280219
## 78  2912.61  8232.76  FALSE     78  0.05213358425 -0.08328678128 -0.1226553032
## 79  3429.90 20839.58  FALSE     79 -0.03674975529  0.04775436500  0.0558526004
## 80  2936.12 24303.27  FALSE     80 -0.05652013234  0.08870271554  0.1282335408
## 81  2303.30 12791.19  FALSE     81 -0.00190565421 -0.00059254915 -0.0081850674
## 82  2423.41 15079.76  FALSE     82  0.00088038902  0.00289052091  0.0123561006
## 83  3679.32 14384.67  FALSE     83  0.09213665503 -0.11493798440 -0.1285360528
## 84  2904.53 15760.50  FALSE     84  0.00202315339 -0.00325315387 -0.0048229074
## 85  2942.49 14688.94  FALSE     85  0.01089997943 -0.01702860751 -0.0244994194
## 86  2155.94 10087.91  FALSE     86 -0.01364742486  0.00423989719 -0.0320263269
## 87  2115.63 21454.80  FALSE     87  0.04827412578 -0.01895928448  0.1015942042
## 88  2945.39 20858.79  FALSE     88 -0.03275542326  0.05106814726  0.0733142885
## 89  2273.86 21660.15  FALSE     89  0.02573993584  0.00296392033  0.0944401861
## 90  3158.10 17688.77  FALSE     90 -0.00553157344  0.00774152111  0.0098581141
## 91  1353.90 11329.12  FALSE     91  0.03195209841 -0.02675762267  0.0342072370
## 92  2104.81 10576.33  FALSE     92 -0.01181224437  0.00486376048 -0.0242087163
## 93  1869.52  8164.73  FALSE     93 -0.03228495801  0.02124648237 -0.0450886041
## 94  2129.84 11861.00  FALSE     94 -0.00480066690  0.00175693875 -0.0104786664
## 95  2550.46 16239.21  FALSE     95 -0.00183009432  0.00796542752  0.0206392742
## 96  3083.10 10486.05  FALSE     96  0.05854348827 -0.08447609445 -0.1113908268
## 97  3140.40 14982.90  FALSE     97  0.02112253179 -0.02975914272 -0.0381865036
## 98  1624.60  8644.39  FALSE     98 -0.02556748819  0.01969429465 -0.0298713705
## 99  1955.82 14235.70  FALSE     99  0.01747674044 -0.01037247459  0.0271434194
## 100 2191.77  3381.52  FALSE    100 -0.04214506721  0.00920224537 -0.1106697439
## 101 1668.95 12445.73  FALSE    101  0.02014632614 -0.01521057187  0.0240794889
## 102 1614.50  9870.34  FALSE    102 -0.00922360544  0.00713489685 -0.0107251956
## 103 1783.54  8201.16  FALSE    103 -0.03260726152  0.02303663668 -0.0420645623
## 104 2167.91 12728.83  FALSE    104 -0.00095923956  0.00027069733 -0.0023330111
## 105 2173.36 12538.34  FALSE    105 -0.00192945735  0.00051805007 -0.0047725112
## 106 2365.68 19472.89  FALSE    106  0.00974172102  0.01036354767  0.0656559210
## 107 1036.70  8901.91  FALSE    107  0.01744546589 -0.01542217726  0.0178943804
## 108 1000.00 11965.35  FALSE    108  0.09081234802 -0.08065248082  0.0928830329
## 109 1019.10 10011.60  FALSE    109  0.04411171027 -0.03908360131  0.0451830636
## 110 1966.10  8298.20  FALSE    110 -0.02931725558  0.01713174663 -0.0462144969
## 111 1559.59  3179.45  FALSE    111 -0.10025170833  0.07920097028 -0.1138843264
## 112 1208.96  8213.78  FALSE    112 -0.01221453478  0.01052414394 -0.0127607353
## 113 1450.44  7885.29  FALSE    113 -0.03109333448  0.02542007881 -0.0340710598
## 114  775.00  2081.31  FALSE    114 -0.12875210539  0.11708696121 -0.1300885488
## 115 1513.56  9276.74  FALSE    115 -0.01270470881  0.01019407966 -0.0141934212
## 116 2483.23 10141.46  FALSE    116  0.00030457557 -0.01525196274 -0.0494422908
## 117 1869.06 12391.81  FALSE    117  0.00676853200 -0.00445631730  0.0094482038
## 118 2220.29 11533.52  FALSE    118 -0.00634180858  0.00080244481 -0.0184468127
## 119 2476.28 17067.71  FALSE    119  0.00008944746  0.01008263215  0.0336002517
## 120 3720.90  7634.00   TRUE    120  0.22959960223 -0.28489584433 -0.3168152819
## 121 2888.98 10611.82  FALSE    121  0.03369362631 -0.05489106282 -0.0824654703
## 122 1816.90 10682.08  FALSE    122 -0.00756516823  0.00521394644 -0.0100379004
## 123 3316.36 26097.98  FALSE    123 -0.10617430637  0.14156797524  0.1705029847
## 124 3465.37 15454.88  FALSE    124  0.04543290564 -0.05862906193 -0.0680383577
## 125 3014.23  8558.68  FALSE    125  0.06527977763 -0.09750002281 -0.1336190770
## 126 2762.19 21058.37  FALSE    126 -0.02412000354  0.04554329090  0.0783368733
## 127 3138.50 14220.99  FALSE    127  0.02864365288 -0.04038516433 -0.0518652746
## 128 2952.25 25444.97  FALSE    128 -0.06635721183  0.10296604481  0.1470766937
## 129 4408.44 25048.69   TRUE    129 -0.07731151595  0.09065309121  0.0955013183
## 130 2487.54 15420.34  FALSE    130 -0.00015619118  0.00422112205  0.0134578123
## 131 2572.94 19370.25  FALSE    131 -0.00675911344  0.02411131243  0.0587781213
## 132 1901.21 16465.31  FALSE    132  0.04089497064 -0.02603448697  0.0591754565
## 133 2749.32 14620.49  FALSE    133  0.00325038624 -0.00626690241 -0.0109646489
## 134 2297.73 19662.65  FALSE    134  0.01693490032  0.00455555257  0.0704575431
## 135 2123.17 14303.63  FALSE    135  0.00839990483 -0.00318194673  0.0180191047
## 136 2307.40 11460.35  FALSE    136 -0.00535286168 -0.00183902508 -0.0235528089
## 137 2347.26 40842.19   TRUE    137  0.05666791434  0.04346279013  0.3270521028
## 138 3088.06 17675.08  FALSE    138 -0.00759985554  0.01094196555  0.0143918803
## 139 1031.25 12611.48  FALSE    139  0.10023657569 -0.08867369962  0.1027702415
## 140 2021.83  4543.82  FALSE    140 -0.05391385840  0.02844574636 -0.0930235800
## 141 2560.38 16288.01  FALSE    141 -0.00209011088  0.00826197143  0.0208241265
## 142 3739.42 14791.92  FALSE    142  0.09391986680 -0.11627497229 -0.1289959086
## 143 2008.04 15768.44  FALSE    143  0.02507575346 -0.01361380826  0.0422397106
## 144 2225.73 11502.76  FALSE    144 -0.00641460538  0.00068421658 -0.0190545702
## 145 1874.95  6156.85  FALSE    145 -0.05064456268  0.03315055905 -0.0711417109
## 146 1973.39 15006.67  FALSE    146  0.02221951008 -0.01283502597  0.0354081687
## 147 1501.96 10591.02  FALSE    147  0.00737687341 -0.00594072941  0.0082096628
## 148 1705.11  5820.32  FALSE    148 -0.06039447485  0.04476726177 -0.0737248921
## 149 2457.20 15173.79  FALSE    149  0.00032313119  0.00329508050  0.0119108248
## 150 1442.23  4547.92  FALSE    150 -0.08351859936  0.06843318787 -0.0913110052
## 151 1903.00  5828.82  FALSE    151 -0.05221171786  0.03317192003 -0.0757111272
## 152 1822.69 17810.19  FALSE    152  0.06327164613 -0.04340595739  0.0843907975
## 153 1853.27  8874.99  FALSE    153 -0.02574981825  0.01720755443 -0.0353632595
## 154  961.98  8592.45   TRUE    154  0.01858306148 -0.01657908055  0.0189562661
## 155 1480.00 11032.33  FALSE    155  0.01566293864 -0.01269766704  0.0173111104
## 156 1284.74  4212.38  FALSE    156 -0.09025150473  0.07668661829 -0.0953759405
## 157 1182.20  8071.95  FALSE    157 -0.01302537065  0.01127321109 -0.0135605205
## 158 1540.00 10613.58  FALSE    158  0.00509674326 -0.00405411157  0.0057471446
## 159 2394.28  8184.48  FALSE    159 -0.00729096961 -0.01299593582 -0.0663111695
## 160 1402.79  6903.56  FALSE    160 -0.04530500065  0.03750364529 -0.0490356246
## 161 1173.90  3251.04  FALSE    161 -0.10855935967  0.09408296171 -0.1129036206
## 162 1245.43  7417.68  FALSE    162 -0.02974410571  0.02546272571 -0.0312363982
## 163 1806.68 13896.52  FALSE    163  0.02550470273 -0.01771764856  0.0335394943
## 164 3440.16 21183.59  FALSE    164 -0.04157145935  0.05390893478  0.0629049648
## 165 3551.94 24406.43  FALSE    165 -0.09178926870  0.11666407237  0.1331253717
## 166 2161.40 24093.22   TRUE    166  0.05413844674 -0.01613068345  0.1291088950
## 167 2506.55 18239.04  FALSE    167 -0.00165011828  0.01567640868  0.0466352367
## 168 2046.19 23485.45   TRUE    168  0.07305054208 -0.03639494513  0.1318897224
## 169 2981.74 29941.57   TRUE    169 -0.10480642529  0.15954201660  0.2232452587
## 170 2963.23 25771.97  FALSE    170 -0.07000084341  0.10782326644  0.1528080205
## 171 2614.00 17910.26  FALSE    171 -0.00632512017  0.01774142020  0.0392189813
## 172 2918.17 16617.34  FALSE    172 -0.00324574395  0.00516278491  0.0075690603
## 173 2012.68 13526.69  FALSE    173  0.00885712346 -0.00476391713  0.0150387526
## 174 3126.57 14963.21  FALSE    174  0.02029031112 -0.02874235723 -0.0371117372
## 175 2929.20 17455.98  FALSE    175 -0.00874805840  0.01379905874  0.0200551556
## 176 1993.85 15951.55  FALSE    176  0.02762597310 -0.01540796149  0.0454533449
## 177 2505.74 10936.64  FALSE    177  0.00142561116 -0.01390013978 -0.0414679107
## 178 1869.99 12232.82  FALSE    178  0.00525558295 -0.00345707076  0.0073435186
## 179 2581.53  9781.44  FALSE    179  0.00769376426 -0.02583220010 -0.0616134153
## 180 2196.91 13536.50  FALSE    180  0.00204554965 -0.00041560296  0.0054664306
## 181 2913.85 20405.50  FALSE    181 -0.02841830255  0.04535570693  0.0667273764
## 182 3034.63 13292.03  FALSE    182  0.02822777013 -0.04170016853 -0.0564569916
## 183 2198.84 18065.14  FALSE    183  0.02119817424 -0.00418309913  0.0570286600
## 184 1566.40 15653.46  FALSE    184  0.07333085362 -0.05779100660  0.0835261848
## 185 2840.62  9150.40  FALSE    185  0.03666337892 -0.06256765746 -0.0983699300
## 186 2134.44  8920.04  FALSE    186 -0.02017489564  0.00719921499 -0.0445791830
## 187 1390.09  4196.11  FALSE    187 -0.08992835251  0.07467535503 -0.0970423285
## 188 1063.61  5614.26  FALSE    188 -0.05647107236  0.04974426034 -0.0580575212
## 189 2037.12 10124.82  FALSE    189 -0.01504477046  0.00766593261 -0.0266957328
## 190 1544.06  9898.02  FALSE    190 -0.00532683525  0.00423126012 -0.0060155931
## 191 2026.07  8859.95  FALSE    191 -0.02377776991  0.01242924267 -0.0413401108
## 192 1499.14  7831.41  FALSE    192 -0.03350033805  0.02700195508 -0.0372482009
## 193 1409.61 11575.83  FALSE    193  0.03049966190 -0.02520464378  0.0330658819
## 194 1541.52  4498.84  FALSE    194 -0.08220339139  0.06535334546 -0.0927451953
## 195  869.23  8185.71   TRUE    195  0.01947225634 -0.01754863389  0.0197565701
## 196 1275.03  5714.78  FALSE    196 -0.06259531853  0.05328794632 -0.0660425256
## 197 2006.08 16798.62  FALSE    197  0.03263352783 -0.01778554409  0.0547884964
## 198 3360.55 29544.76   TRUE    198 -0.15658392004  0.20655300948  0.2457344997
## 199 2137.71 17504.08  FALSE    199  0.02427865837 -0.00850225044  0.0541230108
## 200 3372.60 11221.97  FALSE    200  0.09375298403 -0.12333044114 -0.1462642403
## 201 2261.55 16530.91  FALSE    201  0.01050829113  0.00051536715  0.0363518656
## 202 2291.73 16302.91  FALSE    202  0.00803601404  0.00182118422  0.0323425971
## 203 2130.92 13795.81  FALSE    203  0.00537002565 -0.00195390745  0.0117549459
## 204 2557.87 13167.56  FALSE    204  0.00171980577 -0.00695586881 -0.0176531917
## 205 3455.77 23829.95  FALSE    205 -0.08093169982  0.10463039342  0.1216723036
## 206 2258.92 14140.92  FALSE    206  0.00272487912  0.00009777468  0.0093129220
## 207 3063.53 24213.54  FALSE    207 -0.06664387613  0.09704230448  0.1292798071
## 208 3170.19 20971.05  FALSE    208 -0.03969557339  0.05531153710  0.0700803305
## 209 3050.17 13479.58  FALSE    209  0.02796427591 -0.04098557417 -0.0550015439
## 210 1998.64  9863.03  FALSE    210 -0.01706969072  0.00943659507 -0.0283052701
## 211 1890.30 12971.50  FALSE    211  0.01089169975 -0.00701722209  0.0155624530
## 212 1452.65  4988.14  FALSE    212 -0.07646561988  0.06247562184 -0.0838401693
## 213 1131.42 13311.36  FALSE    213  0.09878842163 -0.08618370689  0.1022413300
## 214 1734.70 18109.13  FALSE    214  0.07947129476 -0.05793415922  0.0988930202
## 215 1983.44  7087.95  FALSE    215 -0.03798772949  0.02157974812 -0.0614762919
## 216 2166.07 32130.13   TRUE    216  0.09307106711 -0.02668522787  0.2250962843
## 217 2659.69  6004.44  FALSE    217  0.02493526825 -0.05890934399 -0.1187788010
## 218 1712.57  9647.07  FALSE    218 -0.01562241260  0.01153321190 -0.0191598694
## 219 1441.87 12453.30  FALSE    219  0.04124241762 -0.03379636484  0.0450859985
## 220 2335.58 20844.04  FALSE    220  0.01561175515  0.00965457517  0.0825640126
## 221 2039.83 10930.81  FALSE    221 -0.00967217654  0.00489611900 -0.0172506512
## 222 1562.33  7991.05  FALSE    222 -0.03284832063  0.02592540359 -0.0373551592
## 223 2268.55 11270.79  FALSE    223 -0.00664517708 -0.00056937638 -0.0237593478
## 224  907.41  9287.32   TRUE    224  0.04160176283 -0.03734239424  0.0422955735
## 225 1127.69 12627.00  FALSE    225  0.08522951779 -0.07439643447  0.0881731754
## 226 2200.00  5847.82  FALSE    226 -0.03054263943  0.00591865127 -0.0825004386
## 227 1412.07 10622.16  FALSE    227  0.01478463646 -0.01221028988  0.0160383221
## 228 1337.19  7206.38  FALSE    228 -0.03797294796  0.03191740487 -0.0405157221
## 229 1716.33  6350.35  FALSE    229 -0.05391325123  0.03971862390 -0.0662797039
## 230 3523.31 17193.69   TRUE    230  0.02426696566 -0.03099076530 -0.0355498396
## 231 2653.58 19187.88  FALSE    231 -0.01112495411  0.02679211081  0.0546408749
## 232 3141.66  6917.57  FALSE    232  0.10332863224 -0.14550718900 -0.1866090062
## 233 2257.91 18736.09  FALSE    233  0.01812481787  0.00056025960  0.0616612287
## 234 3076.00 13149.36  FALSE    234  0.03324695752 -0.04812966644 -0.0636968891
## 235 3512.22 19395.70   TRUE    235 -0.01157656946  0.01481246053  0.0170275282
## 236 3275.97 21806.53  FALSE    236 -0.05051701097  0.06808400679  0.0830172105
## 237 3074.16 15211.53  FALSE    237  0.01436170488 -0.02080826884 -0.0275650077
## 238 3462.63 21156.67  FALSE    238 -0.04070864894  0.05255996832  0.0610307990
## 239 1815.90 14877.25  FALSE    239  0.03462424036 -0.02388199009  0.0459005928
## 240 2207.87 18537.98  FALSE    240  0.02230168066 -0.00376666397  0.0619478337
## 241 3043.91 18264.17  FALSE    241 -0.01373135340  0.02018852457  0.0271878405
## 242 2717.07 17258.30  FALSE    242 -0.00718329583  0.01470269341  0.0269365519
## 243 2378.02 15941.57  FALSE    243  0.00321174085  0.00425125712  0.0243766189
## 244 3148.24 20858.21  FALSE    244 -0.03822909390  0.05369932649  0.0686702955
## 245 3222.96 11363.39  FALSE    245  0.06899005908 -0.09444733103 -0.1172572890
## 246 1790.12  6797.39  FALSE    246 -0.04728132141  0.03324876964 -0.0613193247
## 247 1745.40  7885.55  FALSE    247 -0.03610975918  0.02615503866 -0.0452686798
## 248 1632.97  6198.52  FALSE    248 -0.05722600352  0.04392240535 -0.0671306109
## 249 1913.68  6287.27  FALSE    249 -0.04768403083  0.02992208670 -0.0700439627
## 250 3536.53 12704.19  FALSE    250  0.09843714236 -0.12543148181 -0.1435298965
## 251 2657.85 13328.42  FALSE    251  0.00460677104 -0.01094547988 -0.0221447285
## 252 1813.23 10873.09  FALSE    252 -0.00552333809  0.00381767924 -0.0073049056
## 253 2196.26  9160.10  FALSE    253 -0.01664803653  0.00341490329 -0.0443900020
## 254 1798.08 10302.80  FALSE    254 -0.01086612890  0.00759719783 -0.0141853273
## 255 1787.64  6180.67  FALSE    255 -0.05382952995  0.03792041285 -0.0696712284
## 256 1165.05  6937.48  FALSE    256 -0.03447572358  0.02992079188 -0.0358171050
## 257 1145.56  7150.19  FALSE    257 -0.02897711258  0.02522548668 -0.0300367179
## 258 1271.01  9305.44  FALSE    258  0.00360812797 -0.00307400843  0.0038043348
## 259 1320.30  8234.57  FALSE    259 -0.01913168527  0.01613897970 -0.0203465084
## 260 2676.41 10936.40  FALSE    260  0.01251512393 -0.02817918981 -0.0551405808
## 261 3064.25 18550.19  FALSE    261 -0.01600489715  0.02329724460  0.0310246027
## 262 2942.68 13253.83  FALSE    262  0.02104096223 -0.03286704694 -0.0472798011
## 263  577.62  8225.40   TRUE    263  0.06075990263 -0.05613699552  0.0610420678
## 264 3080.91 28483.45   TRUE    264 -0.10779644805  0.15570057801  0.2055384494
## 265 3467.80 10287.97  FALSE    265  0.12438182150 -0.16043528421 -0.1860876271
## 266 3157.25 16910.23  FALSE    266  0.00248351014 -0.00347679953 -0.0044289769
## 267 2503.56 33541.13   TRUE    267 -0.00749753601  0.07874966594  0.2367355667
## 268 2600.86 15955.11  FALSE    268 -0.00218382488  0.00653676062  0.0148838704
## 269 2937.88 17652.62  FALSE    269 -0.01003163951  0.01572367061  0.0227006314
## 270 2522.27 13557.47  FALSE    270  0.00058923806 -0.00381459929 -0.0107657522
## 271 3197.28 23446.87  FALSE    271 -0.06723287865  0.09280980373  0.1163325821
## 272 2727.64 11505.98  FALSE    272  0.01442592429 -0.02891657719 -0.0521547991
## 273 2439.63 18209.16  FALSE    273  0.00241877505  0.01232856340  0.0484187830
## 274 2571.78 14557.19  FALSE    274  0.00013789540 -0.00049621674 -0.0012133123
## 275 2054.55 14382.15  FALSE    275  0.01240718229 -0.00604661297  0.0227729912
## 276 2416.99 11240.77  FALSE    276 -0.00256121738 -0.00724851824 -0.0321220502
## 277 2787.91 13739.76  FALSE    277  0.00862390940 -0.01568242060 -0.0261256691
## 278 3355.34 16301.96  FALSE    278  0.02266490047 -0.02993407349 -0.0356617396
## 279 1943.89 14154.07  FALSE    279  0.01762717703 -0.01064105079  0.0269264415
## 280 2863.04 17082.87  FALSE    280 -0.00692827799  0.01155796507  0.0177780029
## 281 1782.88 12976.26  FALSE    281  0.01777013802 -0.01256016716  0.0229120693
## 282 3112.53 12540.06  FALSE    282  0.04269834565 -0.06083186470 -0.0790602414
## 283 1984.02 17042.66  FALSE    283  0.03670306116 -0.02082924658  0.0594511314
## 284 3408.78 13216.11  FALSE    284  0.07126906194 -0.09301523763 -0.1093263533
## 285  875.00  3198.05  FALSE    285 -0.10392375484  0.09360200690 -0.1054722106
## 286 2178.75  7695.77  FALSE    286 -0.02401226522  0.00610994548 -0.0604152627
## 287 2196.08  9460.25  FALSE    287 -0.01536895756  0.00316080586 -0.0409541529
## 288 2504.61 14007.97  FALSE    288  0.00014319158 -0.00144982188 -0.0043423530
## 289 2159.70 14031.83  FALSE    289  0.00547197640 -0.00165231826  0.0129837693
## 290 3709.18  6635.97   TRUE    290  0.24585545284 -0.30551537253 -0.3402693631
## 291 1981.16 11468.18  FALSE    291 -0.00503565468  0.00287172185 -0.0081204663
## 292 1797.15  4996.02  FALSE    292 -0.06582146242  0.04605139992 -0.0858606948
## 293 2218.31  6123.43  FALSE    293 -0.02774777968  0.00370591584 -0.0801071373
## 294  980.39  7723.40   TRUE    294 -0.00336853702  0.00299877600 -0.0034404938
## 295 1178.36  2924.50  FALSE    295 -0.11507707605  0.09965947217 -0.1197478043
## 296  985.71  9176.15   TRUE    296  0.02930784462 -0.02607414649  0.0299451139
## 297 1866.26 11395.20  FALSE    297 -0.00233515481  0.00154161137 -0.0032500364
## 298 1924.35 13246.53  FALSE    298  0.01135000273 -0.00703003495  0.0168966223
## 299 1275.21  5663.60  FALSE    299 -0.06354025331  0.05409049654 -0.0670414815
## 300 1463.12 10349.06  FALSE    300  0.00649438520 -0.00529063711  0.0071419457
## 301 2288.95  8074.91  FALSE    301 -0.01544172309 -0.00321039082 -0.0612233741
##         cov.r          cook.d         hat
## 1   0.9936084 0.0042287738139 0.003422577
## 2   0.9956847 0.0035872370736 0.003340245
## 3   1.0091677 0.0002924832793 0.003525734
## 4   0.9981153 0.0030193385879 0.003374148
## 5   0.9935286 0.0059922582150 0.004522175
## 6   1.0001854 0.0026413948058 0.003516773
## 7   1.0116481 0.0029417843852 0.009119482
## 8   1.0110684 0.0345025050941 0.023392766
## 9   1.0100580 0.0000059240862 0.003325821
## 10  1.0098506 0.0000579649191 0.003328857
## 11  1.0114554 0.0006783020828 0.006140420
## 12  1.0098452 0.0001411197812 0.003611271
## 13  0.9981066 0.0047401827568 0.004743356
## 14  1.0175129 0.0000881889174 0.010712328
## 15  1.0098324 0.0001855497045 0.003738712
## 16  1.0081898 0.0028164558758 0.006879315
## 17  1.0143128 0.0025307671577 0.010613117
## 18  0.9836034 0.0117003842645 0.005461418
## 19  1.0094703 0.0001916179425 0.003458385
## 20  0.9911368 0.0064495087393 0.004329442
## 21  1.0035644 0.0016105477472 0.003323727
## 22  1.0102225 0.0000394412513 0.003609602
## 23  1.0024270 0.0020124159712 0.003468285
## 24  1.0099950 0.0000224408557 0.003329545
## 25  1.0123543 0.0002200393315 0.006044253
## 26  0.9958297 0.0086067015737 0.006574140
## 27  1.0074336 0.0036026588953 0.007270790
## 28  1.0101225 0.0002518307965 0.004167863
## 29  1.0137189 0.0000215472389 0.006942491
## 30  1.0110080 0.0000026455094 0.004246913
## 31  1.0140614 0.0002070262285 0.007596133
## 32  1.0084355 0.0013571898545 0.005177910
## 33  1.0014637 0.0037842249944 0.004950925
## 34  1.0058908 0.0020467113669 0.004821359
## 35  1.0117147 0.0020157155579 0.008183618
## 36  1.0112933 0.0008278571363 0.006266969
## 37  1.0106153 0.0031488773563 0.008653318
## 38  1.0024168 0.0055550483331 0.006714674
## 39  1.0105679 0.0003382899065 0.004749502
## 40  1.0130045 0.0036828652985 0.010716210
## 41  0.9858293 0.0080782139015 0.004285711
## 42  0.9965302 0.0035027946328 0.003439921
## 43  1.0124066 0.0001800955050 0.006010456
## 44  1.0104388 0.0000065456595 0.003701223
## 45  1.0068635 0.0010611338286 0.003829109
## 46  1.0107758 0.0023449670588 0.007919915
## 47  1.0093303 0.0003187850893 0.003721807
## 48  1.0106398 0.0000156756388 0.003928854
## 49  1.0063549 0.0082831456316 0.010279256
## 50  1.0152958 0.0019605876230 0.010820159
## 51  1.0079957 0.0097148307291 0.011958512
## 52  1.0178619 0.0000238458864 0.010972154
## 53  1.0068590 0.0008472858388 0.003427730
## 54  1.0100872 0.0000003479802 0.003332329
## 55  1.0084591 0.0006547927442 0.003934465
## 56  1.0107300 0.0000162026887 0.004018318
## 57  1.0069646 0.0008079609971 0.003402721
## 58  0.9895397 0.0052732023511 0.003423030
## 59  1.0116416 0.0000962278854 0.005111617
## 60  0.9932583 0.0061881211467 0.004583721
## 61  1.0096626 0.0001157904306 0.003368700
## 62  0.9976084 0.0036153782653 0.003758758
## 63  1.0088023 0.0003653112346 0.003464031
## 64  1.0143163 0.0000071555643 0.007499069
## 65  1.0090446 0.0005408397991 0.004067752
## 66  1.0105368 0.0064835936177 0.011312250
## 67  1.0173063 0.0002536962372 0.010713707
## 68  1.0081823 0.0004757059134 0.003341988
## 69  1.0154745 0.0010760276868 0.010026951
## 70  1.0117776 0.0004104851322 0.005914253
## 71  0.9991908 0.0045261887556 0.004875538
## 72  1.0086682 0.0034446163688 0.007783378
## 73  1.0105192 0.0012464374874 0.006353355
## 74  1.0096654 0.0010181161081 0.005409816
## 75  1.0077561 0.0198736723613 0.016650027
## 76  1.0071057 0.0038303358041 0.007317241
## 77  1.0104279 0.0002052077259 0.004300181
## 78  0.9966778 0.0074864731567 0.006164700
## 79  1.0176091 0.0015636817496 0.012352104
## 80  0.9959592 0.0081791146505 0.006370430
## 81  1.0099606 0.0000336078178 0.003339762
## 82  1.0099799 0.0000765816498 0.003514597
## 83  1.0169942 0.0082613104165 0.016578817
## 84  1.0128712 0.0000116690969 0.006095654
## 85  1.0126045 0.0003010241327 0.006427410
## 86  1.0080922 0.0005140423069 0.003381526
## 87  0.9902409 0.0051266015068 0.003442136
## 88  1.0076578 0.0026890438100 0.006453525
## 89  0.9922019 0.0044346604413 0.003325535
## 90  1.0154487 0.0000487524456 0.008667227
## 91  1.0144913 0.0005867639779 0.008559652
## 92  1.0090773 0.0002938479509 0.003462002
## 93  1.0078315 0.0010182824055 0.004270502
## 94  1.0099588 0.0000550795401 0.003418358
## 95  1.0099311 0.0002136266294 0.003903700
## 96  1.0040200 0.0061920632626 0.007819540
## 97  1.0141493 0.0007311319043 0.008460579
## 98  1.0116488 0.0004474199082 0.005876786
## 99  1.0093761 0.0003693849564 0.003890360
## 100 0.9858126 0.0060701207554 0.003345389
## 101 1.0116106 0.0002907819685 0.005528085
## 102 1.0126281 0.0000577041981 0.005959772
## 103 1.0090083 0.0008865785073 0.004745542
## 104 1.0101134 0.0000027305881 0.003367596
## 105 1.0100728 0.0000114263887 0.003361871
## 106 1.0016701 0.0021534710505 0.003407150
## 107 1.0197280 0.0001606284972 0.012915837
## 108 1.0162011 0.0043189701845 0.013504293
## 109 1.0191404 0.0010236555475 0.013195854
## 110 1.0068788 0.0010694909101 0.003851533
## 111 0.9997586 0.0064631439180 0.006434149
## 112 1.0171842 0.0000816871461 0.010387816
## 113 1.0132777 0.0005820659588 0.007493542
## 114 1.0181442 0.0084629193445 0.017494834
## 115 1.0134802 0.0001010547247 0.006862019
## 116 1.0059492 0.0012236478194 0.003671654
## 117 1.0109015 0.0000447809306 0.004272787
## 118 1.0093944 0.0001706550472 0.003328558
## 119 1.0083257 0.0005657977515 0.003651017
## 120 0.9865394 0.0494124307074 0.017362109
## 121 1.0051049 0.0033987622923 0.005965162
## 122 1.0111744 0.0000505450424 0.004549814
## 123 0.9994886 0.0144539910183 0.010695978
## 124 1.0174635 0.0023196197609 0.012903844
## 125 0.9971610 0.0088826206804 0.007105559
## 126 1.0035888 0.0030661110264 0.005018516
## 127 1.0131400 0.0013480868977 0.008438638
## 128 0.9912613 0.0107332756318 0.006515737
## 129 1.0398630 0.0045715262453 0.033573449
## 130 1.0101139 0.0000908453083 0.003684767
## 131 1.0049414 0.0017282344715 0.003994403
## 132 1.0051685 0.0017517666193 0.004119659
## 133 1.0115500 0.0000603085738 0.004934112
## 134 1.0001134 0.0024781292815 0.003336206
## 135 1.0095474 0.0001628372843 0.003429192
## 136 1.0089787 0.0002781437853 0.003342638
## 137 0.8261316 0.0485280533301 0.003381986
## 138 1.0145341 0.0001039015369 0.007873342
## 139 1.0145183 0.0052843651017 0.013002116
## 140 0.9946599 0.0043072105286 0.003664962
## 141 1.0099651 0.0002174697699 0.003942916
## 142 1.0185658 0.0083221292121 0.017718229
## 143 1.0072251 0.0008936523321 0.003707368
## 144 1.0093457 0.0001820810451 0.003326548
## 145 1.0030031 0.0025289851408 0.004243728
## 146 1.0083769 0.0006282843484 0.003824832
## 147 1.0137278 0.0000338112773 0.006974192
## 148 1.0051065 0.0027174310924 0.005262707
## 149 1.0100911 0.0000711625234 0.003597594
## 150 1.0070196 0.0041675717398 0.007579492
## 151 1.0015246 0.0028623688071 0.004111528
## 152 1.0007225 0.0035541346306 0.004517317
## 153 1.0091857 0.0006267766914 0.004352916
## 154 1.0209822 0.0001802577696 0.014132385
## 155 1.0137333 0.0001503192122 0.007191341
## 156 1.0097651 0.0045489112273 0.009397909
## 157 1.0175524 0.0000922471589 0.010755221
## 158 1.0133906 0.0000165699784 0.006612879
## 159 1.0016684 0.0021966144191 0.003454964
## 160 1.0128196 0.0012050756122 0.008004604
## 161 1.0099105 0.0063702084704 0.010871068
## 162 1.0161256 0.0004893331882 0.009902091
## 163 1.0097361 0.0005638764813 0.004608239
## 164 1.0173425 0.0019830780302 0.012510018
## 165 1.0130362 0.0088546687176 0.014319141
## 166 0.9775698 0.0082266328343 0.003374941
## 167 1.0065957 0.0010889578155 0.003745486
## 168 0.9784497 0.0085877398402 0.003596096
## 169 0.9657756 0.0244058043588 0.006790144
## 170 0.9899982 0.0115781176665 0.006616585
## 171 1.0084620 0.0007706966391 0.004177035
## 172 1.0129539 0.0000287405784 0.006212705
## 173 1.0100404 0.0001134382825 0.003692823
## 174 1.0140304 0.0006905701395 0.008301948
## 175 1.0126839 0.0002017365967 0.006309128
## 176 1.0068071 0.0010345660520 0.003753584
## 177 1.0074077 0.0008613560053 0.003742803
## 178 1.0109526 0.0000270529727 0.004268169
## 179 1.0044636 0.0018985001062 0.004030797
## 180 1.0100376 0.0000149906210 0.003341574
## 181 1.0081241 0.0022283837717 0.006175371
## 182 1.0111972 0.0015967248832 0.007310618
## 183 1.0035500 0.0016262949552 0.003340231
## 184 1.0058239 0.0034872888265 0.006373186
## 185 1.0007540 0.0048266236259 0.005579434
## 186 1.0062439 0.0009950475366 0.003411224
## 187 1.0072243 0.0047062982296 0.008145799
## 188 1.0176412 0.0016894831570 0.012495486
## 189 1.0090526 0.0003572916880 0.003620835
## 190 1.0133489 0.0000181540639 0.006575428
## 191 1.0072591 0.0008560306364 0.003652421
## 192 1.0124837 0.0006955828443 0.007001727
## 193 1.0138385 0.0005482590948 0.007929647
## 194 1.0046598 0.0042965977676 0.006598833
## 195 1.0226580 0.0001957999002 0.015743477
## 196 1.0133111 0.0021847989551 0.009520579
## 197 1.0050358 0.0015018675406 0.003713595
## 198 0.9831444 0.0297672471186 0.011320620
## 199 1.0043782 0.0014653508171 0.003406319
## 200 1.0059713 0.0106666603434 0.011495358
## 201 1.0073975 0.0006620656933 0.003322927
## 202 1.0079718 0.0005242266134 0.003332827
## 203 1.0099009 0.0000693118459 0.003416658
## 204 1.0101624 0.0001562990704 0.003932872
## 205 1.0119289 0.0073984610784 0.012752900
## 206 1.0099024 0.0000435069805 0.003322625
## 207 0.9997661 0.0083238011628 0.007610383
## 208 1.0119157 0.0024593070428 0.008810720
## 209 1.0115694 0.0015156165216 0.007470457
## 210 1.0090529 0.0004016506017 0.003737691
## 211 1.0105461 0.0001214777544 0.004170116
## 212 1.0079725 0.0035153642760 0.007470556
## 213 1.0122865 0.0052283886908 0.011478010
## 214 0.9989027 0.0048748551336 0.005058195
## 215 1.0038463 0.0018897075012 0.003789155
## 216 0.9157101 0.0242020811509 0.003369616
## 217 0.9898854 0.0070029570633 0.004406032
## 218 1.0115193 0.0001841229313 0.005210074
## 219 1.0126066 0.0010188747330 0.007583281
## 220 0.9965888 0.0033968543747 0.003368316
## 221 1.0098173 0.0001492506884 0.003613331
## 222 1.0117476 0.0006995374683 0.006409548
## 223 1.0089339 0.0002830397043 0.003324168
## 224 1.0213210 0.0008971072550 0.015066734
## 225 1.0139284 0.0038915967644 0.011532424
## 226 0.9964645 0.0033914628797 0.003339446
## 227 1.0145220 0.0001290314959 0.007902758
## 228 1.0143505 0.0008230029094 0.008756488
## 229 1.0062670 0.0021976531466 0.005183820
## 230 1.0202349 0.0006338244767 0.013840296
## 231 1.0065489 0.0014944138560 0.004373836
## 232 0.9881254 0.0172342760211 0.008475155
## 233 1.0023911 0.0019001604393 0.003322533
## 234 1.0110475 0.0020319092299 0.007743082
## 235 1.0205191 0.0001454446095 0.013657676
## 236 1.0124694 0.0034497095451 0.010147261
## 237 1.0138941 0.0003810648753 0.007723375
## 238 1.0178844 0.0018668377730 0.012860640
## 239 1.0082121 0.0010553368114 0.004555471
## 240 1.0023600 0.0019178242363 0.003334587
## 241 1.0135597 0.0003707063228 0.007405691
## 242 1.0104740 0.0003638200130 0.004732070
## 243 1.0090133 0.0002979339999 0.003426475
## 244 1.0116905 0.0023613846159 0.008551608
## 245 1.0065864 0.0068645394844 0.009459287
## 246 1.0061054 0.0018813179699 0.004705791
## 247 1.0089977 0.0010266564213 0.004987045
## 248 1.0073836 0.0022549844612 0.005809019
## 249 1.0027228 0.0024514193240 0.004063883
## 250 1.0112510 0.0102851220920 0.014060080
## 251 1.0104148 0.0002459256508 0.004396285
## 252 1.0112663 0.0000267693116 0.004570638
## 253 1.0061265 0.0009865968120 0.003342038
## 254 1.0111426 0.0001009348169 0.004658455
## 255 1.0045859 0.0024268501164 0.004720707
## 256 1.0171274 0.0006433358565 0.010995579
## 257 1.0176607 0.0004524958269 0.011273377
## 258 1.0164417 0.0000072607285 0.009571724
## 259 1.0155114 0.0002076528891 0.008959134
## 260 1.0067168 0.0015219055818 0.004496616
## 261 1.0135976 0.0004826748710 0.007617990
## 262 1.0108917 0.0011201418911 0.006429117
## 263 1.0277144 0.0018682576509 0.021537562
## 264 0.9789865 0.0208182882411 0.007795886
## 265 1.0020823 0.0172197953026 0.012942242
## 266 1.0154989 0.0000098407564 0.008657210
## 267 0.9162789 0.0267730694513 0.003735624
## 268 1.0105201 0.0001111165080 0.004116204
## 269 1.0126481 0.0002584544222 0.006386121
## 270 1.0103560 0.0000581392470 0.003799246
## 271 1.0060764 0.0067560766052 0.009139145
## 272 1.0077544 0.0013620460649 0.004796800
## 273 1.0058679 0.0011735332903 0.003552584
## 274 1.0107526 0.0000007385325 0.003989562
## 275 1.0093542 0.0002600485489 0.003574240
## 276 1.0082704 0.0005171345755 0.003500506
## 277 1.0110912 0.0003422703534 0.005193647
## 278 1.0174090 0.0006377743512 0.011245655
## 279 1.0094589 0.0003635093740 0.003937142
## 280 1.0121784 0.0001585299410 0.005754479
## 281 1.0107806 0.0002632650883 0.004749560
## 282 1.0098220 0.0031277578473 0.008143453
## 283 1.0042735 0.0017676338765 0.003787136
## 284 1.0123033 0.0059764960829 0.012031351
## 285 1.0179291 0.0055677771350 0.015639988
## 286 1.0028059 0.0018244908567 0.003356590
## 287 1.0067164 0.0008400255795 0.003342167
## 288 1.0104669 0.0000094594928 0.003739074
## 289 1.0097966 0.0000845578652 0.003376949
## 290 0.9801153 0.0568198828331 0.017139050
## 291 1.0104426 0.0000330797066 0.003797133
## 292 1.0008442 0.0036789756952 0.004663943
## 293 0.9971878 0.0031987236711 0.003329385
## 294 1.0208309 0.0000059383428 0.013825904
## 295 1.0088182 0.0071622868240 0.010808706
## 296 1.0203050 0.0004497623114 0.013738160
## 297 1.0110402 0.0000052990473 0.004286760
## 298 1.0103038 0.0001431929346 0.004017763
## 299 1.0132141 0.0022512879568 0.009518294
## 300 1.0141429 0.0000255886868 0.007362519
## 301 1.0025284 0.0018733902078 0.003331419

La pendiente de la recta es el I de Moran.

  1. C de Geary Global
geary.test(censo_mean_prop$usd_m2_z, lvb)
## 
##  Geary C test under randomisation
## 
## data:  censo_mean_prop$usd_m2_z 
## weights: lvb 
## 
## Geary C statistic standard deviate = 16.241, p-value <
## 0.00000000000000022
## alternative hypothesis: Expectation greater than statistic
## sample estimates:
## Geary C statistic       Expectation          Variance 
##       0.350989243       1.000000000       0.001596887

El C de Geary es inferior a 1, y relativamente próximo a 0. Esto indica autocorrelación espacial positiva, y un patrón agrupado (cluster)

IcorrC <-sp.correlogram(neighbours=vecinos,
                       var=censo_mean_prop$usd_m2_z,
                       order=5,method="C",zero.policy=TRUE)
plot(IcorrC)

El correlograma de C de Geary global reitera lo observado para el I Moran Global. A nivel global, los valores del m2 tienen vecinos con valores similares.

  1. Moran local Ii

Este indicador permite desagregar los resultados espacialmente.

censo_prop_lm <- localmoran(censo_mean_prop$usd_m2_z, lvb)
head(censo_prop_lm)
##           Ii        E.Ii   Var.Ii       Z.Ii Pr(z > 0)
## 1 -1.2068249 -0.02333333 6.827297 -0.4529401 0.6747041
## 2  0.3014091 -0.02666667 7.776126  0.1176502 0.4531724
## 3 -0.3773265 -0.02000000 5.871844 -0.1474613 0.5586160
## 4 -0.6865475 -0.02333333 6.827297 -0.2538221 0.6001835
## 5  0.1064164 -0.01000000 2.965734  0.0676002 0.4730519
## 6  0.3596368 -0.01000000 2.965734  0.2146392 0.4150243

Con el fin de mapear los datos, se agregan los resultados a las geometrías de los radios censales.

moran_map <- cbind(censo_mean_prop, censo_prop_lm)
head(moran_map)
## Simple feature collection with 6 features and 15 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -58.53397 ymin: -34.48534 xmax: -58.49607 ymax: -34.45038
## geographic CRS: WGS 84
##        link varon mujer totalpobl hogares viviendasp viv_part_h         prov
## 1 067560507   320   377       697     248        322        246 Buenos Aires
## 2 067560104   475   520       995     307        316        298 Buenos Aires
## 3 067560105   453   473       926     275        287        271 Buenos Aires
## 4 067560110   551   653      1204     404        424        387 Buenos Aires
## 5 067560113   444   487       931     308        363        302 Buenos Aires
## 6 067560205   497   521      1018     296        297        248 Buenos Aires
##   ID_censo usd_m2_z         Ii        E.Ii   Var.Ii       Z.Ii Pr.z...0.
## 1        1  2127.20 -1.2068249 -0.02333333 6.827297 -0.4529401 0.6747041
## 2        2  2304.01  0.3014091 -0.02666667 7.776126  0.1176502 0.4531724
## 3        3  2074.51 -0.3773265 -0.02000000 5.871844 -0.1474613 0.5586160
## 4        4  2162.08 -0.6865475 -0.02333333 6.827297 -0.2538221 0.6001835
## 5        5  2681.01  0.1064164 -0.01000000 2.965734  0.0676002 0.4730519
## 6        6  2424.38  0.3596368 -0.01000000 2.965734  0.2146392 0.4150243
##                         geometry
## 1 MULTIPOLYGON (((-58.49881 -...
## 2 MULTIPOLYGON (((-58.52359 -...
## 3 MULTIPOLYGON (((-58.52369 -...
## 4 MULTIPOLYGON (((-58.53112 -...
## 5 MULTIPOLYGON (((-58.52757 -...
## 6 MULTIPOLYGON (((-58.50454 -...

¿Cuál son los valores máximos y mínimos (dominio) del Ii de Moran?

max(moran_map$Ii)
## [1] 29.70737
min(moran_map$Ii)
## [1] -5.02529

Se renombra la variable Pr.z...0.

moran_map <- moran_map %>%
  rename(p = Pr.z...0.)

Se arman cuadrantes para los LISA clusters (con autocorrelación positiva) con el fin de identificar los hotspots. Previamente, se estandarizan los valores.

z_usd_m2 <- moran_map$usd_m2_z - mean(moran_map$usd_m2_z) 

lag_usd_m2 <- lag.listw(lvb, moran_map$usd_m2_z)
z_lag_usd_m2 <-lag_usd_m2 - mean(lag_usd_m2) 
quad <- vector(mode="numeric",length=nrow(moran_map))
quad[z_usd_m2 > 0 & z_lag_usd_m2 > 0] <- 1 #alto-alto HH rojo
quad[z_usd_m2 > 0 & z_lag_usd_m2 < 0] <- 2 #alto-bajo HL rosado
quad[z_usd_m2 < 0 & z_lag_usd_m2 > 0] <- 3 #bajo-alto LH celeste
quad[z_usd_m2 < 0 & z_lag_usd_m2 < 0] <- 4 #bajo-bajo LL azul
quad[moran_map$p > 0.05] <- 5 #No Signif blanco
moran_map$quad <- quad
LISA <- c("red", "lightpink","skyblue2","blue", "white")
tm_shape(moran_map) + 
tm_fill(col="quad", palette = LISA,  style = "fixed", breaks = c(1,2,3,4,5,6),
              labels = c("HH", "LH", "HL","LL", "no signif"),title="Agrupamientos LISA") +
tm_legend(outside=TRUE)+
tm_borders(col = "Grey")

Este mapa demuestra la alta correlación espacial, y la presencia hotspots hacia el noreste del partido (cerca de las estaciones y del río), y coldspots hacia el suroeste del partido.

4. PATRONES DE PUNTOS

 
 

Los datos de propiedades corresponden a patrones de puntos. En la sección anterior, fueron agrupados en unidades areales con un fin exploratorio. Sin embargo, correspondería analizarlos como patrones de puntos ya que cada propiedad en venta es una ocurrencia del fenómeno “venta de propiedades de vivienda”.
Con este patrón de puntos, se busca analizar la frecuencia de ocurrencia de los eventos. Es decir: ¿las unidades en venta de vivienda están distribuidas aleatoriamente? ¿o existe una concentración espacial de unidades en venta?
Si bien el objetivo de este trabajo es determinar como varía el precio de las propiedades, es importante conocer como se distribuyen las propiedades en venta.  
 

Estadísticas de primer orden

tmap_mode("view")
## tmap mode set to interactive viewing
tmap_mode("plot")
## tmap mode set to plotting
tm_shape(limites_si) + 
  tm_fill() +
  tm_shape(prop_si_geo_zona) +
  tm_dots()

Como es necesario trabajar con coordenadas proyectadas, se modifica el crs de los dos datasets a utilizar: prop_si_geo_zona y limites_si.

prop_si_geo_zona_proj <- prop_si_geo_zona %>%
  st_transform(crs = 22185) %>%
  select(geometry)
limites_si_proj <- limites_si %>% 
    st_transform(crs = 22185) %>%
  select(geometry)

En primer lugar, se tranforma los límites del partido en ventana.

ventana <-as.owin(st_geometry(limites_si_proj))
plot(ventana)

Se transforman las observaciones en patrón de puntos.

ppp_prop <- as.ppp(prop_si_geo_zona_proj)
Window(ppp_prop)<-ventana
plot(ppp_prop)

Se observa una concentración de puntos en las áreas próximas a las estaciones Martinez y San Isidro del Tren Mitre, ramal Tigre.

summary(ppp_prop)
## Planar point pattern:  4693 points
## Average intensity 0.00008909668 points per square unit
## 
## *Pattern contains duplicated points*
## 
## Coordinates are given to 1 decimal place
## i.e. rounded to the nearest multiple of 0.1 units
## 
## Window: polygonal boundary
## single connected closed polygon with 1002 vertices
## enclosing rectangle: [5628575, 5639670] x [6178543, 6188120] units
##                      (11090 x 9577 units)
## Window area = 52673100 square units
## Fraction of frame area: 0.496

Se subdivide el partido de San Isidro en cuadrantes, y se calcula la intensidad (cantidad de unidades en venta).

 

Intensidad por cuadrantes y test de basado en los conteos

  • Se subdivide en cuadrantes y se calcula intensidad.
  • Si consideramos una significacion de 0.05, el patron de ditribución espacial, ¿es aleatorio?
  • Idealmente, para X2 el numero de conteos por cuadrado tiene que ser > 5 (ver ayuda de quadrat.test)
Qprop <- quadratcount(ppp_prop, nx = 5, ny = 5)
plot(ppp_prop)
plot(Qprop, add = TRUE, cex = 2)

Se observan cuadrantes con más de 700 unidades en venta y otros que rondan las 200 unidades. No parecería tratarse de un proceso aleatorio.

quadrat.test(Qprop, method ="MonteCarlo", nsim=50)
## 
##  Conditional Monte Carlo test of CSR using quadrat counts
##  Test statistic: Pearson X2 statistic
## 
## data:  
## X2 = 1741.1, p-value = 0.03922
## alternative hypothesis: two.sided
## 
## Quadrats: 20 tiles (irregular windows)

La estadística de primer orden son estadísticas globales que resumen el patrón de puntos para toda el área de estudio.
El alto valor de X2 (chi-cuadrado) nos dejaría suponer que no hay aleatoriedad espacial global.
Si bien es posible que existan efectos de borde, especialmente considerando que hay cuadrantes recortados, hay algunos cuadrantes completos con muchas menos observaciones.

 
 

Estadísticas de segundo orden

A continuación, se evaluará el estadístico K.

K <- Kest(ppp_prop)
## number of data points exceeds 3000 - computing border correction estimate only
plot(K)

Para el tamaño de la muestra, es muy complejo correr simulaciones. Se evaluará entonces la concentración de puntos a partir de la densidad.

densidad <- density(ppp_prop)
class(densidad)
## [1] "im"
plot(densidad, main='densidad de propiedades en venta en San Isidro')

5. MODELO DE REGRESIÓN ESPACIAL

Las secciones anteriores permiten determinar que el valor de las propiedades presenta una fuerte autocorrelación espacial. Además, los resultados obtenidos en el trabajo del módulo anterior demostraron que las variables consideradas no eran suficientes para explicar el precio de los inmuebles.

A continuación y a fin de complejizar el modelo de regresión, se incorporarán otras variables espaciales como distancia a una estación del tren Mitre, distancia a una estación del tren Belgrano, distancia al rio (costa), distancia a la av. del Libertador, a la avenida Santa Fe/Centenario, a la autopista Panamericana, localidad en la que se encuentra la propiedad.

arterias <- read_sf("arterias.geojson")
localidades <- read_sf("localidades.geojson")
estaciones <- read_sf("estaciones.geojson")

Se muestra la ubicación de estos dos archivos geográficos. loc <- read_sf(“D:/MSI/GIS/Localidades.shp”) %>% st_transform(crs = st_crs(limites_si)) %>% st_write(“localidades.geojson”) arterias <- read_sf(“D:/MSI/GIS/Arterias.shp”) %>% st_transform(crs = st_crs(limites_si)) %>% st_write(“arterias.geojson”)

ggplot() +
  geom_sf(data = limites_si, alpha = 0.5 ) + 
 geom_sf(data = prop_si_geo_zona) +
  geom_sf(data = localidades, aes(fill = Localidad), alpha = 0.5) +
  geom_sf(data = arterias, aes(color=nombre), size = 2) + 
  geom_sf(data = estaciones, size = 4, aes(shape = NOL), fill="grey") +
  scale_fill_brewer(type = "qual", palette = 2) + 
  scale_color_brewer(type = "qual", palette = 1) +
     labs(title = "Posible factores de influencia del valor de las propiedades",
         caption= "Fuente: Elaboración Propia",
         y="",
         x="", 
         color= "Arterias", 
         fill = "Localidades", 
         shape = "Estaciones de Tren") + 
       scale_shape_manual(values = c(21,22,23), name = "Estaciones de Tren")  +

  theme_void()

Se incorpora la variable localidad, y se calcula la distancia a las distintas arterias.

prop_si_modelo <- prop_si_geo_zona %>% 
  st_join(localidades %>% select(Localidad))
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
## although coordinates are longitude/latitude, st_intersects assumes that they are planar
prop_si_modelo$dist_borde_costero = st_distance(prop_si_modelo, arterias[1,])
prop_si_modelo$dist_av_lib  = st_distance(prop_si_modelo, arterias[2,])
prop_si_modelo$dist_av_santafe  = st_distance(prop_si_modelo, arterias[3,])
prop_si_modelo$dist_aut_pan = st_distance(prop_si_modelo, arterias[4,])
prop_si_modelo$dist_aut_panT = st_distance(prop_si_modelo, arterias[5,])
prop_si_modelo$dist_aut_panC = st_distance(prop_si_modelo, arterias[6,])

En cuanto a las estaciones, en primer lugar se busca cual es la estación más cercana, para luego calcular la distancia a dicha estación.

index_est <- st_nearest_feature(x = prop_si_modelo, y = estaciones)
## although coordinates are longitude/latitude, st_nearest_feature assumes that they are planar
estacion_prox <- estaciones %>% slice(index_est)
prop_si_modelo$dist_estacion_prox <- st_distance(x = prop_si_modelo, 
                                              y= estacion_prox, by_element = TRUE)


prop_si_modelo <- cbind(prop_si_modelo, estacion_prox %>% select(FNA,NOL)%>% st_set_geometry(NULL))

Otra cosa importante a tener en cuenta, es si la propiedad es nueva o a refaccionar.

prop_si_modelo <- prop_si_modelo %>%
  mutate(refaccionar= ifelse(grepl(c("refaccionar"),description),"si","no"), 
         estrenar= ifelse(grepl(c("estrenar"),description),"si","no"))

Habiendo incorporado estas variables, se realiza un modelo de regresión de mínimos cuadrados OLS. Para hacer la regresión, y considerando un posterior trabajo con los residuos, se eliminan las observaciones incompletas.
También se eliminan las observaciones con ID duplicado.

prop_si_modelo_ok <- prop_si_modelo %>%
           filter(!is.na(permite_multi))  %>%
  filter(!is.na(Localidad) & !is.na(property_type))
prop_si_modelo_ok <- prop_si_modelo_ok[!duplicated(prop_si_modelo_ok$id), ]

Con el fin de evaluar que modelo ajusta mejor, se van a ir incorporando variables paulatinamente. En el trabajo del módulo anterior se observó una clara relación entre precio de la vivienda y superfie. Considerando esa situación, en este trabajo se busca determinar que afecta el valor del m2.
En primer lugar, se evalúa el efecto de la superficie total, entiendo que la diferencia entre superficie cubierta y superficie total hace referencia a si el inmueble cuenta con jardín/balcón.

LM <- lm(usd_m2 ~ surface_total, prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ surface_total, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2186.2  -746.7  -106.1   663.5  6362.4 
## 
## Coefficients:
##                 Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)   2616.11288   16.91400 154.671 < 0.0000000000000002 ***
## surface_total   -0.10036    0.02404  -4.174            0.0000306 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 989.6 on 3989 degrees of freedom
##   (649 observations deleted due to missingness)
## Multiple R-squared:  0.004349,   Adjusted R-squared:  0.004099 
## F-statistic: 17.42 on 1 and 3989 DF,  p-value: 0.00003056

Si bien el resultado es estadísticamente significativo, la influencia de cada m2 adicional no cubierto, genera una disminución en el precio de -0.10 USD, y el R cuadrado es muy bajo.

¿Cuál es el efecto del tipo de propiedad?

table(prop_si_modelo_ok$property_type)
## 
##          Casa Casa de campo  Departamento            PH 
##          2558             3          1694           385

Como el tipo de propiedad “Casa de campo” no parecería tener a priori mucho sentido en un partido tan urbanizado como San Isidro, se quitan estas tres observaciones.

prop_si_modelo_ok <- prop_si_modelo_ok %>%
  filter(property_type != "Casa de campo")

Se vuelve a realizar un modelo.

LM <- lm(usd_m2 ~ property_type, prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2669.1  -492.2   -73.8   426.6  5675.1 
## 
## Coefficients:
##                           Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)                2129.82      15.70 135.638 < 0.0000000000000002 ***
## property_typeDepartamento  1179.32      24.88  47.406 < 0.0000000000000002 ***
## property_typePH             114.87      43.41   2.646              0.00817 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 794.2 on 4634 degrees of freedom
## Multiple R-squared:  0.3334, Adjusted R-squared:  0.3331 
## F-statistic:  1159 on 2 and 4634 DF,  p-value: < 0.00000000000000022

El tipo de propiead parece tener un efecto importante en el precio del m2.

¿Que ocurre con la zonificación? (Es decir aquella que permite o no multifamiliar)

LM <- lm(usd_m2 ~ property_type  + permite_multi, prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2644.2  -492.6   -74.6   419.7  5677.4 
## 
## Coefficients:
##                           Estimate Std. Error t value            Pr(>|t|)    
## (Intercept)                2127.50      15.79 134.772 <0.0000000000000002 ***
## property_typeDepartamento  1156.75      29.54  39.154 <0.0000000000000002 ***
## property_typePH             109.54      43.57   2.514               0.012 *  
## permite_multisi              46.04      32.51   1.416               0.157    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 794.1 on 4633 degrees of freedom
## Multiple R-squared:  0.3337, Adjusted R-squared:  0.3333 
## F-statistic: 773.4 on 3 and 4633 DF,  p-value: < 0.00000000000000022

Incorporar esta variable no parece mejorar los resultados de la regresión. Además, tampoco es estadísticamente significativa. Es probable además que las variables property_type y permite_multi estén relacionadas dado que el tipo de propiedad “Departamento” solo puede construirse en una zona que permita vivienda multifamiliar.

¿Cómo influye la distancia al río en los precios de las viviendas?

LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero, prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero, 
##     data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2527.5  -496.3   -66.8   396.2  5331.2 
## 
## Coefficients:
##                             Estimate Std. Error t value             Pr(>|t|)
## (Intercept)               2588.00054   25.67741 100.789 < 0.0000000000000002
## property_typeDepartamento 1094.77572   28.24108  38.765 < 0.0000000000000002
## property_typePH            169.50147   41.53335   4.081            0.0000456
## permite_multisi           -116.62250   31.78788  -3.669             0.000246
## dist_borde_costero          -0.11915    0.00539 -22.108 < 0.0000000000000002
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi           ***
## dist_borde_costero        ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 755.3 on 4632 degrees of freedom
## Multiple R-squared:  0.3973, Adjusted R-squared:  0.3968 
## F-statistic: 763.3 on 4 and 4632 DF,  p-value: < 0.00000000000000022

Es importante destacar que la distancia está calculada en m, es decir que por cada cuadra (100m), que el inmueble se aleja del río, el valor del m2 disminuye 11,91USD.

Antes de incorporar otras variables de distancia, es necesario evaluar si se encuentran correlacionadas (despúes de todo, el borde costero, Av. del Libertador, Av. Santa Fe y Autopista Panamericana son paralelas)

prop_si_modelo %>%
  st_set_geometry(NULL) %>%
  select(dist_borde_costero, dist_av_lib, dist_av_santafe, dist_aut_pan, dist_aut_panC, dist_aut_panT, dist_estacion_prox) %>%
  cor()
##                    dist_borde_costero dist_av_lib dist_av_santafe dist_aut_pan
## dist_borde_costero          1.0000000   0.9884889       0.9460477   -0.7968163
## dist_av_lib                 0.9884889   1.0000000       0.9590337   -0.8101046
## dist_av_santafe             0.9460477   0.9590337       1.0000000   -0.6993396
## dist_aut_pan               -0.7968163  -0.8101046      -0.6993396    1.0000000
## dist_aut_panC              -0.9130690  -0.8685935      -0.8189045    0.7878224
## dist_aut_panT              -0.8307445  -0.7741441      -0.7171008    0.7073439
## dist_estacion_prox          0.6239620   0.6313766       0.5637282   -0.7446656
##                    dist_aut_panC dist_aut_panT dist_estacion_prox
## dist_borde_costero    -0.9130690    -0.8307445          0.6239620
## dist_av_lib           -0.8685935    -0.7741441          0.6313766
## dist_av_santafe       -0.8189045    -0.7171008          0.5637282
## dist_aut_pan           0.7878224     0.7073439         -0.7446656
## dist_aut_panC          1.0000000     0.9542152         -0.7073365
## dist_aut_panT          0.9542152     1.0000000         -0.7153828
## dist_estacion_prox    -0.7073365    -0.7153828          1.0000000

Se puede observar que efectivamente las distancias al borde costero, la avenida del Libertador, la avenida Santa Fe - Centenario, y la autopista Panamericana, se encuentra fuertemente correlacionada. La distancia a una estación próxima es un poco más independiente.
En este sentido, se mantiene el modelo anterior, incorporando las distancias a una estación de tren.

LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox,
         prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2522.2  -478.2   -59.1   391.1  5402.3 
## 
## Coefficients:
##                              Estimate  Std. Error t value             Pr(>|t|)
## (Intercept)               2493.019949   27.497686  90.663 < 0.0000000000000002
## property_typeDepartamento 1079.089582   28.046202  38.475 < 0.0000000000000002
## property_typePH            176.878175   41.177169   4.296            0.0000178
## permite_multisi             -5.869251   33.765207  -0.174                0.862
## dist_borde_costero          -0.152188    0.006453 -23.584 < 0.0000000000000002
## dist_estacion_prox           0.138042    0.015125   9.127 < 0.0000000000000002
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi              
## dist_borde_costero        ***
## dist_estacion_prox        ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 748.7 on 4631 degrees of freedom
## Multiple R-squared:  0.4079, Adjusted R-squared:  0.4073 
## F-statistic: 638.2 on 5 and 4631 DF,  p-value: < 0.00000000000000022

El modelo ajusta mejor.

¿Que ocurre con las localidades?

LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + Localidad,
         prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox + Localidad, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2563.9  -460.6   -50.0   375.0  5287.9 
## 
## Coefficients:
##                             Estimate Std. Error t value             Pr(>|t|)
## (Intercept)               2584.95660   42.12817  61.359 < 0.0000000000000002
## property_typeDepartamento 1113.28219   28.41154  39.184 < 0.0000000000000002
## property_typePH            201.95189   41.00611   4.925          0.000000873
## permite_multisi            -20.73728   33.93414  -0.611               0.5412
## dist_borde_costero          -0.22655    0.01409 -16.081 < 0.0000000000000002
## dist_estacion_prox           0.21940    0.01976  11.102 < 0.0000000000000002
## LocalidadBeccar           -202.04109   47.97300  -4.212          0.000025844
## LocalidadBoulogne          409.11486   83.34316   4.909          0.000000948
## LocalidadMartinez            5.91837   44.22751   0.134               0.8936
## LocalidadSan Isidro         42.44394   45.86766   0.925               0.3548
## LocalidadVilla Adelina     162.06124   87.05972   1.861               0.0627
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi              
## dist_borde_costero        ***
## dist_estacion_prox        ***
## LocalidadBeccar           ***
## LocalidadBoulogne         ***
## LocalidadMartinez            
## LocalidadSan Isidro          
## LocalidadVilla Adelina    .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 740.7 on 4626 degrees of freedom
## Multiple R-squared:  0.4211, Adjusted R-squared:  0.4199 
## F-statistic: 336.5 on 10 and 4626 DF,  p-value: < 0.00000000000000022

Si bien el R cuadrado aumenta, los valores no son tan significativos como en el modelo anterior. Cabe destacar que las localidades son bastante heterogéneas en particular Boulogne (que incluye barrios como la Horqueta y barrios de niveles socioeconómicos bajos) y Beccar (del Boating Club a la villa la Cava)

¿Que pasa con las viviendas a estrenar o a refaccionar?

LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar,
         prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox + estrenar + refaccionar, data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2510.8  -472.2   -61.5   388.1  5413.9 
## 
## Coefficients:
##                              Estimate  Std. Error t value             Pr(>|t|)
## (Intercept)               2491.413849   27.535051  90.482 < 0.0000000000000002
## property_typeDepartamento 1069.394856   28.049541  38.125 < 0.0000000000000002
## property_typePH            174.740797   41.065635   4.255           0.00002130
## permite_multisi             -7.303161   33.682086  -0.217               0.8284
## dist_borde_costero          -0.150807    0.006446 -23.397 < 0.0000000000000002
## dist_estacion_prox           0.135645    0.015102   8.982 < 0.0000000000000002
## estrenarsi                 397.029275   81.889445   4.848           0.00000129
## refaccionarsi             -167.294383   82.212707  -2.035               0.0419
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi              
## dist_borde_costero        ***
## dist_estacion_prox        ***
## estrenarsi                ***
## refaccionarsi             *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 746.6 on 4629 degrees of freedom
## Multiple R-squared:  0.4115, Adjusted R-squared:  0.4106 
## F-statistic: 462.3 on 7 and 4629 DF,  p-value: < 0.00000000000000022

Los resultados son los esperados: una vivienda a estrenar es más cara (en este caso casi 400usd/m2) y una vivienda a refaccionar es más barata (alrededor de 165 usd/m2)

LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + Localidad, 
         prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox + estrenar + refaccionar + Localidad, 
##     data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2553.9  -458.9   -51.0   370.2  5293.2 
## 
## Coefficients:
##                             Estimate Std. Error t value             Pr(>|t|)
## (Intercept)               2585.18039   42.04669  61.484 < 0.0000000000000002
## property_typeDepartamento 1103.51893   28.41078  38.842 < 0.0000000000000002
## property_typePH            199.80407   40.88347   4.887          0.000001058
## permite_multisi            -21.90452   33.84601  -0.647               0.5175
## dist_borde_costero          -0.22488    0.01406 -15.997 < 0.0000000000000002
## dist_estacion_prox           0.21700    0.01973  11.001 < 0.0000000000000002
## estrenarsi                 412.81797   81.05491   5.093          0.000000366
## refaccionarsi             -168.48809   81.39143  -2.070               0.0385
## LocalidadBeccar           -207.82019   47.84001  -4.344          0.000014287
## LocalidadBoulogne          405.88307   83.09723   4.884          0.000001072
## LocalidadMartinez            4.57021   44.09375   0.104               0.9175
## LocalidadSan Isidro         38.55516   45.74684   0.843               0.3994
## LocalidadVilla Adelina     155.30710   86.82046   1.789               0.0737
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi              
## dist_borde_costero        ***
## dist_estacion_prox        ***
## estrenarsi                ***
## refaccionarsi             *  
## LocalidadBeccar           ***
## LocalidadBoulogne         ***
## LocalidadMartinez            
## LocalidadSan Isidro          
## LocalidadVilla Adelina    .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 738.5 on 4624 degrees of freedom
## Multiple R-squared:  0.4249, Adjusted R-squared:  0.4234 
## F-statistic: 284.7 on 12 and 4624 DF,  p-value: < 0.00000000000000022

En este caso, R está tomando como base la localidad de Acassuso. ¿Cambia algo si toma como base San Isidro?

prop_si_modelo_ok<- prop_si_modelo_ok %>%
  mutate(localidad = as.factor(prop_si_modelo_ok$Localidad))
prop_si_modelo <- within(prop_si_modelo_ok, localidad <- relevel(localidad, ref = "San Isidro"))
LM <- lm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + localidad, 
         prop_si_modelo_ok)
summary(LM)
## 
## Call:
## lm(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox + estrenar + refaccionar + localidad, 
##     data = prop_si_modelo_ok)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2553.9  -458.9   -51.0   370.2  5293.2 
## 
## Coefficients:
##                             Estimate Std. Error t value             Pr(>|t|)
## (Intercept)               2585.18039   42.04669  61.484 < 0.0000000000000002
## property_typeDepartamento 1103.51893   28.41078  38.842 < 0.0000000000000002
## property_typePH            199.80407   40.88347   4.887          0.000001058
## permite_multisi            -21.90452   33.84601  -0.647               0.5175
## dist_borde_costero          -0.22488    0.01406 -15.997 < 0.0000000000000002
## dist_estacion_prox           0.21700    0.01973  11.001 < 0.0000000000000002
## estrenarsi                 412.81797   81.05491   5.093          0.000000366
## refaccionarsi             -168.48809   81.39143  -2.070               0.0385
## localidadBeccar           -207.82019   47.84001  -4.344          0.000014287
## localidadBoulogne          405.88307   83.09723   4.884          0.000001072
## localidadMartinez            4.57021   44.09375   0.104               0.9175
## localidadSan Isidro         38.55516   45.74684   0.843               0.3994
## localidadVilla Adelina     155.30710   86.82046   1.789               0.0737
##                              
## (Intercept)               ***
## property_typeDepartamento ***
## property_typePH           ***
## permite_multisi              
## dist_borde_costero        ***
## dist_estacion_prox        ***
## estrenarsi                ***
## refaccionarsi             *  
## localidadBeccar           ***
## localidadBoulogne         ***
## localidadMartinez            
## localidadSan Isidro          
## localidadVilla Adelina    .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 738.5 on 4624 degrees of freedom
## Multiple R-squared:  0.4249, Adjusted R-squared:  0.4234 
## F-statistic: 284.7 on 12 and 4624 DF,  p-value: < 0.00000000000000022

¿Que tan bien ajustó el modelo?

par(mfrow = c(2,2))
plot(LM)

De este modelo de regresión, se observa:
- los residuos no son simétricos ni normales - el R cuadrado es bajo (0,42) - hay algunos parámetros que no son significativos

¿Que ocurrió con los residuos de este modelo? (Se observa que el modelo se realizó con 4532 observaciones y no las 4704 originales)

prop_si_modelo_ok$resLM <-residuals(LM)

¿Donde se ubican los residuos?

ggplot() + 
  geom_sf(data = limites_si) + 
  geom_sf(data = prop_si_modelo_ok, aes(color = resLM)) + 
  scale_color_distiller( type = "div", palette = 5) + 
       labs(title = "Residuos Regresión",
         y="",
         x="", 
         color = "Valores de los residuos") + 
  theme_void()

En principio no se observaría una concentración espacial de los residuos altos, sin embargo se observan pequeños clusters de residuos bajos.

Previamente se determinó que los datos presentaban autocorrelación espacial. Se realizará entonces un modelo de regresión espacial.

Para determinar el ancho de banda (bandwidth) se utilizará un kernel adaptativo de tipo Gauss.
No fue posible correr el código para un bandwidth de tipo kernel adaptativo tipo BiSquare con metodo Akaike. Aparecía el siguiente error: “Error in t(x[i, ]) %% inv.Z : non-conformable arguments”.

En primer lugar, se intentó utilizar el método “aic”, sin embargo el código tarda demasiado en correr, y de hecho no se aconseja su uso para grandes volumnes de datos según la nota en la función `gwr.sel(): Note: Use of method=“aic” results in the creation of an n by n matrix, and should not be chosen when n is large.

Utilizando el método “aic”, con el siguiente código:
bwG <- gwr.sel(usd_m2 ~ property_type + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + localidad, data= prop_si_modelo_ok, coords = coordinates(as(prop_si_modelo_ok, “Spatial”)), adapt= TRUE, method = “aic”, verbose = T)
Se obtiene un bwG de 0.03893299.

bwG <- 0.03893299

Sin embargo tambíen se evalúa con el metodo “cv” (default)

bwG2 <- gwr.sel(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + localidad, data= prop_si_modelo_ok, coords = coordinates(as(prop_si_modelo_ok, "Spatial")), adapt= TRUE,   verbose = T)
## Adaptive q: 0.381966 CV score: 2454135162 
## Adaptive q: 0.618034 CV score: 2483119634 
## Adaptive q: 0.236068 CV score: 2414122172 
## Adaptive q: 0.145898 CV score: 2375619662 
## Adaptive q: 0.09016994 CV score: 2321973234 
## Adaptive q: 0.05572809 CV score: 2276288884 
## Adaptive q: 0.03444185 CV score: 2223436737 
## Adaptive q: 0.02128624 CV score: NA
## Warning in optimize(gwr.cv.adapt.f, lower = beta1, upper = beta2, maximum =
## FALSE, : NA/Inf replaced by maximum positive value
## Adaptive q: 0.04257247 CV score: 2248221439 
## Adaptive q: 0.02941686 CV score: NA
## Warning in optimize(gwr.cv.adapt.f, lower = beta1, upper = beta2, maximum =
## FALSE, : NA/Inf replaced by maximum positive value
## Adaptive q: 0.03754747 CV score: 2234665676 
## Adaptive q: 0.03252248 CV score: 2216791256 
## Adaptive q: 0.03133623 CV score: NA
## Warning in optimize(gwr.cv.adapt.f, lower = beta1, upper = beta2, maximum =
## FALSE, : NA/Inf replaced by maximum positive value
## Adaptive q: 0.03325561 CV score: 2219754024 
## Adaptive q: 0.03206937 CV score: NA
## Warning in optimize(gwr.cv.adapt.f, lower = beta1, upper = beta2, maximum =
## FALSE, : NA/Inf replaced by maximum positive value
## Adaptive q: 0.03280251 CV score: 2218496039 
## Adaptive q: 0.0323494 CV score: 2215888443 
## Adaptive q: 0.03224244 CV score: 2215528382 
## Adaptive q: 0.03217633 CV score: NA
## Warning in optimize(gwr.cv.adapt.f, lower = beta1, upper = beta2, maximum =
## FALSE, : NA/Inf replaced by maximum positive value
## Adaptive q: 0.0322833 CV score: 2215665705 
## Adaptive q: 0.03224244 CV score: 2215528382
bwG2
## [1] 0.03224244

Los valores bwG y bwG2 son similares. Se adopta bwG2

Una vez obtenido el ancho de banda bwG2, se realiza la regresión geográficamente ponderada.

GWRdatos = gwr(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + localidad, 
               data= prop_si_modelo_ok, 
               coords = coordinates(as(prop_si_modelo_ok, "Spatial")), 
                adapt=bwG2)
GWRdatos
## Call:
## gwr(formula = usd_m2 ~ property_type + permite_multi + dist_borde_costero + 
##     dist_estacion_prox + estrenar + refaccionar + localidad, 
##     data = prop_si_modelo_ok, coords = coordinates(as(prop_si_modelo_ok, 
##         "Spatial")), adapt = bwG2)
## Kernel function: gwr.Gauss 
## Adaptive quantile: 0.03224244 (about 149 of 4637 data points)
## Summary of GWR coefficient estimates at data points:
##                                      Min.         1st Qu.          Median
## X.Intercept.                 -4542.203870     2154.672326     2416.594258
## property_typeDepartamento     -193.207330      989.974892     1138.394417
## property_typePH               -294.609753       79.309914      268.130619
## permite_multisi              -1415.722410     -215.636472        2.569718
## dist_borde_costero              -2.761861       -0.409135       -0.196810
## dist_estacion_prox              -0.988519       -0.052081        0.105598
## estrenarsi                    -101.669273      308.550581      450.748528
## refaccionarsi                 -751.835905     -360.300629     -215.094859
## localidadBeccar              -1403.242738      -77.325397       74.725727
## localidadBoulogne            -1356.264220      322.964792      974.419865
## localidadMartinez            -1783.447495       87.155038      247.952383
## localidadSan.Isidro          -1401.998654       85.397504      246.641049
## localidadVilla.Adelina    -9011875.785946     -102.066928      314.383776
##                                   3rd Qu.            Max.    Global
## X.Intercept.                  2651.271162     5767.285202 2585.1804
## property_typeDepartamento     1247.442873     1737.844761 1103.5189
## property_typePH                459.739293     1195.783150  199.8041
## permite_multisi                188.239445     1014.196421  -21.9045
## dist_borde_costero              -0.117053        0.255616   -0.2249
## dist_estacion_prox               0.248875        2.554440    0.2170
## estrenarsi                     594.137066     1825.543929  412.8180
## refaccionarsi                   33.234968      607.443146 -168.4881
## localidadBeccar                306.520494     9489.887165 -207.8202
## localidadBoulogne             1665.910502     9578.998397  405.8831
## localidadMartinez              516.232892     9099.762247    4.5702
## localidadSan.Isidro            515.053101     9363.385025   38.5552
## localidadVilla.Adelina        1082.452726  7858346.442536  155.3071

Se convierte el objeto en un sf.

GWRdatos_sf <- GWRdatos$SDF %>% st_as_sf(sp) %>% st_set_crs(st_crs(prop_si_modelo_ok))
GWRdatos_sf
## Simple feature collection with 4637 features and 17 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -58.58825 ymin: -34.52822 xmax: -58.48254 ymax: -34.45143
## geographic CRS: WGS 84
## First 10 features:
##       sum.w (Intercept) property_typeDepartamento property_typePH
## 1  260.0334    2436.959                 1390.7716      384.914042
## 2  257.5235    2730.611                 1194.1240      264.670187
## 3  273.3201    2423.603                 1329.8570      356.271610
## 4  337.3628    2513.813                  928.9073      140.909334
## 5  231.4396    2408.058                 1095.7224      -52.871549
## 6  209.1392    1590.295                  897.6659        8.606602
## 7  352.8248    3186.906                 1011.5558      583.302943
## 8  263.1112    2381.355                  891.3955      136.350330
## 9  295.0604    1798.659                  885.8380        5.243063
## 10 294.9950    2074.778                 1146.2817      254.241807
##    permite_multisi dist_borde_costero dist_estacion_prox estrenarsi
## 1       -248.64167        -0.42015835         0.34490695  542.17309
## 2       -205.42646        -0.52572627         0.32785799  524.65413
## 3       -299.33376        -0.36768971         0.18972336  548.98771
## 4         68.26871        -0.16844064         0.09381086  542.05669
## 5       -260.91841        -0.39222842         0.37483900  790.68535
## 6       -237.50787         0.12977245         0.15283899  385.86177
## 7        239.44471        -0.57018613        -0.26032738  702.58430
## 8        110.98632        -0.13203734         0.11659875  437.20664
## 9       -240.98662         0.07027482         0.18010653  415.89479
## 10       -95.38330        -0.27176682         0.39307158   76.99478
##    refaccionarsi localidadBeccar localidadBoulogne localidadMartinez
## 1      -495.0905    366.20846624        1545.77431         413.04795
## 2      -532.5183     76.64672810        2057.89678         415.98724
## 3      -500.8522    339.88410780        1654.53695         407.01647
## 4      -284.7997     66.88867889         236.56166         126.49813
## 5      -406.3961    -59.99978176        1453.50166         667.16692
## 6       257.2814   -722.47290011        -629.31805        -443.24422
## 7      -362.4518    197.27043880        2803.20557         210.96418
## 8      -317.7295      0.08452225          58.28969          88.33878
## 9       324.2971   -684.13057453        -590.36482        -448.67322
## 10     -118.0790    361.57843408         986.54331         477.48872
##    localidadSan Isidro localidadVilla Adelina       gwr.e     pred   localR2
## 1            276.17650              826.93193  -515.64459 2325.168 0.4717363
## 2            394.52507             1115.36523  -174.44049 3319.368 0.4098051
## 3            391.44719              843.81201 -1179.82684 3396.694 0.4598635
## 4            351.32637              136.53039   -34.37428 1534.374 0.4268549
## 5            717.51567              914.13127   316.67331 3489.297 0.5296930
## 6           -180.30895             -941.82418   595.08507 2795.720 0.3763712
## 7             71.65294             2274.36238  1716.95663 2498.500 0.3432284
## 8            201.95670              -24.19608  -280.73161 1760.732 0.3508046
## 9           -248.46026             -892.94058   -10.27368 2076.940 0.2793046
## 10           350.77358              332.99430  -755.55000 1996.426 0.4133649
##                       geometry
## 1   POINT (-58.51458 -34.4651)
## 2   POINT (-58.51221 -34.4717)
## 3  POINT (-58.51422 -34.46735)
## 4  POINT (-58.55297 -34.52654)
## 5   POINT (-58.5411 -34.47631)
## 6   POINT (-58.55575 -34.4714)
## 7  POINT (-58.49985 -34.47437)
## 8  POINT (-58.54949 -34.51239)
## 9  POINT (-58.56008 -34.47963)
## 10 POINT (-58.52349 -34.46419)

¿Cómo son los valores locales de R2?

LM es la función global. Se obtiene el valor de R2 ajustado

r2 <- summary(LM)$adj.r.squared

A continuación, se comparan los valores obtenidos en el modelo ponderado geográficamente con la regresión global.

GWRdatos_sf %>%
  ggplot(aes(y =localR2, x = "identity")) +
  geom_boxplot() + 
  geom_jitter(alpha = 0.1, color = "blue") + 
  geom_hline(yintercept = r2, color = "red", linetype = "dashed", size = 1.1) + 
  labs(x = "") + 
  theme_minimal()

Si bien hay valores de R2 queson más altos al obtenido con la regresión global, el valor medio es levemente superiro al valor obtenido en la regresión global. Se observan ademas algunos R2 muy bajos.

¿Cómo se distribuyen los residuos?

tm_shape(GWRdatos_sf) + 
   tm_bubbles("gwr.e") 

Para finalizar, se evalúa con otros modelos espaciales.

En primer lugar se determina una matriz de vecinos. Se determina como “vecinos” a las 3 propiedades más próximas (también podría usarse los polígonos de Voronoi y determinar vecinos por contiguidad).

vecinosSI <- knn2nb(knearneigh(as_Spatial(prop_si_modelo_ok), k = 3))
## Warning in knearneigh(as_Spatial(prop_si_modelo_ok), k = 3): knearneigh:
## identical points found
vecinosSI <- nb2listw(vecinosSI, style="W")
summary(lm.LMtests(LM, listw=vecinosSI, test="all"))
##  Lagrange multiplier diagnostics for spatial dependence
## data:  
## model: lm(formula = usd_m2 ~ property_type + permite_multi +
## dist_borde_costero + dist_estacion_prox + estrenar + refaccionar +
## localidad, data = prop_si_modelo_ok)
## weights: vecinosSI
##  
##        statistic parameter               p.value    
## LMerr   1360.150         1 < 0.00000000000000022 ***
## LMlag   1241.149         1 < 0.00000000000000022 ***
## RLMerr   144.619         1 < 0.00000000000000022 ***
## RLMlag    25.618         1          0.0000004161 ***
## SARMA   1385.768         2 < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

El pvalor es significativo para todos los tipos de test. Se utilizará a continuación una regresión espacial lagged.

LAGdatos <- spatialreg::lagsarlm(usd_m2 ~ property_type  + permite_multi + dist_borde_costero+ dist_estacion_prox + estrenar + refaccionar + localidad, data=prop_si_modelo_ok, vecinosSI)
summary(LAGdatos)
## 
## Call:spatialreg::lagsarlm(formula = usd_m2 ~ property_type + permite_multi + 
##     dist_borde_costero + dist_estacion_prox + estrenar + refaccionar + 
##     localidad, data = prop_si_modelo_ok, listw = vecinosSI)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -3082.530  -391.355   -41.399   332.652  5799.089 
## 
## Type: lag 
## Coefficients: (asymptotic standard errors) 
##                              Estimate  Std. Error  z value
## (Intercept)               1377.171358   49.265270  27.9542
## property_typeDepartamento  774.032040   26.970529  28.6992
## property_typePH            170.734717   35.751015   4.7757
## permite_multisi            -78.433742   29.572525  -2.6523
## dist_borde_costero          -0.129888    0.012530 -10.3665
## dist_estacion_prox           0.138670    0.017404   7.9677
## estrenarsi                 325.056006   70.779092   4.5925
## refaccionarsi             -148.845474   71.061179  -2.0946
## localidadBeccar           -130.574050   41.887079  -3.1173
## localidadBoulogne          282.113960   72.594303   3.8862
## localidadMartinez            2.980185   38.506425   0.0774
## localidadSan Isidro          2.128384   39.941779   0.0533
## localidadVilla Adelina     125.870252   75.802909   1.6605
##                                        Pr(>|z|)
## (Intercept)               < 0.00000000000000022
## property_typeDepartamento < 0.00000000000000022
## property_typePH            0.000001791182317357
## permite_multisi                       0.0079957
## dist_borde_costero        < 0.00000000000000022
## dist_estacion_prox         0.000000000000001554
## estrenarsi                 0.000004378777488601
## refaccionarsi                         0.0362057
## localidadBeccar                       0.0018252
## localidadBoulogne                     0.0001018
## localidadMartinez                     0.9383097
## localidadSan Isidro                   0.9575031
## localidadVilla Adelina                0.0968152
## 
## Rho: 0.44042, LR test value: 1002.1, p-value: < 0.000000000000000222
## Asymptotic standard error: 0.012288
##     z-value: 35.842, p-value: < 0.000000000000000222
## Wald statistic: 1284.7, p-value: < 0.000000000000000222
## 
## Log likelihood: -36697.46 for lag model
## ML residual variance (sigma squared): 415680, (sigma: 644.73)
## Number of observations: 4637 
## Number of parameters estimated: 15 
## AIC: 73425, (AIC for lm: 74425)
## LM test for residual autocorrelation
## test value: 19.959, p-value: 0.0000079126

El pvalor es significativo, pero aún el Rho no supera el 0.5.

Conclusión

Si bien se observa una mejora en las predicciones con las regresiones geograficamente ponderada y regresión espacial lag en relación a la regresión lineal, ésta es muy leve.
En primer lugar, hay observaciones que tienen valores de m2 demasiado elevados, y es posible que sean errores.
Además, el modelo podría mejorarse ya sea incorporando variables o adoptando otras potencias de las variables evaluadas (como al cuadrado o raíz cuadrada)