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 apartamentos 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\RtmpkH7RxD\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\RtmpkH7RxD\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\RtmpkH7RxD\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_apartamentos <- subset(vivienda4, vivienda4$tipo == "Apartamento")
datos_apartamentos
datos<- datos_apartamentos[, -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   228.8   236.1   237.7   243.6   305.2
desviacion_estandar <- sd(datos$preciom)
desviacion_estandar
## [1] 13.28868
coeficiente_de_variación<- (desviacion_estandar/mean(datos$preciom))*100
coeficiente_de_variación
## [1] 5.590923

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.332,213.908)  11 0.01  0.81   11   0.81
##  [213.908,222.484) 106 0.08  7.78  117   8.58
##   [222.484,231.06) 314 0.23 23.04  431  31.62
##   [231.06,239.635) 425 0.31 31.18  856  62.80
##  [239.635,248.211) 282 0.21 20.69 1138  83.49
##  [248.211,256.787) 114 0.08  8.36 1252  91.86
##  [256.787,265.363)  63 0.05  4.62 1315  96.48
##  [265.363,273.939)  20 0.01  1.47 1335  97.95
##  [273.939,282.514)  15 0.01  1.10 1350  99.05
##   [282.514,291.09)   4 0.00  0.29 1354  99.34
##   [291.09,299.666)   5 0.00  0.37 1359  99.71
##  [299.666,308.242)   4 0.00  0.29 1363 100.00

De acuerdo con los resultados se concluye:

  • El promedio del precio de los inmuebles es de 237.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 236.1 millones de pesos COP.

  • El precio más alto observado en el conjunto de datos es de 305.2 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   70.00   75.48   84.00  200.00
desviacion_estandar1 <- sd(datos$areaconst)
desviacion_estandar1
## [1] 22.56461
coeficiente_de_variación1<- (desviacion_estandar1/mean(datos$areaconst))*100
coeficiente_de_variación1
## [1] 29.89547

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.06  5.87   80   5.87
##   [53.1,66.7) 505 0.37 37.05  585  42.92
##   [66.7,80.2) 392 0.29 28.76  977  71.68
##   [80.2,93.7) 183 0.13 13.43 1160  85.11
##    [93.7,107)  89 0.07  6.53 1249  91.64
##     [107,121)  49 0.04  3.60 1298  95.23
##     [121,134)  27 0.02  1.98 1325  97.21
##     [134,148)  14 0.01  1.03 1339  98.24
##     [148,161)  11 0.01  0.81 1350  99.05
##     [161,175)   2 0.00  0.15 1352  99.19
##     [175,188)   4 0.00  0.29 1356  99.49
##     [188,202)   7 0.01  0.51 1363 100.00

De acuerdo con los resultados se concluye:

  • El promedio del área de los inmuebles es \(75.48 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 \(70 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.8463271

El coeficiente de correlación de 0.8463271 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 = 58.616, df = 1361, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.8305531 0.8607445
## sample estimates:
##       cor 
## 0.8463271

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. Esta salida indica que hay una correlación positiva fuerte y significativa entre ‘areaconst’ y ‘preciom’ en tu conjunto de datos.

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  
##        200.0635           0.4984
summary(modelo)
## 
## Call:
## lm(formula = datos$preciom ~ datos$areaconst, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.5139  -5.0886  -0.0031   4.6406  24.3309 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.001e+02  6.698e-01  298.67   <2e-16 ***
## datos$areaconst 4.984e-01  8.503e-03   58.62   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.081 on 1361 degrees of freedom
## Multiple R-squared:  0.7163, Adjusted R-squared:  0.7161 
## F-statistic:  3436 on 1 and 1361 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} = 200.0635 + 0.4984 \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\) = \(200.0635\) es el coeficiente estimado de la intersección. Aunque este valor no siempre tiene una interpretación, se puede decia que matemáticamente representa el precio base de un inmueble cuando el área construida es cero.

  • \(\beta_1\) = \(0.4984\) 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.7161\), lo que significa que aproximadamente el \(71.61\%\) 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 \(3.436 \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.4984\) 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.4984x + 200.0635\].

Intervalo de confianza (95%).

confint(modelo)
##                       2.5 %     97.5 %
## (Intercept)     198.7494103 201.377500
## datos$areaconst   0.4817357   0.515097

Esto indica que el precio base de un inmueble se estima con un 95% de confianza que esté entre \(198.7494\) y \(201.3775\). 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.4817\) y \(0.5150\).

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.4984x + 200.0635\]. entonces, en el caso de que un apartamento tenga el área de 110 metros cuadrados se estima el siguiente valor:

\[p(110)= 0.4984(110) + 200.0635= 254.8875\].

El precio promedio estimado para un apartamento de 110 metros cuadrado sería de $254.8875 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)

Los gráficos permiten considerar que los errores tienen distribución normal , homocedasticidad y no autocorrelación. Sin embargo, se haran los test para corroborar esto.

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.99885, p-value = 0.5419

Dado que el p-valor obtenido es 0.5419, 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.83288, df = 1, p-value = 0.3614

Dado que el p-valor obtenido es 0.3614, 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.0204, p-value = 0.6435
## alternative hypothesis: true autocorrelation is greater than 0

Dado que el p-valor obtenido es 0.6435,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
## 820 -3.774253          0.0001674      0.22816

En este caso, el residuo estandarizado más grande es -3.774253 y su valor p sin ajustar es 0.0001674. Sin embargo, después de ajustar por el método de Bonferroni, el valor p es 0.22816, lo que indica que este residuo no es significativo después de corregir para múltiples comparaciones.

En resumen, este resultado sugiere que el residuo estandarizado más grande no es significativo después de corregir para múltiples pruebas utilizando el método de Bonferroni.

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)  
##                53.82                 42.88
summary(modelo1)
## 
## Call:
## lm(formula = datos$preciom ~ log(datos$areaconst), data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -22.9725  -5.4109  -0.1832   4.9141  24.1899 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           53.8202     3.4091   15.79   <2e-16 ***
## log(datos$areaconst)  42.8778     0.7936   54.03   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.496 on 1361 degrees of freedom
## Multiple R-squared:  0.682,  Adjusted R-squared:  0.6818 
## F-statistic:  2919 on 1 and 1361 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)          47.13252 60.50792
## log(datos$areaconst) 41.32092 44.43459
par(mfrow = c(2, 2))
plot(modelo1)

shapiro.test(modelo1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo1$residuals
## W = 0.9971, p-value = 0.01302
bptest(modelo1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo1
## BP = 14.481, df = 1, p-value = 0.0001416
dwtest(modelo1)
## 
##  Durbin-Watson test
## 
## data:  modelo1
## DW = 1.9464, p-value = 0.1587
## alternative hypothesis: true autocorrelation is greater than 0

El modelo de regresión Lin-Log es: \[ \text{preciom} = 53.82 + 42.88 \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 =0.0001416), 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.01302, 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 coeficiente de determinación ajustado (R-cuadrado ajustado = 0.6818) 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.317978         0.002007
summary(modelo2)
## 
## Call:
## lm(formula = log(datos$preciom) ~ datos$areaconst, data = datos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.104645 -0.020942  0.000593  0.019371  0.099110 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     5.318e+00  2.835e-03 1876.11   <2e-16 ***
## datos$areaconst 2.007e-03  3.598e-05   55.77   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02996 on 1361 degrees of freedom
## Multiple R-squared:  0.6956, Adjusted R-squared:  0.6954 
## F-statistic:  3110 on 1 and 1361 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.312417793 5.323539054
## datos$areaconst 0.001936073 0.002077248
par(mfrow = c(2, 2))
plot(modelo2)

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.99907, p-value = 0.7333
bptest(modelo2)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo2
## BP = 7.0095, df = 1, p-value = 0.008108
dwtest(modelo2)
## 
##  Durbin-Watson test
## 
## data:  modelo2
## DW = 2.0219, p-value = 0.6534
## alternative hypothesis: true autocorrelation is greater than 0

El modelo de regresión Log-Lin es: \[ \text{Log(preciom)} = 5.317978 + 0.002007 \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.008108), 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.7333, lo que indica que los errores podrían seguir una distribución normal.

En conclusión, el modelo tiene un buen coeficiente de determinación ajustado (R-cuadrado ajustado = 0.6954) 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 \(200.0635\) millones de pesos y aumenta en promedio \(0.4984\) millones de pesos por cada unidad adicional de área construida. R²: El 71.61% 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 no es malo (68.18%), 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 buen coeficiente de determinación ajustado (69.54%), 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 237.7 millones de pesos COP, con un rango que va desde 207.4 hasta 305.2 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 75.48 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 \(200.0635\) millones de pesos COP, y aumenta en promedio \(0.4984\) millones de pesos COP por cada unidad adicional de área construida.

-Buen ajuste del modelo: El coeficiente de determinación \(R^2\)es del \(0.7161\), lo que indica que aproximadamente el 71.61% 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 apartamento en estrato 4 , con área menor a 200 \(m^2\) se estima en \(200.0635\) millones de pesos COP, y aumenta su precio en promedio \(0.4984\) millones de pesos COP por cada unidad adicional de área construida.