Actividad 2

Carga del dataset “Viviendas”.

## # A tibble: 8,322 × 13
##       id zona   piso  estrato preciom areaconst parqueaderos banios habitaciones
##    <dbl> <chr>  <chr>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
##  1  1147 Zona … <NA>        3     250        70            1      3            6
##  2  1169 Zona … <NA>        3     320       120            1      2            3
##  3  1350 Zona … <NA>        3     350       220            2      2            4
##  4  5992 Zona … 02          4     400       280            3      5            3
##  5  1212 Zona … 01          5     260        90            1      2            3
##  6  1724 Zona … 01          5     240        87            1      3            3
##  7  2326 Zona … 01          4     220        52            2      2            3
##  8  4386 Zona … 01          5     310       137            2      3            4
##  9  1209 Zona … 02          5     320       150            2      4            6
## 10  1592 Zona … 02          5     780       380            2      3            3
## # ℹ 8,312 more rows
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

Se evidencia que la variable piso presenta algunas inconsistencia, por lo cual se procede a corregir su tipo y a reemplazar el piso con el valor 1 por defecto. También se reemplaza los valores de los NA de los parqueaderos por la cantidad de 0.

## # A tibble: 8,322 × 13
##       id zona    piso estrato preciom areaconst parqueaderos banios habitaciones
##    <dbl> <chr>  <dbl>   <dbl>   <dbl>     <dbl>        <dbl>  <dbl>        <dbl>
##  1  1147 Zona …     1       3     250        70            1      3            6
##  2  1169 Zona …     1       3     320       120            1      2            3
##  3  1350 Zona …     1       3     350       220            2      2            4
##  4  5992 Zona …     2       4     400       280            3      5            3
##  5  1212 Zona …     1       5     260        90            1      2            3
##  6  1724 Zona …     1       5     240        87            1      3            3
##  7  2326 Zona …     1       4     220        52            2      2            3
##  8  4386 Zona …     1       5     310       137            2      3            4
##  9  1209 Zona …     2       5     320       150            2      4            6
## 10  1592 Zona …     2       5     780       380            2      3            3
## # ℹ 8,312 more rows
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>

Se procede a generar la tabla de asociación para un análisis previo:

Se percibe una correlación moderada entre el precio de la vivienda, el área contruida y la cantidad de parqueaderos, lo cual podría influir en los analisis próximos.

Punto 1

Filtro de los 3 primeros registros de apartamentos.

Primeros 3 registros de apartamentos
id zona piso estrato preciom areaconst parqueaderos banios habitaciones tipo barrio longitud latitud
1212 Zona Norte 1 5 260 90 1 2 3 Apartamento acopi -76.51350 3.45891
1724 Zona Norte 1 5 240 87 1 3 3 Apartamento acopi -76.51700 3.36971
2326 Zona Norte 1 4 220 52 2 2 3 Apartamento acopi -76.51974 3.42627
##        id           zona                piso          estrato     
##  Min.   :   3   Length:5100        Min.   : 1.00   Min.   :3.000  
##  1st Qu.:2180   Class :character   1st Qu.: 1.00   1st Qu.:4.000  
##  Median :4158   Mode  :character   Median : 3.00   Median :5.000  
##  Mean   :4284                      Mean   : 3.65   Mean   :4.727  
##  3rd Qu.:6556                      3rd Qu.: 5.00   3rd Qu.:6.000  
##  Max.   :8317                      Max.   :12.00   Max.   :6.000  
##     preciom         areaconst      parqueaderos        banios     
##  Min.   :  58.0   Min.   : 35.0   Min.   : 0.000   Min.   :0.000  
##  1st Qu.: 175.0   1st Qu.: 68.0   1st Qu.: 1.000   1st Qu.:2.000  
##  Median : 279.0   Median : 90.0   Median : 1.000   Median :2.000  
##  Mean   : 366.9   Mean   :112.8   Mean   : 1.301   Mean   :2.617  
##  3rd Qu.: 430.0   3rd Qu.:130.0   3rd Qu.: 2.000   3rd Qu.:3.000  
##  Max.   :1950.0   Max.   :932.0   Max.   :10.000   Max.   :8.000  
##   habitaciones       tipo              barrio             longitud     
##  Min.   :0.000   Length:5100        Length:5100        Min.   :-76.59  
##  1st Qu.:3.000   Class :character   Class :character   1st Qu.:-76.54  
##  Median :3.000   Mode  :character   Mode  :character   Median :-76.53  
##  Mean   :2.971                                         Mean   :-76.53  
##  3rd Qu.:3.000                                         3rd Qu.:-76.52  
##  Max.   :9.000                                         Max.   :-76.46  
##     latitud     
##  Min.   :3.334  
##  1st Qu.:3.380  
##  Median :3.419  
##  Mean   :3.419  
##  3rd Qu.:3.453  
##  Max.   :3.498
Tabla de frecuencia del tipo de vivienda (debería mostrar solo ‘Apartamento’)
Var1 Freq
Apartamento 5100

Punto 2

Nota: Aunque hay una relación positiva clara, se puede observar que la relación entre el precio y el área construida podría no ser perfectamente lineal. En particular, para áreas más grandes, el incremento en el precio parece ser más disperso, lo que sugiere que un modelo lineal simple podría no capturar adecuadamente la relación para todas las propiedades.

Punto 3

## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = datos_regresion)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1884.66   -53.65    -3.61    45.30  1028.85 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -211.02021   13.32957  -15.83   <2e-16 ***
## areaconst       2.19809    0.04186   52.52   <2e-16 ***
## estrato        51.05448    2.67830   19.06   <2e-16 ***
## habitaciones  -40.10636    3.29257  -12.18   <2e-16 ***
## parqueaderos   55.39086    2.96114   18.71   <2e-16 ***
## banios         51.90627    3.02972   17.13   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 134.1 on 5094 degrees of freedom
## Multiple R-squared:  0.7852, Adjusted R-squared:  0.785 
## F-statistic:  3723 on 5 and 5094 DF,  p-value: < 2.2e-16

Interpretación

Pr: Se puede deducir a partir del valor arrojado en las probabilidades de cada variable que hay suficiente evidencia para rechazar la hipótesis nula, por lo que las variables analizadas tienen un impacto significativo en el precio de la vivienda.

R² (0.7852): El modelo explica el 78.52% de la variabilidad en el precio de las viviendas, lo que indica que el ajuste del modelo es bastante bueno. Por otro lado, todavía hay un 21.55% de la variabilidad que no se explica por este modelo, lo que sugiere que hay otros factores que podrían estar influyendo en el precio.

Ajuste R² ajustado (0.785): Dado que este valor es muy similar al R², significa que la cantidad de predictores no está causando un sobreajuste significativo del modelo.


Área contruida: El modelo indica que por cada metro cuadro adicional el costo podría aumentar en 2.19809, donde el Pr es < 2e-16 el cual es bastante bajo, por lo que podríamos decir que esta variable tiene un efecto significativo en la variable dependiente, por tanto el área construida es relevante y tiene un impacto importante y positivo sobre el precio de la vivienda. Este valor tiene sentido, pues es un valor promedio que se esperaría obtener teniendo en cuenta otra variables como el estrato.

Estrato: En este caso el modelo indica que por cada estrato que la vivienda aumente, el precio de la vivienda aumentará en 51.05448 millones. Este valor puede reflejar un valor muy acorde a lo que se esperaría en el aumento de un estrato en la ciudad.

Habitaciones: En el caso de las habitaciones el coeficiente es negativo, lo que indica que añadir una habitación reduce el precio en -40.10636 millones. Esto interpretación puede verse como contradictoria pues se esperaría que entre más habitaciones que el apartamento tuviese, este aumentaría su precio. Posiblemente esto pueda deberse a que no se esperaría que la mayoría de las viviendas de cierto tamaño no deberían tener una cantidad excesiva de habitaciones, pues esto restaría área en otros espacios, por lo cual esto puede tener sentido.

Parqueaderos: Cada parqueadero adicional se encuentra asociado a un aumento de 55.39086 millones en el precio de la propiedad. Esto tiene sentido pues la adición de un parqueadero puede interprestarse como algo ostentoso, por lo cual se ve reflejado en un aumento significativo.

Baños: Cada baño que se adicionara a la vivienda tendría un aumento en el valor de 51.90627 millones. Esto se entiende como algo lógico pues las propiedades con más baños suelen ser generalmente más grnades y lujosas.


Posibles mejoras:

Existen varias posibles explicaciones para el 21.48% de la variabilidad que no es explicada por el modelo:

  • Se podría analizar incluir otras variables a analizar como: antiguedad de la vivienda, la vista o panorámica puede ser importante también, tendencias de mercado, entre otras.

  • El modelo de regresión lineal múltiple supone que las variable dependiente (el precio) y las variables independientes es lineal, por lo cual sería útil experimerar con transformaciones no lineales, pues existen relaciones no lineales como el precio y el área contruida, las cuales observamos con anterioridad que nos precisamente lineales.

Punto 4

¿Linealidad?

Aunque no se ve un patrón curvo claro, hay algo de dispersión en los valores más altos, lo que dice que la relación entre algunas variables y el precio puede no ser completamente lineal para todo el rango de valores. Esto podría indicar que la linealidad es aceptable para gran parte del modelo, pero podría mejorar con ajustes.

Sugerencias:

Considerar transformaciones no lineales en algunas variables (por ejemplo el precio o del área construida) para ver si el ajuste mejora.

¿Normalidad de los errores?

## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuals(modelo)
## D = 0.14076, p-value < 2.2e-16
## alternative hypothesis: two-sided

Dado que el p-valor es menor que 0.05, se rechaza la hipótesis nula. Esto significa que hay evidencia estadística suficiente para concluir que los residuos no siguen una distribución normal.

¿Multicolinealidad?

##    areaconst      estrato habitaciones parqueaderos       banios 
##     2.389055     1.942693     1.404124     2.000596     2.971488

Como es posible observar en los resultados, existe una multicolinealidad no muy alta (el vlaor es inferior a 5), por lo cual no sugiere un ajuste en el modelo.

¿Homoscedasticidad?

En el gráfico, se puede observar que los residuos aumentan a medida que los valores ajustados crecen, lo que quiere decir que la varianza de los residuos no es constante.

## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 1418.5, df = 5, p-value < 2.2e-16

Dado que el p-valor es menor que 0.05 lo cual es extremadamente bajo, se rechaza la hipótesis nula. Esto significa que la varianza de los residuos no es constante, y los resultados del modelo podrían no ser confiables debido a este problema.

Sugerencias:

Se puedes aplicar transformaciones a la variable dependiente para corregir el impacto de la heterocedasticidad (no homoscedasticidad) en el modelo.

Punto 5

Partición de los datos de forma aleatoria donde 70% sea un set para entrenar el modelo y 30% para prueba.

## 
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + 
##     banios, data = train_data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1840.38   -53.50    -4.20    44.26  1041.71 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -226.30512   15.93730 -14.200   <2e-16 ***
## areaconst       2.14633    0.05009  42.851   <2e-16 ***
## estrato        55.54428    3.21236  17.291   <2e-16 ***
## habitaciones  -36.53433    3.91433  -9.333   <2e-16 ***
## parqueaderos   55.00665    3.57936  15.368   <2e-16 ***
## banios         47.39269    3.63592  13.035   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 134.9 on 3566 degrees of freedom
## Multiple R-squared:  0.7753, Adjusted R-squared:  0.775 
## F-statistic:  2461 on 5 and 3566 DF,  p-value: < 2.2e-16

Punto 6

##   Valores_Reales Predicciones
## 1            240   325.728641
## 2            220   202.676801
## 3            385   367.683864
## 4            100    19.821873
## 5            170   200.941392
## 6            130     9.043487

Nota: En las filas 4 y 6 son muy diferentes de los valores reales, por lo que esto puede indicar que el modelo no está capturando bien la relación entre las variables predictoras y el precio en estos casos. Estas diferencias sugieren que el modelo tiene problemas para predecir precios bajos de manera efectiva.

Punto 7

RMSE (Error Cuadrático Medio):

## [1] 132.7288

Esto sugiere que las predicciones del modelo se desvían en promedio en 132.73 respecto a los valores reales, y puesto que este valor es algo elevado, esto quiere decir que los errores de la predicción podrían ser significativos en algunos casos, especialmente si la variable de precios tiene un rango más estrecho.

Error Absoluto Medio (MAE):

## [1] 81.06247

Este valor indica que el modelo está cometiendo errores de alrededor de 81 unidades en promedio, lo que puede ser significativo dependiendo del rango de precios en el conjunto de datos.

R²:

## [1] 0.8045773

Esto es un valor bastante alto, lo que sugiere que el modelo es aceptable para capturar la relación entre las variables independientes (área construida, estrato, habitaciones, parqueaderos y baños) y el precio. Por otro lado, hay un 19.54% de la variabilidad en los precios que no está explicada por el modelo, lo que indica que otras variables o factores que podrían estar influyendo en el precio.