Presentación.

En este documento se presentan los resultados del diseño y validación de un modelo para la proyección del precio de inmuebles en la ciudad de Cali. El principal objetivo es que los directivos de la Inmobiliaria A&C apoyen la toma de decisiones basados en un modelo robusto y construido a partir de los datos disponibles en el mercado. Dado que por el momento solo se cuenta con una variable explicativa, el área construida, en este primer acercamiento no se logrqaron resultados satisfactorios, de todas formas este trabajo sirve de base para después complementar el estudio con otras variables adicionales que permitan explicar de mejor manera el comportamiento de los precios de los inmuebles.

De acuerdo a los requerimientos de la Inmobiliaria A&C, el modelo se centró en los apartamentos de estrato 4 con área construida menor a 200 \(m^2\), para esto se utilizó un conjunto de datos que corresponde a las características solicitadas, logrando una muestra de 1360 registros compuesto por tres variables: zona, precio por \(m^2\) en miles de COP y área construida en \(m^2\). Por recomendación de los asesores, no se incluyó la variable zona en el estudio.

De esta forma, en los anexos a este documento, se presentan los pasos realizados para el entendimiento de los datos, la construcción y validación de un modelo lineal que permita extraer información relevante para comprender y explicar la relación entre el precio y el área construida de los apartamentos estrato 4 de menos de 200 \(m^2\), el objetivo es proyectar el precio por \(m^2\) a partir del área construida. Se realizó un análisis estadístico descriptivo de cada variable, un análisis de correlación para verificar la linealidad entre las variables, luego se planteó el modelo de regresión lineal simple interpretando los coeficientes y realizando la respectiva prueba de bondad de ajuste, finalmente se validaron los supuestos acerca del comportamiento de los errores del modelo.

El modelo de regresión lineal simple es el siguiente:

\[Y=\beta_{0}+\beta_{1}X+\epsilon\] Donde:

\(Y\): representa a la variable dependiente o respuesta, en este caso, el precio por \(m^2\) en miles de COP.

\(X\): representa a la variable independiente, en este caso, el área construida en \(m^2\).

\(\epsilon\): es el error, variable aleatoria desconocida y que representa todas aquellas variables que no están incluidas en el modelo.

\(\beta_{0}\): coeficiente a estimar, denominado intercepto.

\(\beta_{1}\): coeficiente a estimar, denominado pendiente.

\(\beta_{0}\) y \(\beta_{1}\) conforman los parámetros a estimar para definir la recta:

\[\hat{y}_{i}=\hat\beta_{0}+\hat\beta_{1}x_{i}\] La estimación de los parámetros \(\beta_{0}\) y \(\beta_{1}\) y la ecuación que representa el modelo lineal para relacionar el precio por \(m^2\) de un apartamento estrato 4 en función del área construida es:

\[\hat{y}=36.62 + 2.20x\]

El valor de \(36.62\) o \(\beta_{0}\) representa el punto de corte en el eje \((Y)\) de la recta de regresión por mínimos cuadrados y el valor \(2.20\) o \(\beta_{1}\) representa la pendiente o la razón de cambio de la variable \((Y)\) con respecto a la variable \((X)\), es decir, una constante del modelo lineal que permite valorar el efecto generado sobre el precio ante cambios en el área construida.

El indicador de bondad de ajuste o también llamado coeficiente de determinación \(R^2\) representa la proporción de la variablidad de la variable dependiente atribuible a la variabilidad de la variable independiente, o dicho de otra forma, refleja la bondad de ajuste de un modelo a la variable que pretende explicar. En este caso, el \(R^2=0.55\), de esto se puede deducir que el 55% del cambio en el precio está explicado por la variable área construida en el modelo lineal planteado.

Como se observa, el ajuste del modelo es relativamente bajo, esto sumado a que los supuestos acerca del comportamiento de los errores (normalidad, homocedasticidad, linealidad y no autocorrelación) no se cumplen y que también se realizaron algunas transformaciones en las variables y además se limitó la muestra de datos a áreas menores a 120 \(m^2\) persistiendo las deficiencias.

Entonces, se recomienda buscar y probar otras variables para explicar mejor el comportamiento del precio como: la disponibilidad de parqueadero, el número de habitaciones, el número de baños, el piso de ubicación, la antiguedad de la construcción, etre otras.

0. Exploración de datos

Se dispone de un conjunto de datos inicial, 1706 registros, con información de las viviendas estrato 4 por sector, tiene 5 variables: zona, estrato, preciom (miles de COP), areaconst (\(m^2\)) y tipo. A continuación, se presenta una muestra de los datos disponibles:

data(vivienda4)

head(vivienda4)
## # A tibble: 6 × 5
##   zona       estrato preciom areaconst tipo       
##   <fct>      <fct>     <dbl>     <dbl> <fct>      
## 1 Zona Norte 4           220        52 Apartamento
## 2 Zona Norte 4           600       160 Casa       
## 3 Zona Norte 4           320       108 Apartamento
## 4 Zona Sur   4           290        96 Apartamento
## 5 Zona Norte 4           220        82 Apartamento
## 6 Zona Norte 4           305       117 Casa

A partir del conjunto de datos original, se extrae un subconjunto de datos, 1360 registros, con los apartamentos estrato 4 con área construida menor a 200 \(m^2\).

ap4200=vivienda4[vivienda4$areaconst<200 & vivienda4$tipo=="Apartamento", ]

head(ap4200)
## # A tibble: 6 × 5
##   zona       estrato preciom areaconst tipo       
##   <fct>      <fct>     <dbl>     <dbl> <fct>      
## 1 Zona Norte 4           220        52 Apartamento
## 2 Zona Norte 4           320       108 Apartamento
## 3 Zona Sur   4           290        96 Apartamento
## 4 Zona Norte 4           220        82 Apartamento
## 5 Zona Norte 4           220        75 Apartamento
## 6 Zona Norte 4           162        60 Apartamento

Dado que las columnas estrato y tipo sólo tienen una categoría, 4 y Apartamento, respectivamente, se las elimina, obteniendo de esta forma un nuevo conjunto de datos denominado apto4, conformado por 3 variables y 1360 observaciones. La muestra contenida en apto4 se utiliza para el presente informe y contiene los apartamentos estrato 4 de menos de 200 \(m^2\) de área construida y su respectivo precio por metro cuadrado en miles de COP.

apto4=ap4200[, -c(2, 5)]

head(apto4)
## # A tibble: 6 × 3
##   zona       preciom areaconst
##   <fct>        <dbl>     <dbl>
## 1 Zona Norte     220        52
## 2 Zona Norte     320       108
## 3 Zona Sur       290        96
## 4 Zona Norte     220        82
## 5 Zona Norte     220        75
## 6 Zona Norte     162        60

Es importante conocer la composición de la muestra de acuerdo a la zona de la ciudad, en orden descendente de la frecuencia por zona están: Sur (1063), Norte (236), Oeste (52), Centro (7) y Oriente (2). Se destaca que el 95% de la muestra está ubicada en sólo dos zonas: la Sur y la Norte, la Oeste tiene una participación del 3.8% la Centro y la Oriente tienen una participación muy baja.

table(apto4$zona) %>%
  prop.table()*100
## 
##  Zona Centro   Zona Norte   Zona Oeste Zona Oriente     Zona Sur 
##    0.5147059   17.3529412    3.8235294    0.1470588   78.1617647

Con el conjunto de datos apto4 se construye el modelo para analizar el precio de los inmuebles. A continuación, se presenta un resumen con los pasos realizados para el entendimiento de los datos, la construcción y validación de un modelo lineal que permita extraer información relevante para comprender y explicar la relación entre el precio y el área construida de los apartamentos estrato 4 de menos de 200 \(m^2\).

Se observa que los registros están completos, es decir, que no presentan datos faltantes o inválidos. Se inicia con un análisis exploratorio de las variables preciom y areaconst.

1.1. Análisis exploratorio de la variable preciom. Precio por \(m^2\) en miles de COP.

A continuación, se presenta el resumen estadístico de la variable preciom:

summary(apto4$preciom)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##      78     153     185     202     240     645

Ahora se presenta la tabla de frecuencias para 5 clases de 150 miles de COP:

breaks=c(0, 150, 300, 450, 600, 750)
precio=cut(apto4$preciom, breaks)
summarytools::freq(precio)
## Frequencies  
## precio  
## Type: Factor  
## 
##                   Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## --------------- ------ --------- -------------- --------- --------------
##         (0,150]    325    23.897         23.897    23.897         23.897
##       (150,300]    941    69.191         93.088    69.191         93.088
##       (300,450]     89     6.544         99.632     6.544         99.632
##       (450,600]      4     0.294         99.926     0.294         99.926
##       (600,750]      1     0.074        100.000     0.074        100.000
##            <NA>      0                              0.000        100.000
##           Total   1360   100.000        100.000   100.000        100.000

Por último se presenta el histograma de frecuencias con su curva de densidad, el gráfico Q-Q Plot y un boxplot para la variable aleatoria preciom:

par(cex=0.5, cex.axis=0.5, cex.lab=0.5, cex.main=0.5, cex.sub=0.5, mfrow=c(1, 3), mai=c(0.5, 0.5, 0.5, 0.5))

hist(apto4$preciom, prob=TRUE, xlab="Precio x m2", ylim=c(0, 0.01), main="Histograma y Densidad del Precio x m2")
lines(density(apto4$preciom), col="blue", lwd=3)

qqnorm(apto4$preciom, main="Q-Q Plot Precio x m2", xlab=" ", ylab=" "); qqline(apto4$preciom, col="red")

boxplot(apto4$preciom, main="Boxplot Precio x m2")

En el histograma se observa que la distribución de la variable preciom presenta una asimetría positiva porque se nota un alaragamiento del lado de los valores que son mayores al promedio, de la curva de densidad se observa que la distribución tiene dos picos. En el gráfico Q-Q Plot se puede apreciar una clara desviación de la línea recta, lo que indica que la distribución de la variable preciom probablemente no sigue una distribución normal. El boxplot confirma la asimetría, el valor de la mediana (185) está por debajo del promedio (202) y hay varios datos atípicos altos que se encuentran por encima de 1.5 veces el rango intercuartílico del límite superior de la caja (percentil 75).

1.2. Análisis exploratorio de la variable areacons. Area construida en metros cuadrados.

A continuación, se presenta el resumen estadístico de la variable areacons en \(m^2\):

summary(apto4$areaconst)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    40.0    60.0    70.0    75.2    83.0   198.0

Ahora se presenta la tabla de frecuencias para 5 clases de 40 \(m^2\) cada una:

breaks1=c(0, 40, 80, 120, 160, 200)
precio1=cut(apto4$areaconst, breaks1)
summarytools::freq(precio1)
## Frequencies  
## precio1  
## Type: Factor  
## 
##                   Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## --------------- ------ --------- -------------- --------- --------------
##          (0,40]      1     0.074          0.074     0.074          0.074
##         (40,80]    976    71.765         71.838    71.765         71.838
##        (80,120]    321    23.603         95.441    23.603         95.441
##       (120,160]     52     3.824         99.265     3.824         99.265
##       (160,200]     10     0.735        100.000     0.735        100.000
##            <NA>      0                              0.000        100.000
##           Total   1360   100.000        100.000   100.000        100.000

Por último se presenta el histograma de frecuencias con su curva de densidad, el gráfico Q-Q Plot y un boxplot para la variable aleatoria areaconst:

par(cex=0.5, cex.axis=0.5, cex.lab=0.5, cex.main=0.5, cex.sub=0.5, mfrow=c(1, 3), mai=c(0.5, 0.5, 0.5, 0.5))

hist(apto4$areaconst, prob=TRUE, xlab="Area m2", main="Histograma y Densidad del Area m2")
lines(density(apto4$areaconst), col="green", lwd=3)

qqnorm(apto4$areaconst, main="Q-Q Plot Area m2", xlab=" ", ylab=" "); qqline(apto4$areaconst, col="orange")

boxplot(apto4$areaconst, main="Boxplot Area m2")

En el histograma se observa que la distribución de la variable areaconst presenta una asimetría positiva porque se nota un alaragamiento del lado de los valores que son mayores al promedio, de la curva de densidad se observa que la distribución tiene dos picos. En el gráfico Q-Q Plot se puede apreciar una clara desviación de la línea recta, lo que indica que la distribución de la variable areaconst probablemente no sigue una distribución normal. El boxplot confirma la asimetría, el valor de la mediana (70) está por debajo del promedio (75.2) y hay varios datos atípicos altos que se encuentran por encima de 1.5 veces el rango intercuartílico del límite superior de la caja (percentil 75).

2. Análisis exploratorio bivariado de datos enfocado en la relación de la variable respuesta precio en función de la variable predictora área construida.

Para iniciar con el análisis vibariado se traza un gráfico de dispersión teniendo en cuenta que la variable de respuesta Y es el precio y la variable predictora X es el área construida:

plot(x=apto4$areaconst, y=apto4$preciom, main="Gráfico de Dispersión Precio ~ Area", xlab="Area m2", ylab="Precio x m2 miles de COP")

Para complementar el gráfico se calcula el coeficiente de correlación de Pearson como una medida de la magnitud de la asociación lineal entre las dos variables. Indica si los puntos tienen una tendencia a disponerse alineadamente y es útil para determinar si hay relación lineal entre las variables:

cor(apto4$areaconst, apto4$preciom)
## [1] 0.7431338

De acuerdo a la dispersión de los puntos observada en el gráfico y al valor del coeficiente de correlación obtenido de 0.74 se concluye que existe una relación lineal positiva débil entre las variables precio y área construida, es decir, que a medida que aumente el área construida se esperra que aumente también el precio.

3.1. Modelo de regresión lineal simple entre precio y área construida.

La ecuación del modelo viene dada de la siguiente forma:

\[Y=\beta_{0}+\beta_{1}X+\epsilon\]

Donde:

\(Y\): representa a la variable dependiente o respuesta, en este caso, el precio por \(m^2\) en miles de COP.

\(X\): representa a la variable independiente, en este caso, el área construida en \(m^2\).

\(\epsilon\): es el error, variable aleatoria desconocida y que representa todas aquellas variables que no están incluidas en el modelo.

\(\beta_{0}\): coeficiente a estimar, denominado intercepto.

\(\beta_{1}\): coeficiente a estimar, denominado pendiente.

\(\beta_{0}\) y \(\beta_{1}\) conforman los parámetros a estimar para definir la recta:

\[\hat{y}_{i}=\hat\beta_{0}+\hat\beta_{1}x_{i}\]

De esta forma, el objetivo del modelo es predecir el precio \((Y)\) del \(m^2\) de un apartamento a partir del área construida \((X)\). Para esto es necesario estimar los parámetros \(\beta_{0}\) y \(\beta_{1}\) de la siguiente forma:

modelo=lm(formula = preciom ~ areaconst, data = apto4)
summary(modelo)
## 
## Call:
## lm(formula = preciom ~ areaconst, data = apto4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -228.412  -23.589   -4.653   25.674  207.336 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 36.62292    4.20667   8.706   <2e-16 ***
## areaconst    2.19868    0.05372  40.926   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43.21 on 1358 degrees of freedom
## Multiple R-squared:  0.5522, Adjusted R-squared:  0.5519 
## F-statistic:  1675 on 1 and 1358 DF,  p-value: < 2.2e-16

3.2. Interpretación de los coeficientes del modelo

La estimación de los parámetros \(\beta_{0}\) y \(\beta_{1}\) y la ecuación que representa el modelo lineal para relacionar el precio por \(m^2\) de un apartamento estrato 4 en función del área construida es:

\[\hat{y}=36.62 + 2.20x\]

El valor de \(36.62\) o \(\beta_{0}\) representa el punto de corte en el eje Y de la recta de regresión por mínimos cuadrados y el valor \(2.20\) o \(\beta_{1}\) representa la pendiente o la razón de cambio de la variable \((Y)\) con respecto a la variable \((X)\), es decir, una constante del modelo lineal que permite valorar el efecto generado sobre el precio ante cambios en el área construida.

A continuación se presenta la recta de regresión ajustada a los puntos por el método de mínimos cuadrados:

plot(x=apto4$areaconst, y=apto4$preciom, main="Gráfico de Dispersión Precio ~ Area", xlab="Area m2", ylab="Precio x m2")
abline(modelo, col="red", lwd=1)

4. Intervalo de confianza del 95% para el coeficiente \(\beta_{1}\).

Los intervalos de confianza para los parámetros se obtienen con el comando confint, con el argumento parm se selecciona la variable (areaconst) y con level se puede escoger el nivel de confianza, por defecto 0.95:

confint(modelo, parm="areaconst",level=0.95)
##              2.5 %   97.5 %
## areaconst 2.093294 2.304074

El intervalo de confianza del 95% para el coeficiente \(\beta_{1}\) es:

\[2.09 \leq \beta_{1} \leq 2.30\]

Para concluir si \(\beta_{1}\) es igual o diferente de 0, o lo que es lo mismo, para definir si la variable área construida es significativa para el modelo, se recurre a una prueba de hipótesis t. Para esto, a partir de la muestra disponible se obtiene un estadístico de prueba con distribución t-Student con v=n-2 (1358) grados de libertad:

\[H_{0}: \beta_{1}=0, H_{a}: \beta_{1}\neq 0\]

El resultado de la prueba de hipótesis planteada ya está disponible en el modelo de regresión presentado en el numeral 3.1. El estadístico t es 40.926 y el \(p-valor\) es 2e-16, o sea, muy pequeño y mucho menor al 5%, por tal razón se rechaza la hipótesis nula y se concluye que el coeficiente \(\beta_{1}\) es diferente de 0 y que la variable área construida si es estadísticamente significativa para explicar el comportamiento del precio en el modelo planteado.

5. Calcule e interprete el indicador de bondad de ajuste \(R^2\).

El indicador de bondad de ajuste o también llamado coeficiente determinación \(R^2\) representa la proporción de la variablidad de la variable dependiente atribuible a la variabilidad de la variable independiente, o dicho de otra forma, refleja la bondad de ajuste de un modelo a la variable que pretende explicar.

El resultado del \(R^2\) se obtiene del resumen del modelo de regresión presentado en el numeral 3.1 y es \(R^2=0.55\), de esto se puede deducir que el 55% del cambio en el precio está explicado por la variable área construida en el modelo lineal planteado.

El \(R^2\) también se puede obtener elevando al cuadrado el coeficiente de correlación de Pearson.

R2m=cor(apto4$areaconst, apto4$preciom)^2
R2m
## [1] 0.5522478

6.1. ¿Cuál sería el precio promedio estimado para un apartamento de \(110 m^2\) ?

Para estimar el precio promedio de un apartamento de \(110 m^2\) se utiliza la ecuación del modelo planteado en el numeral 3.2, reemplazando el valor de \(x\) por el área de interés:

\[\hat{y}=36.62292 + 2.19868*110=278.47\]

De acuerdo al modelo lineal planteado, se estima que el precio promedio del \(m^2\) de un apartamento estrato 4 de \(110 m^2\) es de 278.47 miles de COP.

Ahora se presenta un intervalo de confianza del 95% para la estimación del precio de un apartamento estrato 4 de \(110 m^2\):

predict(modelo, data.frame(areaconst=110), interval="confidence", level=0.95)
##        fit      lwr      upr
## 1 278.4782 274.1502 282.8061
predict(modelo, data.frame(areaconst=110), interval="prediction", level=0.95)
##        fit     lwr      upr
## 1 278.4782 193.605 363.3513

6.2. ¿Se considera que un apartamento en la misma zona de \(110 m^2\) con un precio de 200 miles de COP por metro cuadrado es una oferta atractiva? ¿Qué consideraciones adicionales se deben tener en cuenta?

Un apartamento de las mismas condiciones si es una oferta atractiva para comprar por 200 miles de COP porque el precio estimiado por el modelo es de 278.47 miles de COP. Pero se debe tener en cuenta que la bondad de ajuste del modelo, medido por el coeficiente de determinación \(R^2\) solo es del 55%, que es un ajuste relativamente bajo, para apoyar la toma de la decisión se puede tener en cuenta el límite inferior del intervalo de confianza del 95% para la proyección, el cual es 193.6, de esta forma se concluye que la oferta podría no resultar atractiva y, para mejorar la precisión del modelo se debería buscar otras variables para explicar mejor el comportamiento del precio como: la disponibilidad de parqueadero, el número de habitaciones, el número de baños, la antiguedad de la construcción, etre otras.

7. Validación de los supuestos del modelo.

Al realizar inferencia estadística como intervalos de confianza y pruebas de hipótesis sobre las estimaciones, es necesario validar los siguientes supuestos:

Primero: Normalidad: los errores siguen una distribución normal con media 0 y varianza \(\sigma^2\).

Segundo: Homocedasticidad: La varianza alrededor de la línea de regresión, para cualquier valor es constante.Un modelo predictivo presenta homocedasticidad cuando la varianza del error condicional a las variables explicativas es constante a lo largo de las observaciones.

Tercero: Linealidad: La relación entre la variable dependiente y las variables independientes y el error es lineal.

Cuarto: No autocorrelación: Los errores que corresponden a diferentes observaciones o diferentes tiempos deben ser independientes unos de otros, es decir, \(Cov[\epsilon_i,\epsilon_j]=0\)

Quinto: Outliers: Aunque no es un supuesto formal, se espera que los datos no contengan registros atípicos que generan sesgos en los estimadores de los coeficientes.

7.1. Validación de la Normalidad de los errores:

Se valida la normalidad de los errores a través del Test Shapiro-Wilk:

\[H_{0}: \epsilon\sim Normal, H_{a}: \epsilon-no\sim Normal\]

shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.96464, p-value < 2.2e-16

Dado que el \(p-valor\) obtenido en el test de normalidad es menor al nivel de significancia del 5% se rechaza la hipótesis nula y se concluye que los errores no se distribuyen normalmente.

7.2. Validación de la homocedasticidad o varianza constante.

Se valida la hocedasticidad a través del Test Breusch-Pagan:

\[H_{0}: V[\epsilon_{i}]=\sigma^2, H_{a}: V[\epsilon_{i}]\neq\sigma^2\]

lmtest::bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 303.81, df = 1, p-value < 2.2e-16

El \(p-valor\) es muy pequeño, casi cero, entonces se rechaza la hipótesis nula y se conluye que la varianza de los errores no es constante a lo largo de las observaciones.

7.3. Validación de la linealidad entre la variable independiente y la variable dependiente.

Como se presentó en el numeral 2, de acuerdo a la dispersión de los puntos observada en el gráfico y al valor del coeficiente de correlación obtenido de 0.74 se concluye que existe una relación lineal positiva débil entre las variables precio y área construida.

7.4. Validación de la no autocorrelación de errores.

Se valida la no autocorrelación de errores a través del Test Durbin-Watson:

\[H_{0}: V[\epsilon_{i},\epsilon_{j}]=0, V[\epsilon_{i},\epsilon_{j}]\neq0\]

lmtest::dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.4381, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

El \(p-valor\) es muy pequeño, casi cero, entonces se rechaza la hipótesis nula y se conluye que los errores presentan una autocorrelación mayor a cero.

7.5. Validación de la no presencia de outliers.

En las dos variables, preciom y areacosnt se encuentran algunos datos atípicos que pueden generar sesgos en la estimación de los coeficientes.

par(cex=0.5, cex.axis=0.5, cex.lab=0.5, cex.main=0.5, cex.sub=0.5, mfrow=c(1, 2), mai=c(0.5, 0.5, 0.5, 0.5))

boxplot(apto4$preciom, main="Boxplot Precio x m2")

boxplot(apto4$areaconst, main="Boxplot Area m2")

Al complementar estas evidencias con el gráfico de dispersión de las dos variables (Precio ~ Area) se observa que para áreas grandes, mayores a 120 \(m^2\), es más notoría la desviación con respecto a la recta de regresión del modelo lineal.

8. Transformación de variables

Dado que el ajuste del modelo lineal planteado es relativamente bajo, coeficiente de determinación \(R^2\) igual a 55%, y no se cumplen los supuestos del modelo lineal, a continuación se prueban unas transformaciones en las variables para verificar inicialmente si es posible mejorar el ajuste y después la validación de los supuestos. Se prueban tres modelos alternativos: m2 transformación de la variable \(X\) a logarítmica, m3 transformación de la variable respuesta \(Y\) a logarítmica y m4 transformación de las variables \(X\) y \(Y\) a logarítmicas.

m1=lm(formula = preciom ~ areaconst, data = apto4)  # Lin - Lin
m2=lm(formula = preciom ~ log(areaconst), data = apto4)  # Lin - Log
m3=lm(formula = log(preciom) ~ areaconst, data = apto4)  # Log - Lin
m4=lm(formula = log(preciom) ~ log(areaconst), data = apto4)  # Log - Log

9. Comparación del ajuste del modelo inicialmente planteado con el ajuste de los modelos alternativos.

#install.packages("stargazer")
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
stargazer(m1, m2, m3, m4, type="text", df=FALSE)
## 
## =======================================================================
##                                     Dependent variable:                
##                     ---------------------------------------------------
##                              preciom                log(preciom)       
##                         (1)          (2)          (3)          (4)     
## -----------------------------------------------------------------------
## areaconst             2.199***                  0.010***               
##                       (0.054)                   (0.0003)               
##                                                                        
## log(areaconst)                    194.944***                 0.887***  
##                                    (4.518)                   (0.021)   
##                                                                        
## Constant             36.623***   -633.526***    4.534***     1.463***  
##                       (4.207)      (19.397)     (0.020)      (0.089)   
##                                                                        
## -----------------------------------------------------------------------
## Observations           1,360        1,360        1,360        1,360    
## R2                     0.552        0.578        0.518        0.577    
## Adjusted R2            0.552        0.578        0.518        0.576    
## Residual Std. Error    43.209       41.937       0.204        0.191    
## F Statistic         1,674.927*** 1,861.648*** 1,460.654*** 1,850.326***
## =======================================================================
## Note:                                       *p<0.1; **p<0.05; ***p<0.01

El ajuste del modelo inicial es del 55%, como se observa en la anterior tabla, el modelo m2 mejora en algo el ajuste con un coeficiente de determinción \(R^2\) del 58%.

10. Validación de los supuestos correspondientes al modelo m2.

summary(m2)
## 
## Call:
## lm(formula = preciom ~ log(areaconst), data = apto4)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -195.847  -21.239   -1.573   22.108  261.907 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -633.526     19.397  -32.66   <2e-16 ***
## log(areaconst)  194.944      4.518   43.15   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 41.94 on 1358 degrees of freedom
## Multiple R-squared:  0.5782, Adjusted R-squared:  0.5779 
## F-statistic:  1862 on 1 and 1358 DF,  p-value: < 2.2e-16

Normalidad

shapiro.test(m2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  m2$residuals
## W = 0.95777, p-value < 2.2e-16

Homocedasticidad

lmtest::bptest(m2)
## 
##  studentized Breusch-Pagan test
## 
## data:  m2
## BP = 217.76, df = 1, p-value < 2.2e-16

Linealidad

cor(apto4$preciom, log(apto4$areaconst))
## [1] 0.7604044

No Autocorrelación

lmtest::dwtest(m2)
## 
##  Durbin-Watson test
## 
## data:  m2
## DW = 1.4796, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

De los resultados anteriores se conlcuye que el modelo m2, en el cual se transformó la variable explicativa \(X\) a logarítmica, aunque se mejora un poco el ajuste, tampoco se cumplen los supuestos de: normalidad, homocedasticidad y no autocorrelación, y tampoco mejora la linealidad con respecto al modelo inicial al pasar, el coeficiente de correlación de 0.74 a 0.76.

11. Limitación de áreas grandes en el conjunto de datos.

En el gráfico de dispersión precio~área se observa que para áreas grandes, mayores a 120 \(m^2\), aumenta la desviación de los datos a la recta de regresón. Entonces, por último se prueba, un modelo m5 limitando la muestra a apartamentos estrato 4 con área construida menor a 120 \(m^2\).

ap4120=apto4[apto4$areaconst<120, ]

head(ap4120)
## # A tibble: 6 × 3
##   zona       preciom areaconst
##   <fct>        <dbl>     <dbl>
## 1 Zona Norte     220        52
## 2 Zona Norte     320       108
## 3 Zona Sur       290        96
## 4 Zona Norte     220        82
## 5 Zona Norte     220        75
## 6 Zona Norte     162        60
m5=lm(formula = preciom ~ areaconst, data = ap4120)

summary(m5)
## 
## Call:
## lm(formula = preciom ~ areaconst, data = ap4120)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -168.665  -19.481   -2.152   22.887  164.367 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   5.5677     5.0569   1.101    0.271    
## areaconst     2.6480     0.0691  38.321   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 37.47 on 1287 degrees of freedom
## Multiple R-squared:  0.5329, Adjusted R-squared:  0.5326 
## F-statistic:  1468 on 1 and 1287 DF,  p-value: < 2.2e-16

Normalidad

shapiro.test(m5$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  m5$residuals
## W = 0.98342, p-value = 5.567e-11

En este último modelo m5 se observa que el ajuste no solo no mejora, sino que empeora, con respecto al modelo inicial, al pasar del 55% al 53% y tampoco se cumple el supuesto de normalidad en la distribución de los errores.