Base de datos de ofertas de vivienda (fuente: plataforma de internet www.fincaraiz.com.co)

La siguiente base de datos es extraida en el mes de febrero del ano 2019 desde la plataforma de internet www.fincaraiz.com.co (Portal Web en Colombia dedicado al mercado de Bienes Raices). Los datos corresponden a las ofertas de casas y apartamentos de la ciudad de Cali, desde los estratos 3 a 6 y por los cuales contienen 8.322 registros que se muestran a continuacion.

library(readxl)
library(ggplot2)
library(plotly)
library(leaflet)
Datos_Vivienda=read_excel("C:/Users/paula_molano/OneDrive - SYNLAB/Desktop/Maestria en Finanzas/10. Econometria/Datos_Vivienda.xlsx")
head(Datos_Vivienda)
## # A tibble: 6 x 12
##   Zona  piso  Estrato precio_millon Area_contruida parqueaderos Banos
##   <chr> <chr>   <dbl>         <dbl>          <dbl> <chr>        <dbl>
## 1 Zona~ 2           6           880            237 2                5
## 2 Zona~ 2           4          1200            800 3                6
## 3 Zona~ 3           5           250             86 NA               2
## 4 Zona~ NA          6          1280            346 4                6
## 5 Zona~ 2           6          1300            600 4                7
## 6 Zona~ 3           6           513            160 2                4
## # ... with 5 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## #   cordenada_longitud <dbl>, Cordenada_latitud <dbl>

Filtros de la Base de datos y mapa

Seguidamente se empezara a desarrollar el informe 1 correspondiente al Modelo de Regresion Lineal Multiple de la clase de Econometria financiera del profesor David Arango Londono de la Universidad Javeriana - Cali, en este informe se desarrollara cada uno de los puntos del informe.

  1. Realice un filtro a la base de datos e incluya solo las ofertas de apartamentos, de la zona norte de la ciudad con precios inferiores a los 500 millones de pesos y areas menores a 300 mt2. Presente los primeros 3 registros de la base y algunas tablas que comprueben la consulta. (Adicional un mapa con los puntos de la base, discutir si todos los puntos se ubican en la zona norte o se presentan valores en otras zonas, por que?).
criterios=Datos_Vivienda$Zona=="Zona Norte"&Datos_Vivienda$precio_millon<500&Datos_Vivienda$Tipo=="Apartamento"&Datos_Vivienda$Area_contruida<300
Datos_filtro=Datos_Vivienda[criterios,]

table(Datos_filtro$Zona)
## 
## Zona Norte 
##       1077
table(Datos_filtro$Tipo)
## 
## Apartamento 
##        1077
summary(Datos_filtro$precio_millon)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    65.0   132.0   220.0   233.8   320.0   495.0       3
head(Datos_filtro,3)
## # A tibble: 3 x 12
##   Zona  piso  Estrato precio_millon Area_contruida parqueaderos Banos
##   <chr> <chr>   <dbl>         <dbl>          <dbl> <chr>        <dbl>
## 1 Zona~ 2           3           135             56 1                1
## 2 Zona~ NA          3            78             54 2                1
## 3 Zona~ NA          5           340            106 2                2
## # ... with 5 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## #   cordenada_longitud <dbl>, Cordenada_latitud <dbl>
leaflet()%>%addCircleMarkers(lng=Datos_filtro$cordenada_longitud,lat=Datos_filtro$Cordenada_latitud,radius = 0.05,color="red",label=Datos_filtro$precio_millon,opacity=0.9)%>%addTiles()

Analisis del punto 1:

Se ha desarrollado el filtro teniendo en cuenta la base de datos anteriormente mencionada, donde se destaca: * Ofertas de apartamentos * Zona norte de la ciudad de Cali * Precio inferior a los 500 millones de pesos * Areas menores a 300 mt2. Bajo lo anterior se encuentran 1.077 registros que cumplen con las condiciones.

Posterior a lo anterior, se emplea un filtro donde se desea obtener los 3 primeros registros como se muestra en la tabla de 3X12

Por utimo, se detalla la ubicación de cada uno de los apartamentos ubicados en la zona norte de la ciudad de Cali, bajo la ayuda de la plataforma de Google maps (servidor de aplicaciones de mapas en la web que pertenece a Alphabet Inc. Ofrece imagenes de mapas desplazables, asi como fotografias por satelite del mundo e incluso la ruta entre diferentes ubicaciones o imagenes a pie de calle con Google Street View, condiciones de trafico en tiempo real (Google Traffic) y un calculador de rutas a pie, en coche, bicicleta (beta) y transporte publico y un navegador GPS, Google Maps Go.). En el mapa se registran varias viviendas de apartamentos mal sectorizadas pues aparecen en zonas diferentes al norte, este error se debe a que tienen valores fatantes o no validos y su principal causal es por mal diligenciamiento por parte del ofertor.

Exploratorio de datos enfocado en la correlacion entre variables

  1. Realice un analisis exploratorio de datos enfocado en la correlacion entre la variable respuesta (precio del apartamento) en funcion del area construida, estrato y si tiene parqueadero. Use graficos interactivos con plotly e interprete los resultados.
Datos_filtro=na.omit(Datos_filtro)
Datos_filtro$Estrato=as.character(Datos_filtro$Estrato)
Datos_filtro$tiene_parqueadero=Datos_filtro$parqueaderos!="NA"
g1=ggplot(Datos_filtro,aes(x=Area_contruida,y=precio_millon,color=Estrato))+geom_point()+theme_bw()+geom_smooth(method = "lm")
ggplotly(g1)
g2=ggplot(Datos_filtro,aes(x=Area_contruida,y=precio_millon,color=tiene_parqueadero))+geom_point()+theme_bw()+geom_smooth(method = "lm")
ggplotly(g2)

Analisis del punto 2:

Se ha realizado la exploracion de los datos como: area construida, estrato y si tiene o no parqueadero en correlacion al precio.

En la grafica 1:Relacion entre precio, estrato y area construida -> Se detalla por colores el estrato empezando desde el estrato 3 al 6, las lineas de intercepto evidencian que a medida que el estrato aumenta tambien sube el precio de la vivienda (apartamentos); ademas, se oberva que el area construida tiene relacion directa con el precio, esto quiere decir que a mayor area tenga la vivienda mayor va ser su precio en promedio.

En la grafica 2: Relacion entre precio, area construida y parqueadero -> Se detalla una relacion directa entre el precio de la vivienda y el area construida, lo que indica que a mayor area de la vivienda (apartamento), asi mismo incrementa su precio en promedio. Las lineas de intercepto dependen si tienen o no parqueadero, lo que indica es que el precio base cambia dependendiendo si el apartamento tiene o no parquedero.

Para ambas graficas se debe tener en cuenta que la base es el estrato 3.

Modelo de regresion lineal

  1. Estime un modelo de regresion lineal multiple con las variables del punto anterior e interprete los coeficientes si son estadisticamente significativos. Las interpretaciones deben estar contextualizadas y discutir si los resultados son logicos. Adicionalmente interprete el coeficiente R2 y discuta el ajuste del modelo e implicaciones (que podrian hacer para mejorarlo).

Antes de iniciar con el modelo de regresion lineal y analisis de las variables se debe tener en cuenta que la variable principal es el precio y que esta variable esta en funcion del area construida y zona; ademas, de dos variables categoricas que son el estrato y si la vivienda (apartamento) tiene o no parqueadero, como se evidencia en el ejercicio No.2

mod1=lm(precio_millon~Area_contruida+Estrato+tiene_parqueadero,data=Datos_filtro)
summary(mod1)
## 
## Call:
## lm(formula = precio_millon ~ Area_contruida + Estrato + tiene_parqueadero, 
##     data = Datos_filtro)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -242.442  -31.795   -0.944   27.529  223.738 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            49.03852    5.03387   9.742  < 2e-16 ***
## Area_contruida          1.04332    0.06037  17.281  < 2e-16 ***
## Estrato4               61.87913    4.84558  12.770  < 2e-16 ***
## Estrato5              146.16586    4.98649  29.312  < 2e-16 ***
## Estrato6              204.47149    9.27649  22.042  < 2e-16 ***
## tiene_parqueaderoTRUE  15.54122    3.98543   3.900 0.000102 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 54.8 on 1071 degrees of freedom
## Multiple R-squared:  0.7541, Adjusted R-squared:  0.7529 
## F-statistic: 656.9 on 5 and 1071 DF,  p-value: < 2.2e-16

Analisis del punto 3:

El modelo de regresion lineal arroja un R2 ajustado de un 75,29% lo que indica que el 75,29% de los datos en la ecuacion de regresion son confiables, determinada por la extension de la varianza de la variable dependiente precio que se explica por las variables independientes de area construida, zona, estrato y si tiene o no parqueadero.

Teniendo en cuenta los datos arrojados, se puede concluir lo siguiente:

Por lo que se puede concluir que los coeficientes si son estadisticamente significativos a medida que se incrementa el estrato respecto al estrato 3 como base categorica mayor es su precio.

Supuestos del modelo e Interpretacion de los resultados

  1. Realice la validacion de supuestos del modelo e interprete los resultados (no es necesario corregir en caso de presentar problemas solo realizar sugerencias de que se podria hacer).

A continuacion se analizara por medio de graficos los supuestos del modelo, considerando 4 graficos para la interpretacion:

  1. Residual vs Fitted values
  2. Normal Q-Q
  3. Scale-Location
  4. Residuals vs Leverage

Los cuales seran explicados seguidamente

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

Analisis del punto 4:

Los graficos arrojan que los supuestos del modelo estan bien interpretados por lo que se procede a interpretar cada uno de ellos:

  1. El grafico Residual vs Fitted values muestra que estan todos cerca del cero (0) que es lo que se busca, es decir que hay linealidad. En caso de que no existiera linealidad en los datos, se procede con el ajuste del modelo mediante una transformacion logaritmica.

  2. El grafico Q-Q muestra que hay normalidad de los datos, con algunas pequeñas dispersiones en los extremos pero no afectan el modelo.

  3. El grafico Scale-Location muestra que cumple los requisitos minimos pues esta cerca del uno (1) y su linea es recta

  4. El grafico Residuals vs Leverage muestra que la mayoria de los datos no estan muy alejados del resto, aunque hay datos influyentes y atipicos, por lo tanto existe linealidad en los datos.

Para mejorar el modelo, se deben considerar otras variables que pueden ser determinantes en el precio de la vivienda, como lo son la seguridad del sector, los parques, la vias de acceso, la aproximacion al transporte publico, entre otras variables cualitativas. Sin embargo, para mejorar el R2 ajustado es mejor usar un modelo de transformacion logaritmica que ajuste el modelo (aunque no es necesario) e incremente el indicador. Se acota que no es necesario hacer la transformacion logartimica por que las graficas demuestran que el modelo esta bien representado, pero para efectos del ejercicio, en los anexos se hara el analisis del modelo de transformacion logaritmica demostrando que seguramente aumenta el porcentaje del R2 ajustado pero el analisis de cada uno de los coeficientes pueda que no sean acordes, ya que con el modelo de regresion lineal esta mostrando que no es necesario realizar ajustes, pero lo veremos dentro de los anexos de este informe.

Predicciones del modelo y sugerencias potenciales - No. 1

  1. Con el modelo identificado predecir el precio de un apartamento con 100 mt2, de estrato 4 y con parqueadero. ¿Si este apartamento lo estan ofreciendo en 450 millones cual seria su opinion con base en el resultado del modelo considera que es una buena oferta?

Teniendo en cuenta las variables ya estudiadas, se procede a ajustar las variables para predecir si un apartamento que se desea vender en $450 millones esta con buen precio o esta sobrevalorado vs las ofertas del mercado

preciomedio_estimadodemercado=predict(mod1,list(Area_contruida=100,Estrato="4",tiene_parqueadero=TRUE))
preciomedio_estimadodemercado
##        1 
## 230.7909

Analisis del punto 5:

De acuerdo con el modelo, el valor del precio estimado bajo las siguientes condiciones: * Apartamento con 100 mt2 * Estrato 4 * Con parqueadero Arroja que el mercado esta ofreciendolo a un precio de 230.790.900 de pesos colombianos, lo que indica que el precio de 450 millones está sobrevalorado y no hay manera de explicar la desviacion de $219.210.000 de pesos. Incluso, trabajando bajo el supuesto que es una vivienda (apartamento) con acabados de lujo y que sus variables cualitativas como seguridad del sector, los parques, la vias de acceso, la aproximacion al transporte publico, entre otras hacen que el precio se incremente, la desviacion sigue siendo muy alta; por lo tanto, se recomienda no tomar dicha oferta.

Predicciones del modelo y sugerencias potenciales - No. 2

  1. Con las predicciones del modelo sugiera potenciales ofertas para una persona interesada en un apartamento en la zona norte con mas de 100 mt2 de área, de estrato 4, que tenga parqueadero y tenga encuentra que la persona tiene un credito preaprobado de maximo 400 millones de pesos. Realice un analisis y presente en un mapa al menos 5 ofertas potenciales que debe discutir.

Se realizara una prediccion para una persona que tiene credito pre-aprobado por $400 millones de pesos y a continuacion se le sugerirá al menos 5 opciones potenciales de vivienda (apartamentos) ubicados en la zona norte, con mas de 100 mt2 de area, que tenga parqueadero y dentro del estrato 4.

precio_modelo=mod1$fitted.values
precio_real=Datos_filtro$precio_millon
area=Datos_filtro$Area_contruida
tiene_p=Datos_filtro$tiene_parqueadero
estrato=Datos_filtro$Estrato

potencial=precio_modelo-precio_real
target=potencial>0&precio_real>=100&precio_real<=400&area>=100&estrato=="4"&tiene_p==TRUE

table(target)
## target
## FALSE  TRUE 
##  1072     5

El resultado arroja que hay 5 opciones potenciales (true) de vivienda (apartamentos) que se ajustan con los requerimientos de la persona interesada

A continuacion se mostraran en el mapa en que barrios de la zona norte de la ciudad de Cali se encuentran dichos predios

Datos_filtro$potencial=round(potencial,1)

Datos_recomendados=Datos_filtro[target,]
Datos_recomendados
## # A tibble: 5 x 14
##   Zona  piso  Estrato precio_millon Area_contruida parqueaderos Banos
##   <chr> <chr> <chr>           <dbl>          <dbl> <chr>        <dbl>
## 1 Zona~ 4     4                 185           104  1                3
## 2 Zona~ 6     4                 270           152  1                3
## 3 Zona~ 3     4                 300           287  1                3
## 4 Zona~ 4     4                 190           104. 1                3
## 5 Zona~ NA    4                 280           173  2                3
## # ... with 7 more variables: Habitaciones <dbl>, Tipo <chr>, Barrio <chr>,
## #   cordenada_longitud <dbl>, Cordenada_latitud <dbl>, tiene_parqueadero <lgl>,
## #   potencial <dbl>
leaflet() %>% addCircleMarkers(lng = Datos_recomendados$cordenada_longitud,lat = Datos_recomendados$Cordenada_latitud,radius = 0.05,color = "blue",label  = paste("Potencial=",Datos_recomendados$potencial,";","Precio venta=",Datos_recomendados$precio_millon),opacity = 0.9)%>% addTiles()

Como podemos obervar en la tabla 5X14, donde se detalla el estrato, precio, area construida y si tienen o no parqueadero, entre otras variables y en el mapa se hace rastreo de cada una de las viviendas (apartamentos) potenciales para el comprador. Estas estan distribuidas en los barrios: San Vicente, Versalles, Campina y Santa Monica, con la ubicacion de los barrios en el mapa nos podemos dar cuenta que no hay errores en los registros y que todos coinciden con lo esperado en el modelo ya que se encuentran en la zona norte de la ciudad de Cali.

Anexo explicatorio punto No.4

En el punto 4 se menciono de demostrar que realizando el modelo de transformacion logaritmica incrementaba el indicador del R2 ajustado pero que posiblemente sus coeficientes no iban a estar acordes por lo que se procede hacer analisis y la corrida del modelo.

Datos_filtro$Estrato=as.character(Datos_filtro$Estrato)
Datos_filtro$tiene_parqueadero=Datos_filtro$parqueaderos!="NA"

mod2=lm(log(precio_millon)~Area_contruida+Estrato+tiene_parqueadero, data=Datos_filtro)
summary(mod2)
## 
## Call:
## lm(formula = log(precio_millon) ~ Area_contruida + Estrato + 
##     tiene_parqueadero, data = Datos_filtro)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.88986 -0.14592  0.01888  0.16240  1.02666 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           4.4664295  0.0206619  216.17  < 2e-16 ***
## Area_contruida        0.0040291  0.0002478   16.26  < 2e-16 ***
## Estrato4              0.4225632  0.0198891   21.25  < 2e-16 ***
## Estrato5              0.7603609  0.0204675   37.15  < 2e-16 ***
## Estrato6              0.9200525  0.0380761   24.16  < 2e-16 ***
## tiene_parqueaderoTRUE 0.0966817  0.0163585    5.91 4.59e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2249 on 1071 degrees of freedom
## Multiple R-squared:  0.8006, Adjusted R-squared:  0.7997 
## F-statistic:   860 on 5 and 1071 DF,  p-value: < 2.2e-16

Analisis del Anexo:

Tal como se menciono, se observa que el R2 ajustado tiene el 79,97% aun mejor que el modelo de regresion lineal que tenia un 75,29%, sin embargo al adentrarnos al analisis de los coeficientes no tienen mucho sentido, pues considerando que la base es el estrato 3 a simple vista no se alcanza a notar gran diferencia entre un estrato a otro. Para poder corroborar estos coeficientes, se procede a eliminar el exponencial para poder tener una mejor interpretacion de los coeficientes.

Intercepto_Estrato3=exp(4.4664295)
Intercepto_Estrato3
## [1] 87.04537
Coeficiente_Area_construida=exp(0.0040291) 
Coeficiente_Area_construida
## [1] 1.004037
Coeficiente_Estrato4=exp(0.4225632)
Coeficiente_Estrato4
## [1] 1.525868
Coeficiente_Estrato5=exp(0.7603609)
Coeficiente_Estrato5
## [1] 2.139048
Coeficiente_Estrato6=exp(0.9200525)
Coeficiente_Estrato6
## [1] 2.509422
Coeficiente_Tiene_parqueadero=exp(0.0966817)
Coeficiente_Tiene_parqueadero
## [1] 1.10151

Como se puede observar no hace mucho sentido que el salto de un estrato 3 al estrato 6 de una vivienda (apartamento) la diferencia sea por $2.509.422 pesos por encima de la base (estrato 3), asi mismo con los demas coeficientes, con esto se comprueba que no es necesario, ni relevante ajustar el modelo a una transformacion logaritmica.

Por lo anterior, debe considerarse el modelo de regresion lineal como la mejor base, pese que su R2 ajustado es menor pero sus coeficientes si tienen mejor relacion al momento de hacer el analisis.