El presente documento tiene la finalidad de encontrar un modelo lineal que pueda predecir el precio de un apartamento o casa de estrato 4 en la ciudad de Cali con el parámetro de área en metros cuadrados como variable de entrada. Este informe es solicitado por parte de la inmobiliaria “A&C” basado en un dataset inicial de 1,706 observaciones provenientes del portal “Finca Raíz” para áreas construidas menores a 200 metros cuadrados (m2).
A continuación, se presenta el procedimiento utilizado para llegar al modelo que mejor se ajusta a los datos usados y al final se realizarán las respectivas conclusiones y se entregará el link correspondiente con una herramienta que permite al cliente hacer las predicciones que considere a partir del modelo establecido (https://nicocasta99.shinyapps.io/Herramienta).
Inicialmente se realizó un análisis exploratorio de los datos con el fin de obtener los primeros acercamientos a la base de datos inicial, esta cuenta con 5 columnas iniciales que son la Zona donde se única la vivienda, el estrato que para este caso todas las viviendas cuentan con estrato 4, el precio del predio en millones de pesos, el área del predio en metros cuadrados y finalmente el tipo de vivienda ya sea casa o apartamento. Debido a que todas las viviendas son estrato 4 se decidió eliminar esta variable, además se quiso ver cuáles eran las zonas con mayor incidencia en el dataset, encontrando que la Zona sur y la Zona norte contienen la mayoría de los predios evaluados en este informe.
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 8 288 60 6 1344
También se evalúa que cantidad de viviendas del dataset se constituyen como apartamentos o casas, encontrando que en su mayoría son apartamentos.
##
## Apartamento Casa
## 1363 343
Finalmente, con el fin de obtener el dataset más limpio posible, se evaluó la cantidad de datos faltantes, encontrando que no hay datos faltantes por lo tanto se dejó en las mismas condiciones de inicio con un total de 4 columnas y 1,706 registros.
## zona estrato preciom areaconst tipo
## 0 0 0 0 0
En esta sección se procede a realizar un análisis exploratorio de los datos evaluados previamente, en un primer acercamiento se puede ver que la variable precio que en este caso es la variable que queremos predecir cuenta con datos que oscilan entre 78 y 760 millones de pesos (MCOP), también se puede ver que su mediana se ubica cercana a los 210 MCOP lo que indica que la mayoría de los predios tienden hacia el valor inferiores de los límites como se puede ver en la gráfica 1.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 78.0 160.0 210.0 225.4 265.0 760.0
Se realizó el mismo análisis para el área de las viviendas evaluadas
encontrando que sus valores oscilan entre 40 y 200 m2, teniendo una
mediana de 75, lo que implica que la mayoría de los predios se focalizan
hacia el límite inferior como se puede apreciar en la gráfica 2.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 40.00 60.00 75.00 87.63 98.00 200.00
Se pretende evaluar cuales son las zonas con mayor cantidad de registros y su respectivo tipo de vivienda, encontrando así que la Zona Norte y la Zona sur son los que mayor cantidad de registros poseen y cabe resaltar que la mayoría de estos son apartamentos con una proporción del 82% y 79% respectivamente, lo que implica que muy probablemente si se realizan negocios en estas zonas, el tipo de vivienda del que se esté hablando será un apartamento.
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 8 288 60 6 1344
En este tramo se realizó un análisis exploratorio bivariado entre las variables Precio y Área, ambas variables cualitativas, esto con el fin de detectar la relación existente entre ambas variables. En este caso puntual se puede apreciar en la gráfica 4 la matriz de correlaciones entre las variables, encontrando una relación lineal catalogada como débil (0.76) aunque muy cercana al límite de 0.8. a su vez en la gráfica inferior izquierda se aprecia que la relación lineal es directamente proporcional, es decir, a medida que aumenta el área del predio lo hace su precio, la relación es gráficamente visible, sin embargo, se muestra dispersión en los valores más altos.
También es importante apreciar que las dos variables no presentan aparentemente una distribución normal según los gráficos de densidad previstos la matriz, donde claramente de aprecia una tendencia de los datos hacia la izquierda.
ggpairs(data_1[,2:3], title="Gráfica 4. Matríz de correlaciones")
También se quiso encontrar el intervalo de confianza de esta
correlación, encontrando que con una seguridad del 95%, la correlación
entre las variables se encuentra entre 0.74 y 0.78.
## [1] 0.7424432 0.7821521
## attr(,"conf.level")
## [1] 0.95
Teniendo como premisa una relación fuerte entre ambas variables, se procedió a realizar el modelo predictivo que para este caso será un modelo de regresión lineal. En este caso se obtuvo un modelo lineal cuyo coeficiente B0 o conocido como intercepto es de 1.802 y el coeficiente B1 que acompaña la variable independiente es de 67.38, lo que significa que por cada metro cuadrado que aumente en el área del predio, este subirá un total de 1.80 MCOP. la ecuación final que se obtendría de este modelo es la siguiente:
Precio = 1.802976 * Área + 67.380631
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.380631 3.51003056 19.19659 1.648523e-74
## Area 1.802976 0.03700055 48.72834 0.000000e+00
Con base en el modelo creado anteriormente, se quiere comprobar mediante prueba de hipótesis que el coeficiente B1 es igual a 0, para ello se utilizó un estadístico de prueba t - student y un P - Value que nos permitirá conocer la probabilidad que la hipótesis nula es decir H0 ~ B1 = 0 sea aceptada o rechazada. en este caso se evaluó un T - student de 48.72 y un P - Value de aproximadamente 0, teniendo en cuenta esto, se rechaza la hipótesis nula y se acepta la hipótesis alternativa que indica que B1 es diferente de 0. a su vez se calculó el intervalo de confianza de B1, encontrado así que con una seguridad del 95% este coeficiente estará entre 1.73 y 1.875.
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.380631 3.51003056 19.19659 1.648523e-74
## Area 1.802976 0.03700055 48.72834 0.000000e+00
## 2.5 % 97.5 %
## Area 1.730404 1.875547
Consecuentemente con la creación del modelo se quiso calcular el R2 que indica el porcentaje de variabilidad de la variable precio, parta este caso concreto, se encontró un valor de R2 del 58.21% lo que implica que el modelo explica el 58.22% de las variaciones que pueda tener el precio en la predicción.
## [1] 0.5821944
Una vez realizadas las respectivas propiedades del modelo se quiso hacer una predicción que permitiera responder ciertas solicitudes realizadas por la inmobiliaria, particularmente la inquietud planteada es si un predio de 110 m2 en un precio de 200 MCOP es una oferta atractiva o resulta poco atrayente. Con el fin de responder este cuestionamiento se realizó la predicción del precio para un área de 110 m2.
A partir de este parámetro se encontró precio de 265.7 MCOP, esto indica que según nuestros análisis la oferta resulta atractiva y podría generar un margen de ganancias de 65.7 MCOP, sin embargo es importante tener en cuenta que el intervalo de confianza arroja que con una seguridad del 95% este precio va a estar entre 156.74 y 374.66 MCOP, por tal motivo es importante tener en cuenta otras variables cualitativas que permitan tener un mejor acercamiento con el valor real del predio y así obtener el mayor redito de la oferta.
## fit lwr upr
## 1 265.7079 156.7484 374.6675
Posterior a la realización del modelo, es importante comprobar que los supuestos necesarios para catalogar este como un modelo correcto, por esta razón, a continuación, se expone en la Gráfica 5 la matriz de supuestos de evaluación del modelo y posteriormente veremos las conclusiones respecto a cada supuesto.
par(mfrow = c(2, 2))
plot(modelo1)
mtext("Gráfica 5. Matríz de supuestos ", side = 150, line = 20, at = 400)
En este supuesto se busca corroborar que los residuales del modelo, es decir, las diferencia entre el valor predicho y el real cumplan con una distribución normal, por ellos se procede a comprobar inicialmente mediante una gráfica QQ norm donde se puede apreciar que dista mucho de ser similar a la línea diagonal con los cuartiles ideales de la distribución normal, sin embargo para comprobar esta hipótesis, se utiliza el Shapiro - Wilk test el cual mediante la hipótesis nula Ho se asume que la distribución es normal, con el fin de rechazarla o aceptarla, el p-value de este indicador es muy cercano a 0, por lo tanto se rechaza la hipótesis nula y se comprueba que este supuesto no se cumple.
En este caso se sugiere realizar una transformación en el modelo para lograr una mejor distribución.
##
## Shapiro-Wilk normality test
##
## data: modelo1$residuals
## W = 0.92671, p-value < 2.2e-16
El siguiente supuesto es la Homocedasticidad, esta propiedad evalua si la varianza de los residuos es constante a lo largo de todo el rango de valores ajustado, para esto se usa la gráfica Scale - location la cual permite ver que se genera un patrón a lo largo de la línea central, este patrón no muestra aleatoriedad en la distribución de la varianza y por lo tanto se asume la no existencia de homocedasticidad. para comprobar esto se usa el test de Breusch - Pagan, el cual asume una hipótesis nula H0 donde existe homocedasticidad, finalmente se obtiene un P - Value de casi 0, por tanto, se rechaza esta hipótesis y se comprueba que no se cumple con el supuesto. Se sugiere a su vez aplicar una transformación a las variables con el fin de obtener mejores resultados.
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 152.8, df = 1, p-value < 2.2e-16
Para probar este supuesto se usa la gráfica de Residuals Vs. Fitted, si la gráfica presenta aleatoriedad a lo largo de la línea central indica la existencia de una buena linealidad, y si estos puntos están distribuidos de manera que la línea roja se vea horizontal, indica que existe linealidad, en este caso se observa que los puntos están distribuidos a la derecha y que la línea roja no se encuentra horizontal, por lo tanto se asume que no cumple con este supuesto. También se sugiere transformar las variables para obtener un mejor ajuste.
Para comprobar la no autocorrelación de las variables con versiones anteriores, se usa el indicador Durbin - Watson test el cual debe ser 2 para afirmar que no existe autocorrelación, en esta caso se usa la hipótesis nula no de que no están auto correlacionados los datos, una vez obtenidos los resultados se denota que el valor DW es de 1.67, por lo tanto esto puede concluir que los datos están correlacionados y el p - Value es un valor de 0, por lo tanto se acepta la hipótesis alternativa que indica que existe autocorrelación.
##
## Durbin-Watson test
##
## data: modelo1
## DW = 1.6713, p-value = 5.124e-12
## alternative hypothesis: true autocorrelation is greater than 0
Finalmente se comprueban los valores atípicos dentro de los datos del modelo ajustado de Bonferroni, en este caso, se evalúan aquellos valores que mediante prueba de hipótesis arrojan P - Values por debajo de un valor de significancia en este caso 0.05, estos valores son considerados outliers como se ve en la siguiente tabla.
outlierTest(modelo1)
## rstudent unadjusted p-value Bonferroni p
## 831 7.905742 4.7460e-15 8.0967e-12
## 957 7.402615 2.0885e-13 3.5630e-10
## 961 5.613772 2.3071e-08 3.9359e-05
## 849 4.553263 5.6567e-06 9.6503e-03
## 884 4.462703 8.6237e-06 1.4712e-02
## 234 4.447021 9.2698e-06 1.5814e-02
## 2 4.426923 1.0166e-05 1.7343e-02
## 1050 4.357087 1.3967e-05 2.3828e-02
## 1010 4.276528 2.0036e-05 3.4182e-02
Teniendo en cuenta lo anterior se procede a quitar estos valores atípicos con el fin de perfeccionar el modelo y obtener mejores resultados.
A partir de la información obtenida verificando los supuestos del modelo 1 y extrayendo los outliers verificados, se obtuvo el database “data_2” que cuenta con 1,697 datos. posteriormente se utilizó la prueba de boxcox que permite reconocer el tipo de transformación que se le debe aplicar a las variables con el fin de encontrar el mejor modelo posible. En este dataset se encontró un valor de lamda de 0.01 lo que indica que la variable dependiente debe estar en escala logarítmica.
## [1] -0.01010101
se aplica la respectiva transformación y se encuentra que el R2 fue de
56.7% lo que indica que no mejoró el indicador del modelo 1.
modelo_transformado = lm(log(Precio_2) ~ (Area_2), data = data_2)
summary(modelo_transformado)
##
## Call:
## lm(formula = log(Precio_2) ~ (Area_2), data = data_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.78769 -0.15994 -0.02698 0.16654 0.74999
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.7326015 0.0141570 334.29 <2e-16 ***
## Area_2 0.0070641 0.0001499 47.11 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2225 on 1695 degrees of freedom
## Multiple R-squared: 0.567, Adjusted R-squared: 0.5668
## F-statistic: 2220 on 1 and 1695 DF, p-value: < 2.2e-16
Sin embargo, en la evaluación de supuestos, se denota gráficamente una mejora razonable en el test de normalidad, aunque los demás indicadores bajaron su rendimiento, es decir, se cumplió con un supuesto. Esto lleva a pensar que si se aplican diferentes transformaciones que lleven a mejores resultados, se podría obtener una validación de todos los supuestos y un mejor valor de R2.
##
## Shapiro-Wilk normality test
##
## data: modelo_transformado$residuals
## W = 0.9943, p-value = 4.232e-06
##
## studentized Breusch-Pagan test
##
## data: modelo_transformado
## BP = 40.989, df = 1, p-value = 1.531e-10
##
## Durbin-Watson test
##
## data: modelo_transformado
## DW = 1.4598, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Además de lo anterior, a continuación, se presenta la predicción realizada con el modelo transformado para un área de 110 m2.
## 247.0656 159.6705 382.2962
Se evidencia que ambos modelos son similares, su R2 no dista mucho siendo el primer modelo mejor evaluado, sin embargo, el modelo transformado presenta una distribución normal mucho más acertada, es cierto también que ambos modelos tienen un W muy cercano a 1 lo que indica que existe una distribución normal, respecto a los demás supuestos, se denota que en ambos modelos se rechazan y no son un factor diferenciador.
En cuanto a la productividad, el modelo 1 asume para un área de 110 un valor del predio de 265.70 MCOP con un intervalo de confianza del 95% de 156.7 y 374.66 MCOP. por otro lado, el transformado presenta una predicción de 247 con un intervalo de 159.67 y 382.29 MCOP, lo que indica que son significativamente diferentes lo valores predichos.
Finalmente, se evalúan diferentes transformaciones con el fin de detectar cual presenta las mejores métricas de evaluación, en este caso el mejor valor de R2, para eso se evaluaron 4 modelos para el precio y área con la data transformada:
modelo 1 : lineal - lineal modelo 2 : lineal - log modelo 3 : log - lineal modelo 4 : log - log
Este proceso arrojó el modelo 4 con una métrica de R2 bastante mejorada de 63.8%, por esta razón se evaluarán los supuestos anteriormente evaluados para comprobar su cumple con los mismos.
##
## =======================================================================
## Dependent variable:
## ---------------------------------------------------
## Precio_2 (Precio_2) log(Precio_2)
## (1) (2) (3) (4)
## -----------------------------------------------------------------------
## Area_2 1.729*** 0.007***
## (0.034) (0.0001)
##
## log(Area_2) 182.344*** 0.766***
## (3.348) (0.014)
##
## Constant 72.328*** -579.237*** 4.733*** 1.978***
## (3.256) (14.782) (0.014) (0.062)
##
## -----------------------------------------------------------------------
## Observations 1,697 1,697 1,697 1,697
## R2 0.597 0.636 0.567 0.638
## Adjusted R2 0.597 0.636 0.567 0.638
## Residual Std. Error 51.167 48.619 0.222 0.203
## F Statistic 2,513.195*** 2,965.681*** 2,219.726*** 2,992.137***
## =======================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
El modelo 4 como se mencionó anteriormente es el modelo mejor valorado, teniendo en cuenta esto, se tiene un valor de R2 de 63.8% lo que explica las variaciones de la variable precio, también tiene un coeficiente B0 de 1.978 y B1 de 0.765, esto implica directamente que por cada m2 que se aumente en un predio, el precio también aumentará en 0.765 MCOP. esto conlleva a que la ecuación resultante de este modelo sea la siguiente:
Precio = 0.7659 * Área + 1.9784
##
## Call:
## lm(formula = log(Precio_2) ~ log(Area_2), data = data_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.84808 -0.12993 -0.00854 0.14020 0.78636
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.97846 0.06182 32.0 <2e-16 ***
## log(Area_2) 0.76594 0.01400 54.7 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2033 on 1695 degrees of freedom
## Multiple R-squared: 0.6384, Adjusted R-squared: 0.6382
## F-statistic: 2992 on 1 and 1695 DF, p-value: < 2.2e-16
En este modelo, se puede aprecia que el valor de W es muy cercano a 1 por lo tanto se puede validar el supuesto de normalidad en los residuales, a su vez, la gráfica de Scale - Location presenta una mayor aleatoriedad en sus resultados, a pesar de que no se puede determinar como un modelo homocedasticidad, sin embargo presenta un valor de BP menor que el modelo 1, tampoco se puede dar por valido el supuesto de no auto correlación ya que arroja un DW que no es cercano a 2. a pesar de no validar los supuestos, se presentan mejores resultados que los modelos anteriormente evaluados.
##
## Shapiro-Wilk normality test
##
## data: modelo4$residuals
## W = 0.99647, p-value = 0.0005904
##
## studentized Breusch-Pagan test
##
## data: modelo4
## BP = 53.104, df = 1, p-value = 3.163e-13
##
## Durbin-Watson test
##
## data: modelo4
## DW = 1.4679, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
A continuación, se presentan las predicciones evaluadas para un área de 110 m2, encontrando una predicción de 264.7 MCOP con un intervalo de la confianza del 95% entre 177.6 y 394.54 MCOP. dando valores de predicción muy similares a el modelo 1 inicialmente planteado, pero con mejores métricas y variación en los residuales.
## 264.7397 177.6393 394.5474
Una vez evaluado el dataset inicial se decidió eliminar una serie de valores atípicos con el fin de obtener mejores resultados y más ajustados a los datos, quedando con un total de 1,697 registros y 4 columnas.
El mejor modelo encontrado en el informe obedece al modelo 4, el cual realiza una transformación logarítmica de la variable precio y la variable área, encontrando así un R2 de 63.8%,
La oferta inicialmente planteada de un predio de 100 m2 por un valor de 200 MCOP se concibe como una oferta buena, arrojando una predicción de 264.73 MCOP, lo que podría generar una ganancia de 64.7 MCOP, sin embargo, se deben tener en cuenta otras variables cualitativas del predio que pueden elevar o disminuir el precio de este.
Se entrega una herramienta que permite la predicción del valor de un predió usando solamente el área del mismo bajo las condiciones de que debe ser una vivienda en la ciudad Cali, estrato 4, que preferiblemente se encuentre en la Zona Norte o Zona Sur y que su área no sea mayor a 200 m2, estas consideraciones garantizan mejores resultados.
Acceder mediante este link: https://nicocasta99.shinyapps.io/Herramienta/