INTRODUCCIÓN

En un mercado inmobiliario en constante evolución, la precisión en la valoración de propiedades es crucial para agentes y empresas del sector. La complejidad de los factores que influyen en el precio de una propiedad, como ubicación, características físicas, tendencias del mercado y demanda local, demanda enfoques analíticos avanzados para su comprensión. En este contexto, la ciencia de datos emerge como una herramienta fundamental. La capacidad de analizar grandes volúmenes de datos de manera sistemática y extraer patrones significativos permite a las empresas inmobiliarias como A&C obtener insights precisos y relevantes.

Con el objetivo de mejorar su capacidad predictiva y tomar decisiones fundamentadas, la inmobiliaria A&C ha recurrido a la ciencia de datos para construir un modelo que les permita estimar con mayor exactitud los precios de los inmuebles que manejan.

Problema.

Con base en los datos de ofertas de vivienda descargadas del portal Fincaraiz para #Vivienda# de estrato 4 con área construida menor a \(200 m²\) (vivienda4.RDS) la inmobiliaria A&C requiere el apoyo de un cientifico de datos en la construcción de un modelo que lo oriente sobre los precios de inmuebles.

Con este propósito el equipo de asesores a diseñado los siguientes pasos para obtener un modelo y así poder a futuro determinar los precios de los inmuebles a negociar.

Datos

De acuerdo a lo suministrado por la inmobiliaria A&C se descarga la siguiente base de datos:

chooseCRANmirror(ind=1) 
install.packages("devtools") # solo una vez
## Installing package into 'C:/Users/ASUS/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'devtools' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\ASUS\AppData\Local\Temp\RtmpOG4WVu\downloaded_packages
devtools::install_github("dgonxalex80/paqueteMETODOS") 
## Skipping install of 'paqueteMETODOS' from a github remote, the SHA1 (69a119e2) has not changed since last install.
##   Use `force = TRUE` to force installation
install.packages("lmtest")
## Installing package into 'C:/Users/ASUS/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'lmtest' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'lmtest'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\ASUS\AppData\Local\R\win-library\4.3\00LOCK\lmtest\libs\x64\lmtest.dll
## a C:\Users\ASUS\AppData\Local\R\win-library\4.3\lmtest\libs\x64\lmtest.dll:
## Permission denied
## Warning: restored 'lmtest'
## 
## The downloaded binary packages are in
##  C:\Users\ASUS\AppData\Local\Temp\RtmpOG4WVu\downloaded_packages
install.packages("car")
## Installing package into 'C:/Users/ASUS/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'car' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\ASUS\AppData\Local\Temp\RtmpOG4WVu\downloaded_packages
library(car)
## Loading required package: carData
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(paqueteMETODOS)
## Loading required package: cubature
## Loading required package: dplyr
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
## 
##     recode
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Loading required package: flextable
## Loading required package: ggplot2
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
## Loading required package: psych
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
## The following object is masked from 'package:car':
## 
##     logit
## Loading required package: summarytools
## Loading required package: randtests
## Loading required package: rapportools
## 
## Attaching package: 'rapportools'
## The following objects are masked from 'package:summarytools':
## 
##     label, label<-
## The following object is masked from 'package:dplyr':
## 
##     n
## The following objects are masked from 'package:stats':
## 
##     IQR, median, sd, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, range, sum
library(mice)
## 
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
## 
##     filter
## The following objects are masked from 'package:base':
## 
##     cbind, rbind
library(naniar)
attach(vivienda_faltantes)
library(dplyr)
library(ggmap)
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
##   Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
##   OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.
library(fdth)
## 
## Attaching package: 'fdth'
## The following objects are masked from 'package:rapportools':
## 
##     sd, var
## The following objects are masked from 'package:stats':
## 
##     sd, var
library(formattable)
## 
## Attaching package: 'formattable'
## The following object is masked from 'package:rapportools':
## 
##     percent
## The following object is masked from 'package:MASS':
## 
##     area
## The following object is masked from 'package:flextable':
## 
##     style
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following objects are masked from 'package:flextable':
## 
##     as_image, footnote
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(summarytools)
library(ggplot2)

data(vivienda4)
vivienda4

Dataset a explorar

Se crea el dataset con las dos variables que se van a explorar.

str(vivienda4)
## spc_tbl_ [1,706 × 5] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ zona     : Factor w/ 5 levels "Zona Centro",..: 2 2 2 5 2 2 2 2 2 2 ...
##  $ estrato  : Factor w/ 4 levels "3","4","5","6": 2 2 2 2 2 2 2 2 2 2 ...
##  $ preciom  : num [1:1706] 232 272 255 258 250 ...
##  $ areaconst: num [1:1706] 52 160 108 96 82 117 75 60 84 117 ...
##  $ tipo     : Factor w/ 2 levels "Apartamento",..: 1 2 1 1 1 2 1 1 1 1 ...
datos<- vivienda4[, -c(1, 2,5)]
datos

Revisión de datos faltantes

faltantes <- colSums(is.na(datos)) %>%
                 as.data.frame() 

faltantes

Análisis exploratorio de los datos.

A continuación se realiza un análisis exploratorio de las variables precio de vivienda (millones de pesos COP) y área de la vivienda (metros cuadrados).

Análisis variable PRECIO

summary(datos$preciom)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   207.4   230.7   238.8   243.7   251.5   309.7
desviacion_estandar <- sd(datos$preciom)
desviacion_estandar
## [1] 19.55537
coeficiente_de_variación<- (desviacion_estandar/mean(datos$preciom))*100
coeficiente_de_variación
## [1] 8.024262

Diagramas

par(mfrow = c(1, 3))  

# Histograma
hist(datos$preciom, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Histograma variable precio")

# Diagrama de caja (Boxplot)
boxplot((datos$preciom), main = "Diagrama de caja variable Precio")

plot(density(datos$preciom), main = "Densidad de la variable precio", xlab = "Valores", ylab = "Densidad")

Tabla de frecuencia

frec_precio<- fdt(datos$preciom,breaks="Sturges", na.rm = TRUE) 
frec_precio
##     Class limits   f   rf rf(%)   cf  cf(%)
##  [205.33,214.29)  11 0.01  0.64   11   0.64
##  [214.29,223.24) 133 0.08  7.80  144   8.44
##   [223.24,232.2) 365 0.21 21.40  509  29.84
##   [232.2,241.15) 467 0.27 27.37  976  57.21
##  [241.15,250.11) 276 0.16 16.18 1252  73.39
##  [250.11,259.06) 168 0.10  9.85 1420  83.24
##  [259.06,268.02)  85 0.05  4.98 1505  88.22
##  [268.02,276.98)  51 0.03  2.99 1556  91.21
##  [276.98,285.93)  50 0.03  2.93 1606  94.14
##  [285.93,294.89)  42 0.02  2.46 1648  96.60
##  [294.89,303.84)  46 0.03  2.70 1694  99.30
##   [303.84,312.8)  12 0.01  0.70 1706 100.00

De acuerdo con los resultados se concluye:

  • El promedio del precio de los inmuebles es de 243.7 millones de pesos COP.

  • El precio más bajo observado en el conjunto de datos es de 207.4 millones de pesos COP.

  • El 50% de los precios están por debajo de 238.8 millones de pesos COP.

  • El precio más alto observado en el conjunto de datos es de 309.7 millones de pesos COP.

  • Se observa un leve sesgo positivo, dado por algunos datos atípicos de valores altos.

Análisis variable ÁREA

summary(datos$areaconst)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   40.00   60.00   75.00   87.63   98.00  200.00
desviacion_estandar1 <- sd(datos$areaconst)
desviacion_estandar1
## [1] 36.34651
coeficiente_de_variación1<- (desviacion_estandar1/mean(datos$areaconst))*100
coeficiente_de_variación1
## [1] 41.47746

Diagramas

par(mfrow = c(1, 3))  

# Histograma
hist(datos$areaconst, col = "skyblue", xlab = "Valores", ylab = "Frecuencia", main = "Histograma variable área")

# Diagrama de caja (Boxplot)
boxplot((datos$areaconst), main = "Diagrama de caja variable área")

plot(density(datos$areaconst), main = "Densidad de la variable área", xlab = "Valores", ylab = "Densidad")

Tabla de frecuencia

frec_area<- fdt(datos$areaconst,breaks="Sturges", na.rm = TRUE) 
frec_area
##  Class limits   f   rf rf(%)   cf  cf(%)
##   [39.6,53.1)  80 0.05  4.69   80   4.69
##   [53.1,66.7) 514 0.30 30.13  594  34.82
##   [66.7,80.2) 412 0.24 24.15 1006  58.97
##   [80.2,93.7) 214 0.13 12.54 1220  71.51
##    [93.7,107) 129 0.08  7.56 1349  79.07
##     [107,121) 100 0.06  5.86 1449  84.94
##     [121,134)  54 0.03  3.17 1503  88.10
##     [134,148)  40 0.02  2.34 1543  90.45
##     [148,161)  43 0.03  2.52 1586  92.97
##     [161,175)  27 0.02  1.58 1613  94.55
##     [175,188)  36 0.02  2.11 1649  96.66
##     [188,202)  57 0.03  3.34 1706 100.00

De acuerdo con los resultados se concluye:

  • El promedio del área de los inmuebles es \(87.63 m²\) .

  • El inmueble con el área más pequeña observada en el conjunto de datos tiene \(40 m²\)

  • El 50% de los inmuebles tienen un área menor a \(75 m²\).

  • El inmueble con el área más alta observada en el conjunto de datos tiene \(200 m²\) .

  • Se observa un sesgo positivo, dado por valores de datos atípicos de inmuebles de áreas altas.

Análisis bivariado de datos

Realice un análisis exploratorio bivariado de datos, enfocado en la relación entre la variable respuesta (precio) en función de la variable predictora (área construida) - incluir gráficos e indicadores apropiados interpretados.

Gráfico de dispersión

plot(datos$areaconst , datos$preciom , 
     ylab = "Precio por metro cuadrado en millones de pesos",  
     xlab = "Área construida en metros cuadrados",            
     main = "Gráfico de dispersión",      # Título del gráfico
     col = "blue",                        
     pch = 16)                            

Se observa una posible relación lineal entre las variables, sin embargo, debemos verificar esta hipótesis con el coeficiente de correlación.

Coeficiente de correlación de Pearson

correlacion <- cor(datos$areaconst , datos$preciom, method = "pearson")
correlacion
## [1] 0.9309803

El coeficiente de correlación de 0.930980 indica una fuerte relación lineal positiva entre las dos variables, lo que significa que tienden a moverse juntas en la misma dirección con una correspondencia casi lineal.

cor.test(datos$areaconst,datos$preciom, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  datos$areaconst and datos$preciom
## t = 105.27, df = 1704, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9243628 0.9370377
## sample estimates:
##       cor 
## 0.9309803

La prueba de hipótesis, aplicando el estadístico de prueba con distribución t-Studen con \(v=n−2\) grados de libertad, sugiere que la correlación observada es estadísticamente significativa.

Modelo de regresión lineal simple

Estimación del modelo

Estime el modelo de regresión lineal simple entre \(precio=f(area)+ε\)

modelo <- lm(datos$preciom ~ datos$areaconst, data = datos)
modelo
## 
## Call:
## lm(formula = datos$preciom ~ datos$areaconst, data = datos)
## 
## Coefficients:
##     (Intercept)  datos$areaconst  
##        199.8101           0.5009
summary(modelo)
## 
## Call:
## lm(formula = datos$preciom ~ datos$areaconst, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.5997  -5.0198  -0.0056   4.6648  24.4010 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     1.998e+02  4.514e-01   442.7   <2e-16 ***
## datos$areaconst 5.009e-01  4.758e-03   105.3   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.141 on 1704 degrees of freedom
## Multiple R-squared:  0.8667, Adjusted R-squared:  0.8666 
## F-statistic: 1.108e+04 on 1 and 1704 DF,  p-value: < 2.2e-16
plot(datos$areaconst, datos$preciom, xlab='Área', ylab='Precio')
abline(modelo, col = "red")

Interpretación de los coeficientes y del coeficiente de determinación \(R^2\)

Interprete los coeficientes del modelo \(\beta_0\), \(\beta_1\) en caso de ser correcto. Calcule e interprete el indicador de bondad \(R^2\).

El modelo de regresión lineal que satisface los resultados proporcionados es el siguiente:

\[ \text{preciom} = 199.8 + 0.5019 \times \text{areaconst} + \epsilon \]

Donde:

  • \(\text{preciom}\) es el precio por metro cuadrado del inmueble.

  • \(\text{areaconst}\) es el área construida del inmueble.

  • \(\beta_0\) = \(199.8\) es el coeficiente estimado de la intersección. Aunque este valor no siempre tiene una interpretación, se puede deciar que matemáticamente representa el precio base de un inmueble cuando el área construida es cero.

  • \(\beta_1\) = \(0.5019\) es el coeficiente estimado de \(\text{areaconst}\), que representa el cambio esperado en el precio por cada unidad adicional de área construida del inmueble.

  • \(\epsilon\) es el término de error, que representa la variabilidad no explicada por el modelo.

El modelo fue ajustado utilizando el método de mínimos cuadrados ordinarios (MCO), y los resultados del ajuste del modelo se muestran a continuación:

  • Los coeficientes estimados son estadísticamente significativos, ya que tienen valores de \(p\)-value prácticamente nulos (menores que \(2 \times 10^{-16}\)).

  • El coeficiente de determinación \(R^2\) es \(0.8667\), lo que significa que aproximadamente el \(86.67\%\) de la variabilidad en el precio por metro cuadrado del inmueble puede ser explicada por el modelo de regresión lineal ajustado.

  • El estadístico F es \(1.108 \times 10^4\), con un \(p\)-value prácticamente nulo (menor que \(2.2 \times 10^{-16}\)), lo que indica que el modelo en su conjunto es estadísticamente significativo.

En resumen, el modelo de regresión lineal proporciona una buena ajuste a los datos y sugiere que el precio por metro cuadrado del inmueble aumenta en promedio \(0.5019\) unidades por cada unidad adicional de área construida del inmueble.

Si llamos \(p\) a la variable precio de vivienda (millones de pesos COP) y \(x\) a la variable área de la vivienda (metros cuadrados), el modelo lineal que relaciona estas variables, sin tener en cuenta el error sería: \[p(x)= 0.5009x + 199.8101\].

Intervalo de confianza (95%).

confint(modelo)
##                       2.5 %      97.5 %
## (Intercept)     198.9248215 200.6954749
## datos$areaconst   0.4915592   0.5102243

Esto indica que el precio base de un inmueble se estima con un 95% de confianza que esté entre 198.92 y 200.70. y que el cambio esperado en el precio por metro cuadrado de un inmueble por cada unidad adicional de área construida se estima con un 95% de confianza que esté entre 0.4916 y 0.5102.

Uso del modelo para predecir e interpretar precios de inmuebles

-¿Cuál sería el precio promedio estimado para un apartamento de 110 metros cuadrados?

Dado que el modelo lo reescribimos así:

\[p(x)= 0.5009x + 199.8101\]. entonces, en el caso de que un apartamento tenga el área de 110 metros cuadrados se estima el siguiente valor:

\[p(110)= 0.5009x(110) + 199.8101= 254.9091\].

El precio promedio estimado para un apartamento de 110 metros cuadrado sería de $254.9091 millones de pesos colombianos.

-¿Considera entonces con este resultado que un apartamento en la misma zona con 110 metros cuadrados en un precio de 200 millones sería una oferta atractiva?

De acuerdo con el resultado del modelo, la oferta de un apartamento en la misma zona con 110 metros cuadrados en un precio de 200 millones inicialmente es atractiva, dado su valor está casi 60 millones por debajo del valor promedio esperado por este tipo de inmueble.

-¿Qué consideraciones adicionales se deben tener?.

Es importante tener en cuenta otras consideraciones además del área y del precio,como el estado del apartamento, las comodidades,la distribución del espacio, etc.

Validación de supuestos.

Gráficas

Las siguientes gráficas permiten evaluar los supuestos para un modelo de regresión simple.

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

Al estimar un modelo de regresión lineal por medio de MCO, es esencial verificar el cumplimiento de los siguientes supuestos:

Normalidad

Los errores siguen una distribución normal \((ε_i∼N(0,\sigma^2))\)

shapiro.test(modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.99911, p-value = 0.5907

Dado que el p-valor obtenido es 0.5907, que es mayor que 0.05, no hay suficiente evidencia para rechazar la hipótesis nula. Por lo tanto, se concluye que los residuos del modelo siguen una distribución normal.

Homoscedasticidad

La varianza al rededor de la linea de regresión, para cualquier valor constante \((V[ε]=σ^2)\).

bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 0.089882, df = 1, p-value = 0.7643

Dado que el p-valor obtenido es 0.7643, no hay suficiente evidencia para rechazar la hipótesis nula de homocedasticidad. Por lo tanto, se concluye que los residuos del modelo son homocedásticos.

No autocorrelación

Los errores que corresponden a diferentes individuos o diferentes tiempo deben ser independintes unos de otros \((Cov[ε_i,ε_j]=0)\)

dwtest(modelo)
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 2.0651, p-value = 0.9092
## alternative hypothesis: true autocorrelation is greater than 0

Dado que el p-valor obtenido es 0.9092,no hay suficiente evidencia para rechazar la hipótesis nula de no autocorrelación. Se concluye que no hay evidencia de autocorrelación en los residuos del modelo.

Outliers

Aunque no es un supuesto formal, se espera que la data no contenga datos atípicos que generen sesgos en los estimadores de los coeficientes.

outlierTest(modelo)
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##       rstudent unadjusted p-value Bonferroni p
## 1072 -3.742151          0.0001885      0.32159

El resultado indica que, aunque el valor absoluto del residual estandarizado para la observación número 1072 es relativamente grande, después de ajustar para múltiples comparaciones utilizando el método de Bonferroni, no es significativamente diferente de cero.

Conclusión de los supuestos

Tras realizar los tests para validar los supuestos y analizar los gráficos, se puede afirmar que el modelo de regresión lineal cumple los supuestos de normalidad, homocedasticidad y falta de autocorrelación en los residuos. Además, no se observaron valores atípicos significativos.

Transformación de variables

El modelo de regresión lineal simple estimado para el problema planteado, cumplió con los supuestos y pruebas de significancia, sin embargo, en algunos casos el modelo lineal no es apropiado para ajustar los datos y por tanto no cumple los supuestos sobre los errores. Es necesario entonces probar otro tipo de modelo transformando las variables. A continuación se hará como ejercicio académico dos transformaciones de variables y se analizará el modelo.

Modelo Lin-Log

En este modelo se aplica la siguiente transformación \(Y_i=β_0+β_1log(X_i)+ε_i\)

modelo1 <- lm(datos$preciom ~ log(datos$areaconst), data = datos)
modelo1
## 
## Call:
## lm(formula = datos$preciom ~ log(datos$areaconst), data = datos)
## 
## Coefficients:
##          (Intercept)  log(datos$areaconst)  
##                22.52                 50.22
summary(modelo1)
## 
## Call:
## lm(formula = datos$preciom ~ log(datos$areaconst), data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -27.7898  -5.5579  -0.3407   5.4662  24.5710 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           22.5210     2.4272   9.279   <2e-16 ***
## log(datos$areaconst)  50.2241     0.5494  91.421   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.05 on 1704 degrees of freedom
## Multiple R-squared:  0.8306, Adjusted R-squared:  0.8305 
## F-statistic:  8358 on 1 and 1704 DF,  p-value: < 2.2e-16
plot(log(datos$areaconst), datos$preciom, xlab='log(Área)', ylab='Precio')
abline(modelo1, col = "red")

confint(modelo1)
##                         2.5 %   97.5 %
## (Intercept)          17.76042 27.28166
## log(datos$areaconst) 49.14654 51.30156
par(mfrow = c(2, 2))
plot(modelo1)

shapiro.test(modelo1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo1$residuals
## W = 0.99721, p-value = 0.003935
bptest(modelo1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo1
## BP = 18.932, df = 1, p-value = 1.354e-05
dwtest(modelo1)
## 
##  Durbin-Watson test
## 
## data:  modelo1
## DW = 1.8858, p-value = 0.008885
## alternative hypothesis: true autocorrelation is greater than 0

El modelo de regresión Lin-Log es: \[ \text{preciom} = 22.52 + 50.22 \times \text{Log(areaconst)} + \epsilon \]

Los resultados obtenidos para el modelo Lin-Log indican:

-La prueba de Breusch-Pagan (studentized Breusch-Pagan test) muestra un valor p muy bajo (p-value = 1.354e-05), lo que indica que hay evidencia de heterocedasticidad en los errores. Por lo tanto, el supuesto de homocedasticidad no se cumple.

-La prueba de Shapiro-Wilk muestra un valor p de 0.003935, lo que indica que hay evidencia de que los errores no siguen una distribución normal. Esto viola el supuesto de normalidad de los errores.

En conclusión, aunque el modelo tiene un alto coeficiente de determinación ajustado (R-cuadrado ajustado = 0.8305) y los coeficientes son significativos, los supuestos de homocedasticidad y normalidad de los errores no se cumplen. Por lo tanto,hay que tener cuidado con la interpretación y la inferencia que se haga de este modelo.

Modelo Log-Lin

En este modelo se aplica la siguiente transformación \(log(Y_i)=β_0+β_1X_i+ε_i\)

modelo2 <- lm(log(datos$preciom) ~ datos$areaconst, data = datos)
modelo2
## 
## Call:
## lm(formula = log(datos$preciom) ~ datos$areaconst, data = datos)
## 
## Coefficients:
##     (Intercept)  datos$areaconst  
##        5.321718         0.001954
summary(modelo2)
## 
## Call:
## lm(formula = log(datos$preciom) ~ datos$areaconst, data = datos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.104875 -0.020101  0.000153  0.018895  0.099297 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     5.322e+00  1.872e-03 2843.12   <2e-16 ***
## datos$areaconst 1.954e-03  1.973e-05   99.01   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02961 on 1704 degrees of freedom
## Multiple R-squared:  0.8519, Adjusted R-squared:  0.8518 
## F-statistic:  9803 on 1 and 1704 DF,  p-value: < 2.2e-16
plot(datos$areaconst, log(datos$preciom), xlab='(Área)', ylab='log(Precio)')
abline(modelo2, col = "red")

confint(modelo2)
##                       2.5 %      97.5 %
## (Intercept)     5.318047115 5.325389616
## datos$areaconst 0.001914896 0.001992296
par(mfrow = c(2, 2))
plot(modelo2)

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.99935, p-value = 0.8503
bptest(modelo2)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo2
## BP = 13.144, df = 1, p-value = 0.0002885
dwtest(modelo2)
## 
##  Durbin-Watson test
## 
## data:  modelo2
## DW = 2.0665, p-value = 0.9139
## alternative hypothesis: true autocorrelation is greater than 0

El modelo de regresión Log-Lin es: \[ \text{Log(preciom)} = 5.321718 + 0.001954 \times \text{areaconst} + \epsilon \] Los resultados obtenidos para el modelo Log-Lin indican:

-La prueba de Breusch-Pagan muestra un valor p muy bajo (p-value = 0.0002885), lo que indica que hay evidencia de heterocedasticidad en los errores, lo que sugiere que el supuesto de homocedasticidad no se cumple.

-La prueba de Shapiro-Wilk muestra un valor p de 0.8503, lo que indica que los errores podrían seguir una distribución normal.

En conclusión, el modelo tiene un alto coeficiente de determinación ajustado (R-cuadrado ajustado = 0.8518) y los coeficientes son significativos. Sin embargo, los supuestos de independencia de errores y homocedasticidad no se cumplen. Por lo tanto, aunque el modelo puede proporcionar una buena explicación de la relación entre las variables, es importante interpretar los resultados con precaución y considerar posibles ajustes o transformaciones adicionales para mejorar la validez del modelo.

Comparación de los modelos Lin-Lin, Lin-Log, Log-Lin.

Para abordar el problema planteado por la inmobiliaria A&C, se realizaron tres modelos de regresión lineal simple. En dos de estos modelos se aplicó una transformación a alguna de las variables. A continuación se presentan los resultados obtenidos:

Modelo 1 (Regresión Lin-Lin):

-Coeficientes: El precio base de un inmueble es $199.8 y aumenta en promedio $0.5019 por cada unidad adicional de área construida. R²: El 86.67% de la variabilidad en el precio por metro cuadrado del inmueble puede ser explicada por el modelo.

-Conclusiones: Este modelo proporciona un buen ajuste a los datos y cumple con los supuestos de normalidad, homocedasticidad y falta de autocorrelación en los residuos.

Modelo 2 (Regresión Lin-Log):

-Coeficientes: La relación entre las variables está expresada en términos logarítmicos, pero los supuestos de homocedasticidad y normalidad de los errores no se cumplen.

-R²: Aunque el coeficiente de determinación ajustado es alto (83.05%), se debe tener precaución al interpretar este modelo debido a los supuestos incumplidos.

Modelo 3 (Regresión Log-Lin):

-Coeficientes: La variable dependiente está en escala logarítmica, pero los supuestos de independencia de errores y homocedasticidad no se cumplen completamente.

-R²: A pesar de un alto coeficiente de determinación ajustado (85.18%), la validez del modelo puede ser cuestionada debido a los supuestos no cumplidos.

Conclusión

En conclusión, al comparar los tres modelos de regresión lineal simple se concluye que el Modelo 1 (Regresión Lin-Lin) parece ser el más confiable y válido entre los tres modelos, ya que proporciona un buen ajuste a los datos y cumple con los supuestos de regresión lineal. Los Modelos 2 y 3 presentan dificultades con respecto a algunos supuestos, lo que sugiere que podrían no ser tan robustos como el Modelo 1.

Informe

Informe para Directivos de la Inmobiliaria A&C

Asunto: Modelo de Predicción de Precios de Inmuebles

Estimados Directivos,

Con el objetivo de mejorar la toma de decisiones frente a las oportunidades de ventas de inmuebles , se ha realizado un análisis de los datos proporcionados por la inmobiliaria A&C. Basándonos en estos datos, hemos desarrollado y evaluado varios modelos de regresión para predecir los precios de los inmuebles que manejan.

Contexto del Problema

La inmobiliaria A&C ha buscado mejorar su capacidad predictiva para estimar los precios de los inmuebles que manejan. Para ello, se han utilizado datos de ofertas de vivienda descargadas del portal Fincaraiz para viviendas de estrato 4 con un área construida menor a 200 m².

Resultados y Recomendaciones

Análisis de Variables

Hemos realizado un análisis detallado de las variables relevantes, destacando los siguientes hallazgos:

  • Variable Precio: El precio promedio de los inmuebles es de 243.7 millones de pesos COP, con un rango que va desde 207.4 hasta 309.7 millones de pesos COP. Se observa un sesgo positivo debido a algunos datos atípicos de valores altos.

  • Variable Área: El área promedio de los inmuebles es de 87.63 m², con un rango que va desde 40 hasta 200 m². Se observa un sesgo positivo debido a valores atípicos de áreas altas.

Análisis Bivariado

Hemos identificado una fuerte relación lineal positiva entre el precio y el área de los inmuebles, indicando que tienden a moverse juntas en la misma dirección con una correspondencia casi lineal.

Modelo de Regresión Lineal Simple

Hemos ajustado un modelo de regresión lineal simple, donde el precio por metro cuadrado del inmueble se estima en función del área construida. Los resultados del modelo son los siguientes:

-Coeficientes significativos: El precio base de un inmueble se estima en 199.8 millones de pesos COP, y aumenta en promedio 0.5019 millones de pesos COP por cada unidad adicional de área construida.

-Buen ajuste del modelo: El coeficiente de determinación �2R2 es del 86.67%, lo que indica que aproximadamente el 86.67% de la variabilidad en el precio por metro cuadrado del inmueble puede ser explicada por el modelo.

Validación de Supuestos

Hemos realizado pruebas para validar los supuestos del modelo de regresión lineal, incluyendo normalidad, homocedasticidad, y falta de autocorrelación en los residuos. Los resultados indican que el modelo cumple con estos supuestos y no se observaron valores atípicos significativos.

Comparación de Modelos

Hemos evaluado tres modelos de regresión lineal simple, incluyendo el modelo de regresión Lin-Lin, Lin-Log, y Log-Lin. Concluimos que el Modelo 1 (Regresión Lin-Lin) es el más confiable y válido entre los tres, ya que proporciona un buen ajuste a los datos y cumple con los supuestos de regresión lineal.

Recomendación

Basados en los resultados obtenidos, recomendamos utilizar el Modelo 1 (Regresión Lin-Lin) como el modelo apropiado para predecir los precios de los inmuebles manejados por la inmobiliaria A&C. Este modelo ha demostrado ser confiable, explicando una gran parte de la variabilidad en los precios y cumpliendo con los supuestos de regresión lineal.

El modelo establece que el precio base de un inmueble se estima en 199.8 millones de pesos COP, y aumenta en promedio 0.5019 millones de pesos COP por cada unidad adicional de área construida.