Docente: Daniel Enrique González Gomez
Estudiante: Oscar Enrique Rodríguez Gaona
Programa: Maestría en Ciencia de Datos – Pontificia
Universidad Javeriana Cali
Actividad: Actividad 2 – Regresión lineal múltiple –
Caso C&A
C&A recibió dos solicitudes de compra con créditos preaprobados y
necesita saber si el precio esperado de cada vivienda es compatible con
el presupuesto disponible y qué ofertas del mercado conviene priorizar.
Para responderlas se depuró la base vivienda (8.322
registros), se segmentó el mercado por tipo y zona y se estimó un modelo
de regresión lineal múltiple para cada solicitud sobre el precio en
millones (preciom), a partir del área construida, el
estrato, las habitaciones, los parqueaderos y los baños. Después se
revisaron los supuestos de cada modelo y se buscaron ofertas acordes con
cada presupuesto.
Para la Vivienda 1 (casa en la zona norte) el modelo se estimó con 431 casas y explica cerca del 60 % de la variación del precio. El precio esperado para las características solicitadas es de $308 millones en estrato 4 y $387 millones en estrato 5: el estrato 4 se ubica dentro del crédito de $350 millones, mientras que el estrato 5 lo supera. Se identificaron cinco ofertas dentro del presupuesto.
Para la Vivienda 2 (apartamento en la zona sur) el modelo se estimó con 2.375 apartamentos y explica cerca del 75 % de la variación. El precio esperado es de $677 millones (estrato 5) y $737 millones (estrato 6), ambos dentro del crédito de $850 millones. De cinco ofertas seleccionadas, una cumple todos los criterios operativos.
En conjunto, ambas solicitudes son atendibles con el presupuesto disponible. Las cifras son estimaciones de referencia y no precios garantizados, por lo que deben usarse como guía para negociar y verificar cada oferta. El desarrollo técnico completo —código, salidas, gráficos y diagnósticos— se presenta en los anexos.
Las dos solicitudes recibidas se resumen a continuación:
| Característica | Vivienda 1 | Vivienda 2 |
|---|---|---|
| Tipo | Casa | Apartamento |
| Zona | Norte | Sur |
| Área construida (m²) | 200 | 300 |
| Parqueaderos | 1 | 3 |
| Baños | 2 | 3 |
| Habitaciones | 4 | 5 |
| Estrato | 4 o 5 | 5 o 6 |
| Crédito máximo | $350 millones | $850 millones |
El análisis siguió un mismo recorrido para cada solicitud: depuración y segmentación de la base, exploración de las relaciones entre el precio y las características de la vivienda, estimación de un modelo de regresión lineal múltiple, revisión de sus supuestos, predicción del precio para las características pedidas e identificación de ofertas reales acordes con el presupuesto. Los detalles técnicos, los diagnósticos y las salidas completas se encuentran en los anexos; el cuerpo del informe presenta solo lo necesario para decidir.
Mercado analizado. El mercado de referencia son las casas registradas en la zona norte. Tras el filtro y la depuración quedaron 722 casas y el modelo se estimó con las 431 que tenían información completa en todas las características de interés. La exploración muestra que el precio se asocia sobre todo con el área construida y el estrato, mientras que el número de habitaciones aporta poco una vez que se consideran las demás características.
Modelo estimado. Los efectos parciales estimados sobre el precio son:
| Variable | Efecto sobre el precio (millones) | Significativo (5 %) |
|---|---|---|
| Intercepto | −231,57 | Sí |
| Área construida (por m²) | 0,66 | Sí |
| Estrato (por nivel) | 78,35 | Sí |
| Habitaciones (por unidad) | 6,07 | No |
| Parqueaderos (por unidad) | 24,27 | Sí |
| Baños (por unidad) | 22,41 | Sí |
Vivienda 1: efectos parciales estimados (modelo de casas de la zona norte).
Interpretación. Manteniendo constantes las demás características, cada metro cuadrado adicional se asocia con un aumento cercano a $0,66 millones y cada nivel de estrato con alrededor de $78 millones; los parqueaderos y los baños también muestran efectos positivos y significativos, mientras que las habitaciones no resultan significativas al 5 %. El modelo explica el 60,2 % de la variación del precio (R² = 0,602), un ajuste moderado y razonable para datos de vivienda; las asociaciones no deben leerse como relaciones causales.
Precio estimado y presupuesto. Para una casa de 200 m², 1 parqueadero, 2 baños y 4 habitaciones, el precio esperado según el estrato es:
| Escenario | Precio estimado (millones) | Intervalo 95 % de la media (millones) | Crédito máximo | ¿Dentro del crédito? |
|---|---|---|---|---|
| Estrato 4 | 308,15 | 282,75 – 333,54 | 350 | Sí |
| Estrato 5 | 386,50 | 353,77 – 419,24 | 350 | No |
Vivienda 1: precio estimado frente al crédito de $350 millones.
Ofertas potenciales. Aplicando los filtros de tipo, zona, estrato y presupuesto, y ordenando por cercanía a las características solicitadas, las cinco ofertas priorizadas son:
| Oferta | Barrio | Estrato | Área (m²) | Hab | Parq | Baños | Precio (millones) | Margen vs $350M |
|---|---|---|---|---|---|---|---|---|
| Oferta 1 | La Merced | 4 | 240 | 3 | 1 | 2 | 330 | 20 |
| Oferta 2 | Prados Del Norte | 5 | 140 | 3 | 1 | 2 | 280 | 70 |
| Oferta 3 | Alamos | 4 | 120 | 4 | 1 | 2 | 275 | 75 |
| Oferta 4 | Vipasa | 4 | 264 | 3 | 1 | 2 | 320 | 30 |
| Oferta 5 | Zona Norte | 4 | 162 | 4 | 1 | 3 | 265 | 85 |
Vivienda 1: cinco ofertas potenciales dentro del presupuesto.
Recomendación. La solicitud es viable dentro del crédito de $350 millones si se orienta hacia casas de estrato 4, cuyo precio esperado ($308 millones) deja margen frente al presupuesto; el estrato 5 tiende a superarlo. Entre las ofertas listadas conviene priorizar las que combinan menor precio y mayor cercanía a las características pedidas, verificando siempre disponibilidad y estado del inmueble.
Mercado analizado. El mercado de referencia son los apartamentos de la zona sur. Tras la depuración quedaron 2.787 apartamentos y el modelo se estimó con 2.375 registros completos. Como en el caso anterior, el precio se asocia principalmente con el área y el estrato, con un mercado mucho más amplio que el de casas del norte.
Modelo estimado. Los efectos parciales estimados son:
| Variable | Efecto sobre el precio (millones) | Significativo (5 %) |
|---|---|---|
| Intercepto | −255,85 | Sí |
| Área construida (por m²) | 1,29 | Sí |
| Estrato (por nivel) | 60,27 | Sí |
| Habitaciones (por unidad) | −26,58 | Sí |
| Parqueaderos (por unidad) | 75,73 | Sí |
| Baños (por unidad) | 49,95 | Sí |
Vivienda 2: efectos parciales estimados (modelo de apartamentos de la zona sur).
Interpretación. Cada metro cuadrado adicional se asocia con cerca de $1,29 millones y cada nivel de estrato con alrededor de $60 millones; los parqueaderos y los baños muestran efectos positivos elevados. El coeficiente de las habitaciones resulta negativo: manteniendo el área y las demás características constantes, subdividir el espacio en más habitaciones se asocia con un precio algo menor, un efecto de composición que no debe interpretarse de forma aislada. El modelo explica el 74,8 % de la variación del precio (R² = 0,748), un ajuste alto y superior al del caso 1.
Precio estimado y presupuesto. Para un apartamento de 300 m², 3 parqueaderos, 3 baños y 5 habitaciones, el precio esperado según el estrato es:
| Escenario | Precio estimado (millones) | Intervalo 95 % de la media (millones) | Crédito máximo | ¿Dentro del crédito? |
|---|---|---|---|---|
| Estrato 5 | 676,95 | 653,62 – 700,28 | 850 | Sí |
| Estrato 6 | 737,22 | 713,60 – 760,84 | 850 | Sí |
Vivienda 2: precio estimado frente al crédito de $850 millones.
Ofertas potenciales. Las cinco ofertas priorizadas para la zona sur son:
| Opción | Barrio | Estrato | Área (m²) | Hab | Parq | Baños | Precio (millones) | Margen vs $850M | Categoría |
|---|---|---|---|---|---|---|---|---|---|
| Opción 1 | Seminario | 5 | 300 | 6 | 3 | 5 | 670 | 180 | Cumplimiento completo |
| Opción 2 | Seminario | 5 | 256 | 5 | 3 | 5 | 530 | 320 | Alternativa cercana |
| Opción 3 | Capri | 5 | 270 | 4 | 3 | 3 | 350 | 500 | Alternativa cercana |
| Opción 4 | Ciudadela Pasoancho | 5 | 275 | 5 | 2 | 5 | 650 | 200 | Alternativa cercana |
| Opción 5 | Guadalupe | 5 | 573 | 5 | 3 | 8 | 730 | 120 | Alternativa cercana |
Vivienda 2: cinco ofertas potenciales dentro del presupuesto.
Recomendación. La solicitud es viable: el precio esperado ($677–737 millones) se ubica cómodamente dentro del crédito de $850 millones. Se recomienda priorizar la oferta de Seminario ($670 millones), la única que cumple todos los criterios operativos y que conserva un margen de $180 millones; las restantes quedan como alternativas cercanas si se aceptara flexibilizar alguna característica.
Ambas solicitudes son atendibles con el presupuesto disponible. La Vivienda 1 es viable orientándola a estrato 4 (precio esperado ≈ $308 millones, dentro de $350 millones); en estrato 5 el precio esperado (≈ $387 millones) supera el crédito. La Vivienda 2 es viable en ambos estratos (≈ $677–737 millones frente a $850 millones).
Las estimaciones provienen de modelos con ajuste moderado a alto. El modelo de casas explica el 60,2 % de la variación y el de apartamentos el 74,8 %; ambos son globalmente significativos. El área y el estrato son los factores más determinantes del precio en los dos mercados.
Ofertas a priorizar. Para la Vivienda 1, las casas de estrato 4 dentro de $350 millones listadas en el informe; para la Vivienda 2, la oferta de Seminario ($670 millones), por ser la de cumplimiento completo.
Confiabilidad prudente. Las predicciones son valores esperados con un intervalo de confianza asociado, no precios exactos ni garantizados. Los diagnósticos (anexos) muestran que los supuestos de varianza constante y normalidad de los errores no se cumplen plenamente, aunque el tamaño de muestra respalda el uso de las estimaciones como referencia.
Limitaciones y siguientes pasos. Los modelos usan únicamente las variables estructurales disponibles y no incorporan factores como estado, antigüedad o ubicación fina dentro del barrio. Se recomienda verificar en terreno cada oferta, confirmar sus características y su situación jurídica, y usar las estimaciones como apoyo a la negociación.
Los anexos reproducen el procedimiento completo del caso, con su código (plegable) y sus salidas: preparación y depuración de la base, análisis exploratorio, estimación e interpretación de los modelos, validación de supuestos, predicción puntual y selección de ofertas, para las dos viviendas. Sustentan técnicamente cada afirmación del informe ejecutivo sin repetir su contenido.
Mapa de evidencia frente a la rúbrica
| Criterio de la rúbrica | Evidencia en los anexos |
|---|---|
| 1. Filtro inicial y depuración | Anexo A |
| 2. Análisis exploratorio de los datos | Anexo B (Vivienda 1) y Anexo F (Vivienda 2) |
| 3. Estimación e interpretación del modelo | Anexo C (Vivienda 1) y Anexo F (Vivienda 2) |
| 4. Estimación puntual e interpretación | Anexo E (Vivienda 1) y Anexo G (Vivienda 2) |
| 5. Validación de los supuestos del modelo | Anexo D (Vivienda 1) y Anexo F (Vivienda 2) |
| 6. Réplica con apartamentos del sur | Anexos F y G |
Estos anexos presentan el recorrido seguido para responder las dos solicitudes recibidas por la agencia C&A. El trabajo combina la preparación de la base, la exploración de los datos, la estimación de modelos de regresión lineal múltiple, la revisión de sus supuestos y la búsqueda de ofertas acordes con cada presupuesto. La intención es dejar visibles las decisiones principales sin cargar el informe con operaciones repetitivas.
| Etapa | Decisión metodológica | Resultado esperado |
|---|---|---|
| Preparación | Revisar estructura, duplicados, faltantes y valores no válidos | Una base consistente para el análisis |
| Solicitud 1 | Filtrar casas de la zona norte | Base específica para la primera vivienda |
| Exploración 1 | Examinar distribuciones, relaciones y correlaciones | Reconocer patrones antes de modelar |
| Modelo 1 | Estimar el precio con las características solicitadas | Medir efectos parciales y capacidad explicativa |
| Validación 1 | Revisar residuales, varianza, normalidad, independencia e influencia | Reconocer alcances y limitaciones |
| Predicción y ofertas 1 | Comparar el precio esperado y las ofertas con $350 millones | Orientar la primera recomendación |
| Solicitud 2 | Repetir el procedimiento para apartamentos de la zona sur | Mantener un análisis comparable |
| Predicción y ofertas 2 | Comparar el precio esperado y las ofertas con $850 millones | Orientar la segunda recomendación |
Los puntos 4 a 9 desarrollan los seis requerimientos de la primera solicitud. Los puntos 10 a 14 replican el procedimiento para la segunda vivienda. En cada caso se presentan el filtro, la exploración, el modelo, la validación, la predicción y el mapa de ofertas potenciales.
En esta primera etapa se prepara el entorno de trabajo. La instalación se deja separada de la carga para evitar reinstalar paquetes cada vez que se ejecute el documento. La semilla fija permite reproducir los procedimientos que usan selección aleatoria.
La base vivienda se carga desde el paquete suministrado
para la actividad. La revisión inicial permite conocer sus dimensiones,
variables, categorías y datos faltantes antes de tomar decisiones de
limpieza.
## [1] 8319 13
## [1] "id" "zona" "piso" "estrato" "preciom"
## [6] "areaconst" "parqueaderos" "banios" "habitaciones" "tipo"
## [11] "barrio" "longitud" "latitud"
## Rows: 8,319
## Columns: 13
## $ id <dbl> 1147, 1169, 1350, 5992, 1212, 1724, 2326, 4386, 1209, 159…
## $ zona <chr> "Zona Oriente", "Zona Oriente", "Zona Oriente", "Zona Sur…
## $ piso <chr> NA, NA, NA, "02", "01", "01", "01", "01", "02", "02", "02…
## $ estrato <dbl> 3, 3, 3, 4, 5, 5, 4, 5, 5, 5, 6, 4, 5, 6, 4, 5, 5, 4, 5, …
## $ preciom <dbl> 250, 320, 350, 400, 260, 240, 220, 310, 320, 780, 750, 62…
## $ areaconst <dbl> 70, 120, 220, 280, 90, 87, 52, 137, 150, 380, 445, 355, 2…
## $ parqueaderos <dbl> 1, 1, 2, 3, 1, 1, 2, 2, 2, 2, NA, 3, 2, 2, 1, 4, 2, 2, 2,…
## $ banios <dbl> 3, 2, 2, 5, 2, 3, 2, 3, 4, 3, 7, 5, 6, 2, 4, 4, 4, 3, 2, …
## $ habitaciones <dbl> 6, 3, 4, 3, 3, 3, 3, 4, 6, 3, 6, 5, 6, 2, 5, 5, 4, 3, 3, …
## $ tipo <chr> "Casa", "Casa", "Casa", "Casa", "Apartamento", "Apartamen…
## $ barrio <chr> "20 de julio", "20 de julio", "20 de julio", "3 de julio"…
## $ longitud <dbl> -76.51168, -76.51237, -76.51537, -76.54000, -76.51350, -7…
## $ latitud <dbl> 3.43382, 3.43369, 3.43566, 3.43500, 3.45891, 3.36971, 3.4…
## # A tibble: 6 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1147 Zona O… <NA> 3 250 70 1 3 6
## 2 1169 Zona O… <NA> 3 320 120 1 2 3
## 3 1350 Zona O… <NA> 3 350 220 2 2 4
## 4 5992 Zona S… 02 4 400 280 3 5 3
## 5 1212 Zona N… 01 5 260 90 1 2 3
## 6 1724 Zona N… 01 5 240 87 1 3 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
## id zona piso estrato
## Min. : 1 Length:8319 Length:8319 Min. :3.000
## 1st Qu.:2080 Class :character Class :character 1st Qu.:4.000
## Median :4160 Mode :character Mode :character Median :5.000
## Mean :4160 Mean :4.634
## 3rd Qu.:6240 3rd Qu.:5.000
## Max. :8319 Max. :6.000
##
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123.0 Median : 2.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.835 Mean : 3.111
## 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
## NA's :1602
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:8319 Length:8319 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 : 3.605 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
##
## latitud
## Min. :3.333
## 1st Qu.:3.381
## Median :3.416
## Mean :3.418
## 3rd Qu.:3.452
## Max. :3.498
##
| variable | cantidad | porcentaje |
|---|---|---|
| id | 0 | 0.00 |
| zona | 0 | 0.00 |
| piso | 2635 | 31.67 |
| estrato | 0 | 0.00 |
| preciom | 0 | 0.00 |
| areaconst | 0 | 0.00 |
| parqueaderos | 1602 | 19.26 |
| banios | 0 | 0.00 |
| habitaciones | 0 | 0.00 |
| tipo | 0 | 0.00 |
| barrio | 0 | 0.00 |
| longitud | 0 | 0.00 |
| latitud | 0 | 0.00 |
| indicador | cantidad |
|---|---|
| Registros duplicados | 0 |
##
## Apartamento Casa
## 5100 3219
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur
## 124 1920 1198 351 4726
##
## 3 4 5 6
## 1453 2129 2750 1987
La depuración busca que las variables tengan un formato consistente. Se normalizan los textos, se convierten las variables numéricas y se retiran duplicados exactos. Los valores faltantes no se imputan de manera automática, porque reemplazarlos sin información suficiente podría modificar las relaciones que se quieren estudiar.
vivienda_limpia <- vivienda %>%
mutate(
tipo = str_squish(str_to_title(as.character(tipo))),
zona = str_squish(str_to_title(as.character(zona))),
barrio = str_squish(str_to_title(as.character(barrio))),
piso = str_squish(as.character(piso)),
estrato = as.numeric(estrato),
preciom = as.numeric(preciom),
areaconst = as.numeric(areaconst),
parqueaderos = as.numeric(parqueaderos),
banios = as.numeric(banios),
habitaciones = as.numeric(habitaciones),
longitud = as.numeric(longitud),
latitud = as.numeric(latitud)
) %>%
distinct()
| indicador | base_original | base_limpia |
|---|---|---|
| Número de registros | 8322 | 8321 |
| Número de variables | 13 | 13 |
| Datos faltantes | 4275 | 4262 |
| Registros duplicados | 1 | 0 |
| variable | cantidad_faltantes | porcentaje_faltantes |
|---|---|---|
| id | 2 | 0.02 |
| zona | 2 | 0.02 |
| piso | 2637 | 31.69 |
| estrato | 2 | 0.02 |
| preciom | 1 | 0.01 |
| areaconst | 2 | 0.02 |
| parqueaderos | 1604 | 19.28 |
| banios | 2 | 0.02 |
| habitaciones | 2 | 0.02 |
| tipo | 2 | 0.02 |
| barrio | 2 | 0.02 |
| longitud | 2 | 0.02 |
| latitud | 2 | 0.02 |
##
## Apartamento Casa <NA>
## 5100 3219 2
##
## Zona Centro Zona Norte Zona Oeste Zona Oriente Zona Sur <NA>
## 124 1920 1198 351 4726 2
##
## 3 4 5 6 <NA>
## 1453 2129 2750 1987 2
| indicador | valor |
|---|---|
| precio_minimo | 58 |
| precio_maximo | 1999 |
| area_minima | 30 |
| area_maxima | 1745 |
| estrato_minimo | 3 |
| estrato_maximo | 6 |
| parqueaderos_minimo | 1 |
| parqueaderos_maximo | 10 |
| banios_minimo | 0 |
| banios_maximo | 10 |
| habitaciones_minimas | 0 |
| habitaciones_maximas | 10 |
| validacion | cantidad |
|---|---|
| precios_no_positivos | 0 |
| areas_no_positivas | 0 |
| estratos_fuera_rango | 2 |
| parqueaderos_negativos | 0 |
| banios_no_positivos | 45 |
| habitaciones_no_positivas | 66 |
| indicador | cantidad |
|---|---|
| Registros con coordenadas faltantes o fuera del rango esperado | 2 |
Para la primera solicitud se seleccionan solamente las casas registradas en la zona norte. Además de comprobar el filtro y mostrar los primeros registros, se revisan los datos faltantes, los valores no válidos y las coordenadas utilizadas en el mapa.
base1 <- vivienda_limpia %>%
filter(
tipo == "Casa",
zona == "Zona Norte"
)
| id | zona | piso | estrato | preciom | areaconst | parqueaderos | banios | habitaciones | tipo | barrio | longitud | latitud |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1209 | Zona Norte | 02 | 5 | 320 | 150 | 2 | 4 | 6 | Casa | Acopi | -76.51 | 3.48 |
| 1592 | Zona Norte | 02 | 5 | 780 | 380 | 2 | 3 | 3 | Casa | Acopi | -76.52 | 3.49 |
| 4057 | Zona Norte | 02 | 6 | 750 | 445 | 7 | 6 | Casa | Acopi | -76.53 | 3.39 |
| tipo | zona | n |
|---|---|---|
| Casa | Zona Norte | 722 |
| estrato | n |
|---|---|
| 3 | 235 |
| 4 | 161 |
| 5 | 271 |
| 6 | 55 |
| indicador | valor |
|---|---|
| Número de registros | 722 |
| Número de variables | 13 |
| variable | faltantes | total_registros | porcentaje |
|---|---|---|---|
| preciom | 0 | 722 | 0.00 |
| areaconst | 0 | 722 | 0.00 |
| estrato | 0 | 722 | 0.00 |
| parqueaderos | 287 | 722 | 39.75 |
| banios | 0 | 722 | 0.00 |
| habitaciones | 0 | 722 | 0.00 |
| longitud | 0 | 722 | 0.00 |
| latitud | 0 | 722 | 0.00 |
| validacion | cantidad |
|---|---|
| precio_faltante | 0 |
| area_faltante | 0 |
| estrato_faltante | 0 |
| parqueaderos_faltantes | 287 |
| banios_faltantes | 0 |
| habitaciones_faltantes | 0 |
| precio_no_positivo | 0 |
| area_no_positiva | 0 |
| estrato_invalido | 0 |
| parqueaderos_negativos | 0 |
| banios_cero | 10 |
| habitaciones_cero | 20 |
| indicador | valor |
|---|---|
| Registros de la base 1 | 722 |
| Registros completos | 435 |
| Registros incompletos | 287 |
| Porcentaje de registros completos | 60.25% |
| indicador | cantidad |
|---|---|
| Registros de la base 1 | 722 |
| Registros incluidos en el mapa | 722 |
| Registros excluidos del mapa | 0 |
| id | barrio | preciom | areaconst | estrato | parqueaderos | banios | habitaciones |
|---|---|---|---|---|---|---|---|
| 243 | Acopi | 190 | 435 | 3 | 0 | 0 | |
| 3273 | Acopi | 400 | 324 | 3 | 0 | 0 | |
| 7245 | Acopi | 1200 | 752 | 4 | 0 | 0 | |
| 103 | Gaitan | 380 | 177 | 3 | 0 | 0 | |
| 4707 | Granada | 900 | 300 | 4 | 0 | 0 | |
| 2295 | La Flora | 334 | 243 | 5 | 4 | 0 | 0 |
| 3893 | La Flora | 470 | 336 | 5 | 0 | 0 | |
| 1753 | Vipasa | 350 | 264 | 4 | 0 | 0 | |
| 4705 | Granada | 415 | 297 | 4 | 1 | 2 | 0 |
| 1175 | La Merced | 370 | 216 | 4 | 2 | 2 | 0 |
| 3852 | Villa Del Prado | 155 | 61 | 3 | 2 | 0 | |
| 2013 | Acopi | 270 | 330 | 3 | 3 | 0 | |
| 2014 | Acopi | 270 | 330 | 3 | 3 | 0 | |
| 4118 | Acopi | 620 | 450 | 5 | 3 | 0 | |
| 2741 | Acopi | 485 | 320 | 4 | 4 | 0 | |
| 1942 | Cali | 395 | 106 | 4 | 4 | 0 | |
| 5572 | Cali | 800 | 300 | 6 | 4 | 0 | |
| 4095 | Acopi | 700 | 550 | 4 | 6 | 0 | |
| 4329 | Acopi | 790 | 540 | 4 | 6 | 0 | |
| 4512 | Acopi | 620 | 300 | 4 | 8 | 0 | |
| 2905 | La Flora | 530 | 455 | 5 | 0 | 4 | |
| 6906 | Juanamb√∫ | 1080 | 650 | 6 | 2 | 0 | 7 |
| indicador | resultado |
|---|---|
| Registros iniciales de la base 1 | 722 |
| Registros con cero baños o habitaciones | 22 |
| Registros disponibles para el análisis | 700 |
| Porcentaje conservado | 96.95% |
| informacion_parqueadero | registros | precio_medio | area_media | habitaciones_media | banios_media | porcentaje |
|---|---|---|---|---|---|---|
| Con información | 431 | 479.12 | 292.17 | 4.84 | 3.81 | 61.57 |
| Sin información | 269 | 385.57 | 213.98 | 4.30 | 3.27 | 38.43 |
| indicador | resultado |
|---|---|
| Registros de la base para análisis | 700 |
| Registros completos para el modelo | 431 |
| Registros excluidos por parqueaderos faltantes | 269 |
| Porcentaje utilizado en el modelo | 61.57% |
| Disponibilidad | Registros | Porcentaje | Precio | Area | Estrato | Habitaciones | Banios |
|---|---|---|---|---|---|---|---|
| Con información | 431 | 61.57 | 479.12 | 292.17 | 4.45 | 4.84 | 3.81 |
| Sin información | 269 | 38.43 | 385.57 | 213.98 | 3.81 | 4.30 | 3.27 |
La exploración permite observar cómo se comporta el precio y qué relación presenta con el área, el estrato, las habitaciones, los parqueaderos y los baños. Estas asociaciones son descriptivas y no deben interpretarse como relaciones causales.
| indicador | resultado |
|---|---|
| Número de registros | 700.00 |
| Número de barrios | 98.00 |
| Precio medio | 443.17 |
| Área media | 262.12 |
| variable | observaciones | faltantes | media | mediana | desviacion | minimo | primer_cuartil | tercer_cuartil | maximo |
|---|---|---|---|---|---|---|---|---|---|
| areaconst | 700 | 0 | 262.12 | 240 | 166.59 | 30 | 140 | 336 | 1440 |
| banios | 700 | 0 | 3.60 | 3 | 1.47 | 1 | 2 | 4 | 10 |
| estrato | 700 | 0 | 4.21 | 4 | 0.99 | 3 | 3 | 5 | 6 |
| habitaciones | 700 | 0 | 4.63 | 4 | 1.69 | 1 | 3 | 5 | 10 |
| parqueaderos | 431 | 269 | 2.18 | 2 | 1.41 | 1 | 1 | 3 | 10 |
| preciom | 700 | 0 | 443.17 | 390 | 267.76 | 89 | 256 | 550 | 1940 |
| preciom | areaconst | estrato | parqueaderos | banios | habitaciones | |
|---|---|---|---|---|---|---|
| preciom | 1.000 | 0.730 | 0.617 | 0.418 | 0.568 | 0.375 |
| areaconst | 0.730 | 1.000 | 0.465 | 0.311 | 0.515 | 0.449 |
| estrato | 0.617 | 0.465 | 1.000 | 0.261 | 0.434 | 0.096 |
| parqueaderos | 0.418 | 0.311 | 0.261 | 1.000 | 0.406 | 0.252 |
| banios | 0.568 | 0.515 | 0.434 | 0.406 | 1.000 | 0.607 |
| habitaciones | 0.375 | 0.449 | 0.096 | 0.252 | 0.607 | 1.000 |
| variable | observaciones | correlacion | p_valor_presentado | direccion | intensidad | significativa |
|---|---|---|---|---|---|---|
| areaconst | 700 | 0.7305 | <0.001 | Positiva | Fuerte | Sí |
| estrato | 700 | 0.6166 | <0.001 | Positiva | Fuerte | Sí |
| parqueaderos | 431 | 0.4179 | <0.001 | Positiva | Moderada | Sí |
| banios | 700 | 0.5685 | <0.001 | Positiva | Moderada | Sí |
| habitaciones | 700 | 0.3748 | <0.001 | Positiva | Débil | Sí |
| zona | n | porcentaje |
|---|---|---|
| Zona Norte | 700 | 100 |
| areaconst | estrato | parqueaderos | banios | habitaciones | |
|---|---|---|---|---|---|
| areaconst | 1.000 | 0.465 | 0.311 | 0.515 | 0.449 |
| estrato | 0.465 | 1.000 | 0.261 | 0.434 | 0.096 |
| parqueaderos | 0.311 | 0.261 | 1.000 | 0.406 | 0.252 |
| banios | 0.515 | 0.434 | 0.406 | 1.000 | 0.607 |
| habitaciones | 0.449 | 0.096 | 0.252 | 0.607 | 1.000 |
## No se identificaron pares de variables predictoras con una correlación absoluta igual o superior a 0,70.
El modelo principal estima el precio a partir de las cinco
características requeridas. Cada coeficiente representa un cambio
esperado en el precio cuando las demás variables permanecen constantes.
Como parqueaderos tiene datos faltantes, también se estima
un modelo complementario para valorar la sensibilidad de los resultados;
la comparación directa se realiza sobre una misma muestra.
| indicador | resultado |
|---|---|
| Registros disponibles para el análisis | 700 |
| Registros completos para el modelo principal | 431 |
| Registros excluidos por información faltante | 269 |
| Porcentaje utilizado | 61.57% |
modelo1_principal <- lm(
preciom ~ areaconst +
estrato +
habitaciones +
parqueaderos +
banios,
data = base1_modelo
)
summary(modelo1_principal)
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = base1_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -765.19 -77.49 -15.62 46.41 979.13
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -231.5727 45.1306 -5.131 0.0000004388079061 ***
## areaconst 0.6646 0.0533 12.470 < 0.0000000000000002 ***
## estrato 78.3545 9.9538 7.872 0.0000000000000294 ***
## habitaciones 6.0679 5.8640 1.035 0.30136
## parqueaderos 24.2743 5.9052 4.111 0.0000473560817761 ***
## banios 22.4145 7.8308 2.862 0.00441 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 155 on 425 degrees of freedom
## Multiple R-squared: 0.6022, Adjusted R-squared: 0.5975
## F-statistic: 128.7 on 5 and 425 DF, p-value: < 0.00000000000000022
## Precio estimado = -231.573 + (0.665 × área construida) + (78.354 × estrato) + (6.068 × habitaciones) + (24.274 × parqueaderos) + (22.414 × baños)
| variable | estimacion | error_estandar | estadistico_t | p_valor_presentado | limite_inferior | limite_superior | significativa |
|---|---|---|---|---|---|---|---|
| Intercepto | -231.573 | 45.131 | -5.131 | < 0.001 | -320.280 | -142.866 | Sí |
| Área construida | 0.665 | 0.053 | 12.470 | < 0.001 | 0.560 | 0.769 | Sí |
| Estrato | 78.354 | 9.954 | 7.872 | < 0.001 | 58.790 | 97.919 | Sí |
| Habitaciones | 6.068 | 5.864 | 1.035 | 0.30136 | -5.458 | 17.594 | No |
| Parqueaderos | 24.274 | 5.905 | 4.111 | < 0.001 | 12.667 | 35.881 | Sí |
| Baños | 22.414 | 7.831 | 2.862 | 0.00441 | 7.022 | 37.806 | Sí |
| variable | cambio_estimado | direccion | p_valor_presentado | significancia |
|---|---|---|---|---|
| Área construida | 0.665 | Aumento | < 0.001 | Significativo |
| Estrato | 78.354 | Aumento | < 0.001 | Significativo |
| Habitaciones | 6.068 | Aumento | 0.30136 | No significativo |
| Parqueaderos | 24.274 | Aumento | < 0.001 | Significativo |
| Baños | 22.414 | Aumento | 0.00441 | Significativo |
Manteniendo constantes el estrato, las habitaciones, los parqueaderos y los baños, cada metro cuadrado adicional de área construida se asocia con un cambio promedio de 0.665 millones de pesos en el precio de la casa. El efecto es estadísticamente significativo (p <0.001 ).
Manteniendo constantes las demás características, aumentar una unidad en el estrato se asocia con un cambio promedio de 78.354 millones de pesos en el precio de la casa. El efecto es estadísticamente significativo (p <0.001 ).
No se encontró evidencia estadística suficiente para afirmar que el número de habitaciones tenga un efecto individual sobre el precio, después de controlar las demás características (p = 0.301 ).
Manteniendo constantes las demás características, un parqueadero adicional se asocia con un cambio promedio de 24.274 millones de pesos en el precio de la casa. El efecto es estadísticamente significativo (p <0.001 ).
Manteniendo constantes el área, el estrato, las habitaciones y los parqueaderos, un baño adicional se asocia con un cambio promedio de 22.414 millones de pesos en el precio de la casa. El efecto es estadísticamente significativo (p 0.00441 ).
| r_cuadrado | r_cuadrado_ajustado | porcentaje_explicado | porcentaje_ajustado | error_residual | estadistico_F | p_valor_presentado | grados_libertad_residuales | observaciones |
|---|---|---|---|---|---|---|---|---|
| 0.602 | 0.597 | 60.218 | 59.75 | 155.023 | 128.663 | <0.001 | 425 | 431 |
El modelo explica aproximadamente el 60.22 % de la variabilidad observada en el precio de las casas. Después de considerar el número de variables incluidas, el R² ajustado es de 59.75 %. El porcentaje restante puede estar relacionado con variables no incluidas en el modelo y con la variabilidad propia del mercado.
La prueba F global es estadísticamente significativa (p <0.001 ). Por lo tanto, se rechaza la hipótesis de que todos los coeficientes asociados con las variables predictoras sean simultáneamente iguales a cero.
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + banios,
## data = base1_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -819.66 -82.69 -17.77 54.50 952.92
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -234.37438 45.95974 -5.100 0.0000005133074332 ***
## areaconst 0.68956 0.05393 12.786 < 0.0000000000000002 ***
## estrato 82.53743 10.08472 8.184 0.0000000000000032 ***
## habitaciones 6.42880 5.97178 1.077 0.282300
## banios 29.79319 7.76327 3.838 0.000143 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 157.9 on 426 degrees of freedom
## Multiple R-squared: 0.5864, Adjusted R-squared: 0.5825
## F-statistic: 151 on 4 and 426 DF, p-value: < 0.00000000000000022
| modelo | Res.Df | RSS | Df | Sum of Sq | F | Pr(>F) |
|---|---|---|---|---|---|---|
| 1 | 426 | 10619806 | ||||
| 2 | 425 | 10213713 | 1 | 406092.8 | 16.898 | 0 |
| modelo | observaciones | r_cuadrado | r_cuadrado_ajustado | error_residual | AIC | BIC | p_valor |
|---|---|---|---|---|---|---|---|
| Sin parqueaderos: 431 registros | 431 | 0.586 | 0.582 | 157.890 | 5593.450 | 5617.847 | <0.001 |
| Con parqueaderos: 431 registros | 431 | 0.602 | 0.597 | 155.023 | 5578.646 | 5607.108 | <0.001 |
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + banios,
## data = base1_analisis)
##
## Residuals:
## Min 1Q Median 3Q Max
## -925.47 -80.08 -16.30 49.66 1078.85
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -250.26336 31.84006 -7.860 0.0000000000000147 ***
## areaconst 0.78282 0.04612 16.975 < 0.0000000000000002 ***
## estrato 85.83958 7.47732 11.480 < 0.0000000000000002 ***
## habitaciones 4.03860 4.80576 0.840 0.401
## banios 30.14243 5.88878 5.119 0.0000003988172204 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 158 on 695 degrees of freedom
## Multiple R-squared: 0.6539, Adjusted R-squared: 0.652
## F-statistic: 328.3 on 4 and 695 DF, p-value: < 0.00000000000000022
| variable | estimacion | error_estandar | estadistico_t | p_valor | limite_inferior | limite_superior | significativa |
|---|---|---|---|---|---|---|---|
| Intercepto | -250.263 | 31.840 | -7.860 | <0.001 | -312.778 | -187.749 | Sí |
| Área construida | 0.783 | 0.046 | 16.975 | <0.001 | 0.692 | 0.873 | Sí |
| Estrato | 85.840 | 7.477 | 11.480 | <0.001 | 71.159 | 100.520 | Sí |
| Habitaciones | 4.039 | 4.806 | 0.840 | 0.401 | -5.397 | 13.474 | No |
| Baños | 30.142 | 5.889 | 5.119 | <0.001 | 18.580 | 41.704 | Sí |
| variable | coeficiente_principal | coeficiente_complementario | diferencia_absoluta | cambio_porcentual | mismo_signo |
|---|---|---|---|---|---|
| Intercepto | -231.573 | -250.263 | 18.691 | 7.468 | Sí |
| Área construida | 0.665 | 0.783 | -0.118 | 15.096 | Sí |
| Estrato | 78.354 | 85.840 | -7.485 | 8.720 | Sí |
| Habitaciones | 6.068 | 4.039 | 2.029 | 50.249 | Sí |
| Baños | 22.414 | 30.142 | -7.728 | 25.638 | Sí |
| variables_con_mismo_signo | total_variables | cambio_porcentual_medio | cambio_porcentual_maximo |
|---|---|---|---|
| 4 | 4 | 24.93 | 50.25 |
El modelo principal fue estimado con 431 viviendas y explicó el 60.22 % de la variabilidad del precio. Las variables con efectos individuales estadísticamente significativos fueron: área construida, estrato, parqueaderos, baños . No se encontró evidencia suficiente de un efecto individual para: habitaciones . La estabilidad definitiva del modelo deberá evaluarse mediante la validación de supuestos, el análisis de observaciones influyentes y la comparación de sus predicciones.
Antes de usar el modelo se revisa el comportamiento de sus residuales. Las pruebas y los gráficos permiten evaluar linealidad, varianza constante, normalidad, independencia, multicolinealidad y observaciones influyentes. Un incumplimiento no implica eliminar el modelo de inmediato, pero sí obliga a interpretar sus resultados con cautela.
| media_residuales | desviacion_residuales | minimo_estandarizado | maximo_estandarizado | residuales_mayores_2 | residuales_mayores_3 |
|---|---|---|---|---|---|
| 0 | 154.12 | -5.441 | 6.427 | 16 | 11 |
| prueba | estadistico | grados_libertad | p_valor | decision |
|---|---|---|---|---|
| Breusch-Pagan | 78.183 | 5 | <0.001 | Se rechaza H0: existe evidencia de heterocedasticidad |
| prueba | estadistico | p_valor | decision |
|---|---|---|---|
| Goldfeld-Quandt | 10.644 | <0.001 | Se rechaza H0: existe evidencia de varianza no constante |
| prueba | estadistico | p_valor | decision |
|---|---|---|---|
| Shapiro-Wilk | 0.85 | <0.001 | Se rechaza H0: los residuales no siguen normalidad |
| prueba | estadistico | p_valor | decision |
|---|---|---|---|
| Durbin-Watson | 1.744 | 0.00332 | Se rechaza H0: existe evidencia de autocorrelación |
| variable | VIF | diagnostico |
|---|---|---|
| Área construida | 1.474 | Sin problemas importantes |
| Estrato | 1.331 | Sin problemas importantes |
| Habitaciones | 1.744 | Sin problemas importantes |
| Parqueaderos | 1.236 | Sin problemas importantes |
| Baños | 2.064 | Sin problemas importantes |
| indicador | limite | observaciones |
|---|---|---|
| Residuales estudentizados con valor absoluto mayor que 3 | 3.0000 | 11 |
| Observaciones con leverage superior a 2p/n | 0.0278 | 40 |
| Observaciones con distancia de Cook superior a 4/n | 0.0093 | 24 |
| id | preciom | areaconst | estrato | habitaciones | parqueaderos | banios | valor_ajustado | residual_estudentizado | leverage | distancia_cook |
|---|---|---|---|---|---|---|---|---|---|---|
| 534 | 370 | 1440.0 | 3 | 10 | 1 | 4 | 1135.188 | -5.635 | 0.177 | 1.063 |
| 4564 | 1940 | 734.0 | 5 | 10 | 3 | 8 | 960.866 | 6.756 | 0.034 | 0.244 |
| 4349 | 650 | 1188.0 | 5 | 6 | 4 | 6 | 1217.787 | -3.879 | 0.079 | 0.208 |
| 4056 | 1600 | 942.0 | 5 | 10 | 4 | 4 | 1033.728 | 3.842 | 0.067 | 0.170 |
| 5710 | 1530 | 776.0 | 5 | 10 | 6 | 6 | 1016.775 | 3.424 | 0.042 | 0.083 |
| 8319 | 1400 | 838.0 | 5 | 5 | 1 | 5 | 883.857 | 3.439 | 0.039 | 0.078 |
| 3284 | 1250 | 330.0 | 6 | 4 | 6 | 5 | 739.876 | 3.376 | 0.027 | 0.051 |
| 5263 | 1500 | 470.0 | 6 | 5 | 3 | 6 | 788.586 | 4.736 | 0.014 | 0.050 |
| 1065 | 350 | 350.0 | 3 | 4 | 10 | 2 | 547.960 | -1.364 | 0.122 | 0.043 |
| 3449 | 1500 | 400.0 | 5 | 4 | 2 | 3 | 566.121 | 6.316 | 0.007 | 0.043 |
| 4559 | 1300 | 552.0 | 6 | 9 | 7 | 9 | 1031.699 | 1.778 | 0.047 | 0.026 |
| 620 | 800 | 900.0 | 5 | 4 | 6 | 5 | 1040.368 | -1.600 | 0.057 | 0.026 |
| 4324 | 1200 | 523.3 | 5 | 7 | 2 | 4 | 688.689 | 3.359 | 0.013 | 0.023 |
| 4274 | 1270 | 950.0 | 5 | 10 | 4 | 5 | 1061.460 | 1.385 | 0.054 | 0.018 |
| 2851 | 990 | 290.0 | 5 | 3 | 4 | 3 | 535.491 | 2.977 | 0.012 | 0.018 |
| 4975 | 680 | 452.0 | 6 | 10 | 1 | 10 | 848.071 | -1.128 | 0.075 | 0.017 |
| 4548 | 850 | 296.0 | 5 | 4 | 4 | 2 | 523.132 | 2.137 | 0.019 | 0.014 |
| 4335 | 1200 | 730.0 | 5 | 6 | 4 | 6 | 913.381 | 1.874 | 0.021 | 0.012 |
| 4567 | 650 | 765.0 | 5 | 5 | 2 | 6 | 882.027 | -1.523 | 0.031 | 0.012 |
| 4561 | 1000 | 350.0 | 5 | 3 | 2 | 3 | 526.821 | 3.095 | 0.008 | 0.012 |
| 4322 | 490 | 452.0 | 6 | 8 | 3 | 6 | 794.826 | -1.991 | 0.018 | 0.012 |
| 5772 | 870 | 292.0 | 5 | 8 | 2 | 5 | 563.440 | 2.000 | 0.015 | 0.010 |
| 5444 | 850 | 736.0 | 6 | 9 | 4 | 8 | 1058.756 | -1.368 | 0.030 | 0.010 |
| 2650 | 830 | 292.0 | 4 | 8 | 4 | 6 | 556.049 | 1.787 | 0.017 | 0.009 |
| 3193 | 950 | 450.0 | 5 | 5 | 8 | 5 | 795.896 | 1.017 | 0.045 | 0.008 |
| 4920 | 800 | 800.0 | 5 | 7 | 3 | 7 | 964.114 | -1.075 | 0.029 | 0.006 |
| 3688 | 430 | 250.0 | 4 | 4 | 7 | 5 | 554.270 | -0.819 | 0.042 | 0.005 |
| 3259 | 1050 | 850.0 | 5 | 5 | 2 | 5 | 916.107 | 0.879 | 0.035 | 0.005 |
| 2275 | 480 | 180.0 | 5 | 10 | 5 | 6 | 596.373 | -0.768 | 0.046 | 0.005 |
| 2276 | 480 | 180.0 | 5 | 10 | 5 | 6 | 596.373 | -0.768 | 0.046 | 0.005 |
| 3906 | 750 | 700.0 | 5 | 5 | 3 | 7 | 885.514 | -0.888 | 0.032 | 0.004 |
| 2557 | 900 | 850.0 | 5 | 4 | 1 | 2 | 818.521 | 0.540 | 0.056 | 0.003 |
| 521 | 550 | 588.0 | 3 | 9 | 2 | 6 | 631.948 | -0.537 | 0.032 | 0.002 |
| 2922 | 720 | 296.0 | 5 | 7 | 9 | 7 | 774.780 | -0.365 | 0.066 | 0.002 |
| 133 | 275 | 85.0 | 3 | 9 | 1 | 3 | 206.115 | 0.453 | 0.040 | 0.001 |
| 2924 | 790 | 296.0 | 5 | 7 | 7 | 7 | 726.231 | 0.419 | 0.039 | 0.001 |
| 2360 | 690 | 434.0 | 5 | 9 | 3 | 8 | 755.405 | -0.428 | 0.028 | 0.001 |
| 2858 | 488 | 200.0 | 5 | 2 | 6 | 4 | 540.568 | -0.345 | 0.035 | 0.001 |
| 2759 | 600 | 364.0 | 5 | 8 | 1 | 3 | 542.191 | 0.378 | 0.029 | 0.001 |
| 2752 | 600 | 366.0 | 5 | 8 | 1 | 3 | 543.520 | 0.369 | 0.029 | 0.001 |
| 1173 | 275 | 155.0 | 3 | 8 | 1 | 2 | 224.157 | 0.333 | 0.034 | 0.001 |
| 802 | 470 | 128.0 | 4 | 10 | 4 | 8 | 504.012 | -0.225 | 0.054 | 0.000 |
| 743 | 245 | 84.0 | 3 | 9 | 1 | 3 | 205.450 | 0.260 | 0.040 | 0.000 |
| 3854 | 600 | 300.0 | 5 | 5 | 5 | 2 | 556.133 | 0.287 | 0.030 | 0.000 |
| 626 | 190 | 146.0 | 3 | 2 | 1 | 4 | 226.597 | -0.239 | 0.028 | 0.000 |
| 5587 | 750 | 376.0 | 6 | 9 | 3 | 5 | 727.967 | 0.144 | 0.031 | 0.000 |
| 4671 | 540 | 306.0 | 4 | 9 | 5 | 4 | 550.867 | -0.071 | 0.035 | 0.000 |
| 1298 | 690 | 358.0 | 4 | 9 | 6 | 8 | 699.360 | -0.062 | 0.043 | 0.000 |
| 5540 | 950 | 468.0 | 6 | 7 | 7 | 8 | 941.319 | 0.057 | 0.040 | 0.000 |
| 1110 | 540 | 280.0 | 4 | 6 | 7 | 3 | 541.517 | -0.010 | 0.045 | 0.000 |
| 923 | 560 | 472.0 | 3 | 10 | 2 | 6 | 560.917 | -0.006 | 0.034 | 0.000 |
| supuesto | estadistico | p_valor | resultado |
|---|---|---|---|
| Varianza constante: Breusch-Pagan | 78.183 | < 0.001 | Requiere atención |
| Varianza constante: Goldfeld-Quandt | 10.644 | < 0.001 | Requiere atención |
| Normalidad: Shapiro-Wilk | 0.850 | < 0.001 | Requiere atención |
| Independencia: Durbin-Watson | 1.744 | 0.00332 | Requiere atención |
La validación se realizó sobre los 431 registros empleados en el modelo principal. Las pruebas de varianza constante muestran evidencia de heterocedasticidad. Se recomienda considerar errores estándar robustos, transformar el precio o revisar la especificación del modelo. La prueba de Shapiro-Wilk rechaza la normalidad de los residuales. Este resultado debe analizarse conjuntamente con el gráfico de probabilidad normal, debido a la sensibilidad de la prueba frente al tamaño de la muestra. La prueba de Durbin-Watson muestra evidencia de autocorrelación; por tanto, debe revisarse el posible orden espacial o temporal de las observaciones. Los factores VIF no indican problemas importantes de multicolinealidad. Las observaciones señaladas mediante residuales, leverage o distancia de Cook deben revisarse, pero no eliminarse automáticamente sin una justificación técnica.
Con el modelo seleccionado se estima el precio de la primera vivienda para los estratos solicitados. Se presentan el valor puntual, el intervalo de confianza para el precio medio y el intervalo de predicción para una vivienda particular. Este último es más amplio porque incorpora la variación individual del mercado.
| escenario | tipo | zona | areaconst | parqueaderos | banios | habitaciones | estrato | credito_maximo |
|---|---|---|---|---|---|---|---|---|
| Vivienda 1 - Estrato 4 | Casa | Zona Norte | 200 | 1 | 2 | 4 | 4 | 350 |
| Vivienda 1 - Estrato 5 | Casa | Zona Norte | 200 | 1 | 2 | 4 | 5 | 350 |
| variable | valor_solicitado | rango_observado | dentro_del_rango |
|---|---|---|---|
| Área construida | 200 | 30 - 1440 | Sí |
| Estrato | 4 o 5 | 3 - 6 | Sí |
| Habitaciones | 4 | 1 - 10 | Sí |
| Parqueaderos | 1 | 1 - 10 | Sí |
| Baños | 2 | 1 - 10 | Sí |
nuevos_datos_vivienda1 <- vivienda1_solicitada %>%
dplyr::select(
areaconst,
estrato,
habitaciones,
parqueaderos,
banios
)
prediccion_media_vivienda1 <- predict(
modelo1_principal,
newdata = nuevos_datos_vivienda1,
interval = "confidence",
level = 0.95
) %>%
as.data.frame()
tabla_media_vivienda1 <- vivienda1_solicitada %>%
dplyr::select(
escenario,
estrato,
credito_maximo
) %>%
dplyr::bind_cols(prediccion_media_vivienda1) %>%
dplyr::rename(
precio_estimado = fit,
limite_inferior_media = lwr,
limite_superior_media = upr
)
knitr::kable(
tabla_media_vivienda1,
digits = 2,
caption = "Estimación del precio medio para la vivienda 1"
)
| escenario | estrato | credito_maximo | precio_estimado | limite_inferior_media | limite_superior_media |
|---|---|---|---|---|---|
| Vivienda 1 - Estrato 4 | 4 | 350 | 308.15 | 282.75 | 333.54 |
| Vivienda 1 - Estrato 5 | 5 | 350 | 386.50 | 353.77 | 419.24 |
| escenario | estrato | credito_maximo | precio_estimado | limite_inferior_media | limite_superior_media | limite_inferior_prediccion | limite_superior_prediccion | diferencia_credito | cumple_estimacion_puntual | credito_cubre_limite_superior |
|---|---|---|---|---|---|---|---|---|---|---|
| Vivienda 1 - Estrato 4 | 4 | 350 | 308.15 | 282.75 | 333.54 | 2.38 | 613.91 | 41.85 | Sí | No |
| Vivienda 1 - Estrato 5 | 5 | 350 | 386.50 | 353.77 | 419.24 | 80.04 | 692.96 | -36.50 | No | No |
| escenario | intercepto | aporte_area | aporte_estrato | aporte_habitaciones | aporte_parqueaderos | aporte_banios | precio_calculado |
|---|---|---|---|---|---|---|---|
| Vivienda 1 - Estrato 4 | -231.57 | 132.93 | 313.42 | 24.27 | 24.27 | 44.83 | 308.15 |
| Vivienda 1 - Estrato 5 | -231.57 | 132.93 | 391.77 | 24.27 | 24.27 | 44.83 | 386.50 |
Vivienda 1 - Estrato 4: el modelo estima un precio de $308.15 millones. El intervalo de predicción del 95% se encuentra entre $2.38 millones y $613.91 millones. La estimación puntual se encuentra dentro del crédito preaprobado de $350 millones, con un margen estimado de $41.85 millones.
Vivienda 1 - Estrato 5: el modelo estima un precio de $386.5 millones. El intervalo de predicción del 95% se encuentra entre $80.04 millones y $692.96 millones. La estimación puntual supera el crédito preaprobado en $36.5 millones.
Para una casa de 200 m², cuatro habitaciones, un parqueadero y dos baños en la zona norte, el precio estimado es de $308.15 millones si pertenece al estrato 4 y de $386.5 millones si pertenece al estrato 5. La diferencia entre los escenarios es de aproximadamente $78.35 millones, manteniendo iguales las demás características.
La alternativa de estrato 4 resulta compatible con el crédito preaprobado según la estimación puntual. La alternativa de estrato 5 supera el crédito disponible según la estimación puntual.
Los intervalos de predicción deben interpretarse con cautela, debido a los problemas de heterocedasticidad, normalidad e independencia identificados durante la validación. Por esta razón, la recomendación definitiva debe complementarse con la revisión de ofertas reales disponibles en la base.
La predicción se complementa con ofertas observadas que no superan el crédito disponible. La priorización considera el cumplimiento de las condiciones y la cercanía con las características solicitadas. El mapa sirve para revisar la distribución espacial, pero la ubicación debe confirmarse antes de una recomendación definitiva.
| caracteristica | condicion | tratamiento |
|---|---|---|
| Tipo | Casa | Filtro obligatorio |
| Zona | Zona Norte | Filtro obligatorio |
| Área construida | 200 m² | Criterio de cercanía |
| Parqueaderos | 1 | Filtro obligatorio |
| Baños | 2 | Criterio de cercanía |
| Habitaciones | 4 | Criterio de cercanía |
| Estrato | 4 o 5 | Filtro obligatorio |
| Presupuesto máximo | $350 millones | Filtro obligatorio |
candidatas_vivienda1 <- base1_analisis %>%
dplyr::filter(
estrato %in% c(4, 5),
parqueaderos == 1,
preciom <= 350,
!is.na(longitud),
!is.na(latitud),
is.finite(longitud),
is.finite(latitud),
longitud >= -180,
longitud <= 180,
latitud >= -90,
latitud <= 90
)
resumen_candidatas_vivienda1 <- tibble::tibble(
indicador = c(
"Casas disponibles en la base de análisis",
"Casas con estrato 4 o 5",
"Casas con estrato 4 o 5 y un parqueadero",
"Casas que además cuestan máximo $350 millones",
"Casas candidatas con coordenadas disponibles"
),
registros = c(
nrow(base1_analisis),
base1_analisis %>%
dplyr::filter(
estrato %in% c(4, 5)
) %>%
nrow(),
base1_analisis %>%
dplyr::filter(
estrato %in% c(4, 5),
parqueaderos == 1
) %>%
nrow(),
base1_analisis %>%
dplyr::filter(
estrato %in% c(4, 5),
parqueaderos == 1,
preciom <= 350
) %>%
nrow(),
nrow(candidatas_vivienda1)
)
)
knitr::kable(
resumen_candidatas_vivienda1,
caption = "Proceso de filtrado de las ofertas potenciales"
)
| indicador | registros |
|---|---|
| Casas disponibles en la base de análisis | 700 |
| Casas con estrato 4 o 5 | 418 |
| Casas con estrato 4 o 5 y un parqueadero | 95 |
| Casas que además cuestan máximo $350 millones | 36 |
| Casas candidatas con coordenadas disponibles | 36 |
| estrato | ofertas_disponibles | porcentaje |
|---|---|---|
| 4 | 21 | 58.33 |
| 5 | 15 | 41.67 |
| oferta | id | Barrio | Estrato | Precio (millones) | Área construida | Habitaciones | Parqueaderos | Baños | Margen del crédito | Coincidencias exactas | Índice de distancia |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Oferta 1 | 3586 | La Merced | 4 | 330 | 240 | 3 | 1 | 2 | 20 | 2 | 0.32 |
| Oferta 2 | 4779 | Prados Del Norte | 5 | 280 | 140 | 3 | 1 | 2 | 70 | 2 | 0.39 |
| Oferta 3 | 1666 | Alamos | 4 | 275 | 120 | 4 | 1 | 2 | 75 | 3 | 0.40 |
| Oferta 4 | 1924 | Vipasa | 4 | 320 | 264 | 3 | 1 | 2 | 30 | 2 | 0.41 |
| Oferta 5 | 94 | Zona Norte | 4 | 265 | 162 | 4 | 1 | 3 | 85 | 2 | 0.53 |
| oferta | barrio | estrato | precio | area | diferencia_area | habitaciones | diferencia_habitaciones | parqueaderos | banios | diferencia_banios | margen_credito |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Oferta 1 | La Merced | 4 | 330 | 240 m² | +40 m² | 3 | -1 | 1 | 2 | 0 | 20 |
| Oferta 2 | Prados Del Norte | 5 | 280 | 140 m² | -60 m² | 3 | -1 | 1 | 2 | 0 | 70 |
| Oferta 3 | Alamos | 4 | 275 | 120 m² | -80 m² | 4 | 0 | 1 | 2 | 0 | 75 |
| Oferta 4 | Vipasa | 4 | 320 | 264 m² | +64 m² | 3 | -1 | 1 | 2 | 0 | 30 |
| Oferta 5 | Zona Norte | 4 | 265 | 162 m² | -38 m² | 4 | 0 | 1 | 3 | 1 | 85 |
| longitud_media | latitud_media | longitud_minima | longitud_maxima | latitud_minima | latitud_maxima |
|---|---|---|---|---|---|
| -76.5156 | 3.47356 | -76.533 | -76.48238 | 3.456 | 3.48459 |
Se identificaron 36 ofertas que cumplen los filtros obligatorios de estrato 4 o 5, un parqueadero, precio máximo de $350 millones y disponibilidad de coordenadas. De estas se seleccionaron las cinco con menor distancia frente al área, las habitaciones y los baños solicitados.
La alternativa mejor clasificada es la Oferta 1, ubicada en el barrio La Merced. Tiene un precio de $330 millones, un área de 240 m², 3 habitaciones, 2 baños, 1 parqueadero y pertenece al estrato 4.
Esta oferta deja un margen de $20 millones frente al crédito preaprobado. La clasificación sirve como apoyo para la decisión, pero antes de recomendar la compra deben verificarse directamente la disponibilidad, el estado físico, la documentación, el barrio y la exactitud de las coordenadas.
El mismo procedimiento se replica para los apartamentos de la zona sur. Mantener las etapas de filtro, depuración y exploración facilita la comparación entre las dos solicitudes sin mezclar mercados diferentes.
| Característica | Solicitud |
|---|---|
| Tipo | Apartamento |
| Zona | Zona Sur |
| Área construida | 300 m² |
| Parqueaderos | 3 |
| Baños | 3 |
| Habitaciones | 5 |
| Estrato | 5 o 6 |
| Crédito máximo | $850 millones |
base2 <- vivienda_limpia %>%
dplyr::filter(
tipo == "Apartamento",
zona == "Zona Sur"
)
resultado_filtro_base2 <- tibble::tibble(
indicador = c(
"Registros de la base limpia",
"Apartamentos de la zona sur",
"Porcentaje de la base limpia"
),
resultado = c(
as.character(nrow(vivienda_limpia)),
as.character(nrow(base2)),
paste0(
round(
nrow(base2) /
nrow(vivienda_limpia) * 100,
2
),
"%"
)
)
)
knitr::kable(
resultado_filtro_base2,
caption = "Resultado del filtro para la vivienda 2"
)
| indicador | resultado |
|---|---|
| Registros de la base limpia | 8321 |
| Apartamentos de la zona sur | 2787 |
| Porcentaje de la base limpia | 33.49% |
| id | tipo | zona | barrio | estrato | preciom | areaconst | habitaciones | parqueaderos | banios | longitud | latitud |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 5098 | Apartamento | Zona Sur | Acopi | 4 | 290 | 96 | 3 | 1 | 2 | -76.53 | 3.45 |
| 698 | Apartamento | Zona Sur | Aguablanca | 3 | 78 | 40 | 2 | 1 | 1 | -76.50 | 3.40 |
| 8199 | Apartamento | Zona Sur | Aguacatal | 6 | 875 | 194 | 3 | 2 | 5 | -76.56 | 3.46 |
| tipo | zona | registros | porcentaje |
|---|---|---|---|
| Apartamento | Zona Sur | 2787 | 100 |
| variable | cantidad_faltantes | porcentaje_faltante |
|---|---|---|
| piso | 622 | 22.32 |
| parqueaderos | 406 | 14.57 |
| id | 0 | 0.00 |
| zona | 0 | 0.00 |
| estrato | 0 | 0.00 |
| preciom | 0 | 0.00 |
| areaconst | 0 | 0.00 |
| banios | 0 | 0.00 |
| habitaciones | 0 | 0.00 |
| tipo | 0 | 0.00 |
| barrio | 0 | 0.00 |
| longitud | 0 | 0.00 |
| latitud | 0 | 0.00 |
| validacion | registros |
|---|---|
| Precios menores o iguales a cero | 0 |
| Areas menores o iguales a cero | 0 |
| Estratos fuera del rango 3 a 6 | 0 |
| Habitaciones menores o iguales a cero | 8 |
| Banios menores o iguales a cero | 6 |
| Parqueaderos negativos | 0 |
| Coordenadas ausentes o no validas | 0 |
| indicador | resultado |
|---|---|
| Registros antes de la depuracion | 2787 |
| Registros despues de la depuracion | 2777 |
| Registros retirados | 10 |
| Porcentaje conservado | 99.64% |
| disponibilidad | registros | porcentaje | precio_medio | area_media | estrato_medio | habitaciones_media | banios_media |
|---|---|---|---|---|---|---|---|
| Con informacion | 2375 | 85.52 | 318.05 | 102.11 | 4.75 | 3.02 | 2.59 |
| Sin informacion | 402 | 14.48 | 172.14 | 68.76 | 3.93 | 2.68 | 1.92 |
| indicador | resultado |
|---|---|
| Registros disponibles para el analisis | 2777 |
| Registros completos para el modelo | 2375 |
| Registros excluidos por informacion faltante | 402 |
| Porcentaje utilizado | 85.52% |
| variable | registros | media | mediana | desviacion_estandar | minimo | primer_cuartil | tercer_cuartil | maximo |
|---|---|---|---|---|---|---|---|---|
| Area construida | 2777 | 97.28 | 85 | 51.92 | 40 | 65 | 110 | 932 |
| Banios | 2777 | 2.49 | 2 | 0.93 | 1 | 2 | 3 | 8 |
| Estrato | 2777 | 4.63 | 5 | 0.84 | 3 | 4 | 5 | 6 |
| Habitaciones | 2777 | 2.97 | 3 | 0.61 | 1 | 3 | 3 | 6 |
| Parqueaderos | 2375 | 1.41 | 1 | 0.65 | 1 | 1 | 2 | 10 |
| Precio | 2777 | 296.93 | 245 | 190.87 | 75 | 175 | 335 | 1750 |
| variable | registros | correlacion | direccion | intensidad | p_valor |
|---|---|---|---|---|---|
| Area construida | 2777 | 0.757 | Positiva | Fuerte | <0.001 |
| Estrato | 2777 | 0.673 | Positiva | Fuerte | <0.001 |
| Habitaciones | 2777 | 0.344 | Positiva | Moderada | <0.001 |
| Parqueaderos | 2375 | 0.702 | Positiva | Fuerte | <0.001 |
| Banios | 2777 | 0.733 | Positiva | Fuerte | <0.001 |
| Precio | Area | Estrato | Habitaciones | Parqueaderos | Banios | |
|---|---|---|---|---|---|---|
| Precio | 1.000 | 0.757 | 0.673 | 0.344 | 0.702 | 0.733 |
| Area | 0.757 | 1.000 | 0.483 | 0.450 | 0.582 | 0.687 |
| Estrato | 0.673 | 0.483 | 1.000 | 0.212 | 0.502 | 0.572 |
| Habitaciones | 0.344 | 0.450 | 0.212 | 1.000 | 0.281 | 0.522 |
| Parqueaderos | 0.702 | 0.582 | 0.502 | 0.281 | 1.000 | 0.593 |
| Banios | 0.733 | 0.687 | 0.572 | 0.522 | 0.593 | 1.000 |
| Area | Estrato | Habitaciones | Parqueaderos | Banios | |
|---|---|---|---|---|---|
| Area | 1.000 | 0.483 | 0.450 | 0.582 | 0.687 |
| Estrato | 0.483 | 1.000 | 0.212 | 0.502 | 0.572 |
| Habitaciones | 0.450 | 0.212 | 1.000 | 0.281 | 0.522 |
| Parqueaderos | 0.582 | 0.502 | 0.281 | 1.000 | 0.593 |
| Banios | 0.687 | 0.572 | 0.522 | 0.593 | 1.000 |
## No se identificaron pares de variables predictoras con correlación absoluta igual o superior a 0,70.
La base depurada contiene 2777 apartamentos de la zona sur. Para estimar el modelo con todas las variables requeridas se dispone de 2375 registros completos.
La variable con mayor relación lineal con el precio es Area construida, con una correlación de 0.757. La asociación se clasifica como fuerte y positiva.
La variable zona no se incorpora como predictora porque todos los registros corresponden a la zona sur y no presenta variabilidad. Las relaciones identificadas son bivariadas y deberán confirmarse mediante el modelo de regresión lineal múltiple.
El segundo modelo conserva la misma estructura de variables. Se revisan su significancia global, sus coeficientes y su capacidad explicativa. El modelo sin parqueaderos se mantiene como apoyo para examinar el efecto de los registros que no tienen esa información.
| componente | descripcion |
|---|---|
| Variable respuesta | Precio de la vivienda en millones de pesos |
| Variables predictoras | Area construida, estrato, habitaciones, parqueaderos y banios |
| Tipo de vivienda | Apartamento |
| Zona | Zona Sur |
| Base utilizada | base2_modelo |
| Registros utilizados | 2375 |
modelo2_principal <- stats::lm(
formula = formula_modelo2,
data = base2_modelo
)
summary(modelo2_principal)
##
## Call:
## stats::lm(formula = formula_modelo2, data = base2_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1095.63 -42.49 -1.25 40.97 922.58
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -255.85169 15.95956 -16.031 < 0.0000000000000002 ***
## areaconst 1.29109 0.05415 23.842 < 0.0000000000000002 ***
## estrato 60.27082 3.09689 19.462 < 0.0000000000000002 ***
## habitaciones -26.58471 4.03631 -6.586 0.0000000000553 ***
## parqueaderos 75.72992 4.19324 18.060 < 0.0000000000000002 ***
## banios 49.94971 3.46080 14.433 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 98.02 on 2369 degrees of freedom
## Multiple R-squared: 0.7477, Adjusted R-squared: 0.7471
## F-statistic: 1404 on 5 and 2369 DF, p-value: < 0.00000000000000022
| fuente | grados_libertad | suma_cuadrados | media_cuadratica | estadistico_f | p_valor |
|---|---|---|---|---|---|
| Area construida | 1 | 49320220.909 | 49320220.909 | 5132.875 | 0.000 |
| Estrato | 1 | 11322257.177 | 11322257.177 | 1178.335 | 0.000 |
| Habitaciones | 1 | 212.866 | 212.866 | 0.022 | 0.882 |
| Parqueaderos | 1 | 4800529.628 | 4800529.628 | 499.603 | 0.000 |
| Banios | 1 | 2001602.846 | 2001602.846 | 208.312 | 0.000 |
| Residuales | 2369 | 22762994.005 | 9608.693 |
| indicador | resultado |
|---|---|
| Numero de observaciones | 2375 |
| R cuadrado | 0.7477 |
| R cuadrado ajustado | 0.7471 |
| Error estandar residual | 98.024 |
| Estadistico F | 1403.829 |
| Grados de libertad del modelo | 5 |
| Grados de libertad residuales | 2369 |
| Valor p global | <0.001 |
| AIC | 28527.71 |
| BIC | 28568.12 |
El modelo explica aproximadamente 74.77% de la variabilidad observada en el precio de los apartamentos de la zona sur. Despues de considerar el numero de variables incluidas, el R cuadrado ajustado es de 74.71%.
El modelo es estadisticamente significativo en su conjunto al nivel del 5 por ciento.
| variable | estimacion | error_estandar | estadistico_t | p_valor | limite_inferior | limite_superior | significativa |
|---|---|---|---|---|---|---|---|
| Intercepto | -255.852 | 15.960 | -16.031 | <0.001 | -287.148 | -224.556 | Si |
| Area construida | 1.291 | 0.054 | 23.842 | <0.001 | 1.185 | 1.397 | Si |
| Estrato | 60.271 | 3.097 | 19.462 | <0.001 | 54.198 | 66.344 | Si |
| Habitaciones | -26.585 | 4.036 | -6.586 | <0.001 | -34.500 | -18.670 | Si |
| Parqueaderos | 75.730 | 4.193 | 18.060 | <0.001 | 67.507 | 83.953 | Si |
| Banios | 49.950 | 3.461 | 14.433 | <0.001 | 43.163 | 56.736 | Si |
Manteniendo constantes las demas variables, un metro cuadrado adicional de area construida se asocia con un cambio promedio de 1.291 millones de pesos en el precio. El efecto es estadisticamente significativo al nivel del 5 por ciento.
Manteniendo constantes las demas variables, aumentar un nivel de estrato se asocia con un cambio promedio de 60.271 millones de pesos en el precio. El efecto es estadisticamente significativo al nivel del 5 por ciento.
Manteniendo constantes las demas variables, una habitacion adicional se asocia con un cambio promedio de -26.585 millones de pesos en el precio. El efecto es estadisticamente significativo al nivel del 5 por ciento.
Manteniendo constantes las demas variables, un parqueadero adicional se asocia con un cambio promedio de 75.73 millones de pesos en el precio. El efecto es estadisticamente significativo al nivel del 5 por ciento.
Manteniendo constantes las demas variables, un banio adicional se asocia con un cambio promedio de 49.95 millones de pesos en el precio. El efecto es estadisticamente significativo al nivel del 5 por ciento.
##
## Call:
## stats::lm(formula = preciom ~ areaconst + estrato + habitaciones +
## banios, data = base2_analisis)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1402.44 -42.57 -4.41 38.93 955.76
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -266.90742 14.07167 -18.97 < 0.0000000000000002 ***
## areaconst 1.61584 0.05122 31.55 < 0.0000000000000002 ***
## estrato 69.91593 2.79168 25.04 < 0.0000000000000002 ***
## habitaciones -22.65180 3.68903 -6.14 0.000000000941 ***
## banios 60.25211 3.22741 18.67 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 99.23 on 2772 degrees of freedom
## Multiple R-squared: 0.7301, Adjusted R-squared: 0.7297
## F-statistic: 1875 on 4 and 2772 DF, p-value: < 0.00000000000000022
| variable | estimacion | error_estandar | estadistico_t | p_valor | limite_inferior | limite_superior | significativa |
|---|---|---|---|---|---|---|---|
| Intercepto | -266.907 | 14.072 | -18.968 | <0.001 | -294.499 | -239.315 | Si |
| Area construida | 1.616 | 0.051 | 31.549 | <0.001 | 1.515 | 1.716 | Si |
| Estrato | 69.916 | 2.792 | 25.044 | <0.001 | 64.442 | 75.390 | Si |
| Habitaciones | -22.652 | 3.689 | -6.140 | <0.001 | -29.885 | -15.418 | Si |
| Banios | 60.252 | 3.227 | 18.669 | <0.001 | 53.924 | 66.580 | Si |
| modelo | muestra | observaciones | r_cuadrado | r_cuadrado_ajustado | error_estandar | estadistico_f | p_valor | AIC | BIC |
|---|---|---|---|---|---|---|---|---|---|
| Principal con parqueaderos | Registros completos | 2375 | 0.748 | 0.747 | 98.024 | 1403.829 | 0 | 28527.71 | 28568.12 |
| Complementario sin parqueaderos | Base depurada | 2777 | 0.730 | 0.730 | 99.232 | 1874.703 | 0 | 33422.10 | 33457.67 |
| modelo | observaciones | r_cuadrado | r_cuadrado_ajustado | error_estandar | AIC | BIC |
|---|---|---|---|---|---|---|
| Con parqueaderos | 2375 | 0.748 | 0.747 | 98.024 | 28527.71 | 28568.12 |
| Sin parqueaderos | 2375 | 0.713 | 0.712 | 104.532 | 28832.06 | 28866.70 |
| Res.Df | RSS | Df | Sum of Sq | F | Pr(>F) |
|---|---|---|---|---|---|
| 2370 | 25897005 | ||||
| 2369 | 22762994 | 1 | 3134011 | 326.164 | 0 |
| variable | coeficiente_principal | coeficiente_sin_parqueaderos | diferencia_absoluta | cambio_porcentual | mismo_signo |
|---|---|---|---|---|---|
| Intercepto | -255.852 | -267.980 | 12.128 | 4.526 | Si |
| Area construida | 1.291 | 1.570 | -0.279 | 17.775 | Si |
| Estrato | 60.271 | 73.103 | -12.832 | 17.553 | Si |
| Habitaciones | -26.585 | -30.130 | 3.545 | 11.767 | Si |
| Banios | 49.950 | 65.494 | -15.544 | 23.734 | Si |
| muestra | observaciones | r_cuadrado | r_cuadrado_ajustado | error_estandar | AIC | BIC |
|---|---|---|---|---|---|---|
| Base depurada | 2777 | 0.730 | 0.730 | 99.232 | 33422.10 | 33457.67 |
| Casos completos | 2375 | 0.713 | 0.712 | 104.532 | 28832.06 | 28866.70 |
El modelo principal se conserva como modelo de referencia porque incluye todas las caracteristicas solicitadas para la vivienda 2 y permite estimar directamente el efecto del numero de parqueaderos. La variable parqueaderos presenta un aporte estadisticamente significativo en el modelo principal.
El modelo complementario se utiliza solamente como analisis de sensibilidad frente a la perdida de registros ocasionada por los valores faltantes de parqueaderos. La comparacion directa del ajuste debe realizarse sobre la misma muestra, debido a que los modelos estimados con diferente numero de observaciones no son completamente comparables.
La validación del segundo modelo sigue los mismos criterios utilizados para las casas. Esto permite identificar si las estimaciones son estables y qué advertencias deben acompañar la predicción del apartamento.
| indicador | resultado |
|---|---|
| Numero de residuales | 2375.000 |
| Media | 0.000 |
| Desviacion estandar | 97.921 |
| Minimo | -1095.626 |
| Primer cuartil | -42.493 |
| Mediana | -1.250 |
| Tercer cuartil | 40.970 |
| Maximo | 922.575 |
| prueba | hipotesis_nula | estadistico | p_valor | decision |
|---|---|---|---|---|
| Ramsey RESET | La especificacion lineal es adecuada | 265.9586 | 0 | Se rechaza H0 |
| prueba | hipotesis_nula | estadistico | grados_libertad | p_valor | decision |
|---|---|---|---|---|---|
| Breusch-Pagan | La varianza de los errores es constante | 764.2189 | 5 | 0 | Se rechaza H0 |
| prueba | hipotesis_nula | estadistico | p_valor | decision |
|---|---|---|---|---|
| Goldfeld-Quandt | La varianza de los errores es constante | 18.7543 | 0 | Se rechaza H0 |
| prueba | hipotesis_nula | estadistico | p_valor | decision |
|---|---|---|---|---|
| Shapiro-Wilk | Los errores siguen una distribucion normal | 0.7912 | 0 | Se rechaza H0 |
| prueba | hipotesis_nula | estadistico | p_valor | decision |
|---|---|---|---|---|
| Durbin-Watson | No existe autocorrelacion de primer orden | 1.5379 | 0 | Se rechaza H0 |
| variable | vif | diagnostico |
|---|---|---|
| Area construida | 2.065 | Sin problemas importantes |
| Estrato | 1.554 | Sin problemas importantes |
| Habitaciones | 1.444 | Sin problemas importantes |
| Parqueaderos | 1.813 | Sin problemas importantes |
| Banios | 2.606 | Sin problemas importantes |
| criterio | limite | observaciones |
|---|---|---|
| Residual estandarizado absoluto mayor que 3 | 3.0000 | 30 |
| Distancia de Cook mayor que 4 dividido entre n | 0.0017 | 119 |
| Leverage mayor que 2p dividido entre n | 0.0051 | 149 |
| observacion | valor_ajustado | residual | residual_estandarizado | leverage | distancia_cook |
|---|---|---|---|---|---|
| 2036 | 1394.6259 | -1095.6259 | -12.5801 | 0.2106 | 7.0374 |
| 2200 | 800.6461 | -610.6461 | -6.7728 | 0.1540 | 1.3915 |
| 828 | 949.0736 | -779.0736 | -8.3291 | 0.0895 | 1.1362 |
| 951 | 1279.1626 | -549.1626 | -5.7308 | 0.0443 | 0.2540 |
| 743 | 1038.4933 | -388.4933 | -4.0907 | 0.0613 | 0.1822 |
| 393 | 733.0656 | 766.9344 | 7.8702 | 0.0117 | 0.1224 |
| 282 | 968.1538 | 592.8462 | 6.1047 | 0.0185 | 0.1171 |
| 281 | 917.9265 | 832.0735 | 8.5276 | 0.0091 | 0.1119 |
| 1311 | 827.4247 | 922.5753 | 9.4463 | 0.0073 | 0.1093 |
| 367 | 827.4247 | 872.5753 | 8.9343 | 0.0073 | 0.0978 |
| supuesto | prueba | p_valor | resultado |
|---|---|---|---|
| Especificacion lineal | Ramsey RESET | <0.001 | El supuesto presenta indicios de incumplimiento |
| Varianza constante - Breusch-Pagan | Breusch-Pagan | <0.001 | El supuesto presenta indicios de incumplimiento |
| Varianza constante - Goldfeld-Quandt | Goldfeld-Quandt | <0.001 | El supuesto presenta indicios de incumplimiento |
| Normalidad | Shapiro-Wilk | <0.001 | El supuesto presenta indicios de incumplimiento |
| Independencia | Durbin-Watson | <0.001 | El supuesto presenta indicios de incumplimiento |
La prueba RESET identifica posibles problemas en la forma funcional del modelo. Se recomienda evaluar transformaciones, terminos cuadraticos o interacciones.
Las pruebas de varianza identifican indicios de heterocedasticidad. Se recomienda evaluar transformaciones del precio o utilizar errores estandar robustos.
La prueba de Shapiro-Wilk identifica desviaciones de la normalidad. Este resultado debe analizarse junto con el grafico de probabilidad normal y el tamano de la muestra.
La prueba de Durbin-Watson identifica indicios de autocorrelacion de primer orden. Se recomienda revisar el orden de los registros y posibles patrones espaciales.
Los valores VIF son inferiores o iguales a 5, por lo que no se identifican problemas importantes de multicolinealidad.
Se identificaron 119 observaciones con distancia de Cook superior al limite de referencia. Estas observaciones deben revisarse, pero no deben eliminarse automaticamente sin una justificacion tecnica.
Los resultados diagnosticos no implican la eliminacion inmediata del modelo. Las posibles limitaciones deben informarse y tenerse presentes al interpretar la prediccion de la vivienda 2. # Anexo G. Estimación puntual e interpretación (Vivienda 2)
Se calculan dos escenarios porque la solicitud acepta estrato 5 o 6. Además de contrastar las estimaciones con el presupuesto, se verifica si la combinación de características se encuentra suficientemente representada en la muestra.
| escenario | tipo | zona | areaconst | parqueaderos | banios | habitaciones | estrato | presupuesto |
|---|---|---|---|---|---|---|---|---|
| Apartamento estrato 5 | Apartamento | Zona Sur | 300 | 3 | 3 | 5 | 5 | 850 |
| Apartamento estrato 6 | Apartamento | Zona Sur | 300 | 3 | 3 | 5 | 6 | 850 |
| variable | valor_solicitado | minimo_observado | maximo_observado | dentro_del_rango |
|---|---|---|---|---|
| Area construida | 300 | 40 | 932 | Si |
| Estrato | 5 | 3 | 6 | Si |
| Habitaciones | 5 | 1 | 6 | Si |
| Parqueaderos | 3 | 1 | 10 | Si |
| Banios | 3 | 1 | 8 | Si |
| escenario | apalancamiento | limite_referencia | evaluacion |
|---|---|---|---|
| Apartamento estrato 5 | 0.01473 | 0.00505 | Posible extrapolacion conjunta |
| Apartamento estrato 6 | 0.01510 | 0.00505 | Posible extrapolacion conjunta |
prediccion_media_vivienda2 <- as.data.frame(
stats::predict(
modelo2_principal,
newdata = nuevas_viviendas2,
interval = "confidence",
level = 0.95
)
)
names(prediccion_media_vivienda2) <- c(
"precio_estimado",
"ic_media_inferior",
"ic_media_superior"
)
prediccion_individual_vivienda2 <- as.data.frame(
stats::predict(
modelo2_principal,
newdata = nuevas_viviendas2,
interval = "prediction",
level = 0.95
)
)
names(prediccion_individual_vivienda2) <- c(
"precio_estimado_individual",
"ip_inferior",
"ip_superior"
)
resultados_prediccion_vivienda2 <-
nuevas_viviendas2 %>%
dplyr::bind_cols(
prediccion_media_vivienda2,
prediccion_individual_vivienda2 %>%
dplyr::select(
ip_inferior,
ip_superior
)
) %>%
dplyr::mutate(
presupuesto = presupuesto_vivienda2,
margen_presupuesto =
presupuesto - precio_estimado,
cumple_estimacion_puntual = dplyr::if_else(
precio_estimado <= presupuesto,
"Si",
"No"
),
presupuesto_cubre_ic_media = dplyr::if_else(
ic_media_superior <= presupuesto,
"Si",
"No"
),
presupuesto_cubre_ip = dplyr::if_else(
ip_superior <= presupuesto,
"Si",
"No"
)
)
tabla_prediccion_vivienda2 <-
resultados_prediccion_vivienda2 %>%
dplyr::select(
escenario,
precio_estimado,
ic_media_inferior,
ic_media_superior,
ip_inferior,
ip_superior,
presupuesto,
margen_presupuesto,
cumple_estimacion_puntual
)
knitr::kable(
tabla_prediccion_vivienda2,
digits = 2,
caption = "Prediccion del precio para la vivienda 2"
)
| escenario | precio_estimado | ic_media_inferior | ic_media_superior | ip_inferior | ip_superior | presupuesto | margen_presupuesto | cumple_estimacion_puntual |
|---|---|---|---|---|---|---|---|---|
| Apartamento estrato 5 | 676.95 | 653.61 | 700.28 | 483.31 | 870.58 | 850 | 173.05 | Si |
| Apartamento estrato 6 | 737.22 | 713.60 | 760.84 | 543.55 | 930.88 | 850 | 112.78 | Si |
| escenario | presupuesto | precio_estimado | margen_presupuesto | cumple_estimacion_puntual | presupuesto_cubre_ic_media | presupuesto_cubre_ip |
|---|---|---|---|---|---|---|
| Apartamento estrato 5 | 850 | 676.95 | 173.05 | Si | Si | No |
| Apartamento estrato 6 | 850 | 737.22 | 112.78 | Si | Si | No |
El precio estimado es de $676.95 millones. El intervalo de confianza del 95% para el precio medio se encuentra entre $653.61 y $700.28 millones. El intervalo de prediccion para un apartamento individual se encuentra entre $483.31 y $870.58 millones. La estimacion puntual se encuentra 173.05 millones de pesos por debajo del presupuesto.
El precio estimado es de $737.22 millones. El intervalo de confianza del 95% para el precio medio se encuentra entre $713.6 y $760.84 millones. El intervalo de prediccion para un apartamento individual se encuentra entre $543.55 y $930.88 millones. La estimacion puntual se encuentra 112.78 millones de pesos por debajo del presupuesto.
Las estimaciones puntuales de los apartamentos de estrato 5 y estrato 6 se encuentran dentro del presupuesto disponible.
La decision no debe basarse unicamente en la estimacion puntual. Tambien deben considerarse los intervalos obtenidos, la amplitud del intervalo de prediccion y la disponibilidad real de ofertas que cumplan todas las caracteristicas solicitadas.
Las predicciones se obtienen con el modelo principal seleccionado. Sin embargo, la validacion identifico problemas de especificacion lineal, heterocedasticidad, normalidad e independencia. Por esta razon, las estimaciones deben interpretarse como valores de referencia y no como precios exactos. Los intervalos clasicos tambien deben analizarse con cautela. La recomendacion final se complementara con la revision de ofertas reales disponibles dentro del presupuesto de 850 millones de pesos.
Finalmente, se buscan apartamentos de la zona sur dentro del presupuesto. Primero se prioriza el cumplimiento completo; cuando no hay suficientes opciones, se muestran alternativas cercanas o de respaldo y se dejan visibles sus diferencias frente a la solicitud.
| caracteristica | criterio |
|---|---|
| Tipo | Apartamento |
| Zona | Zona Sur |
| Area construida | 300 m2 con tolerancia operativa de 10% |
| Parqueaderos | Minimo 3 |
| Banios | Minimo 3 |
| Habitaciones | Minimo 5 |
| Estrato | 5 o 6 |
| Precio maximo | 850 millones |
ofertas_elegibles_vivienda2 <- base2_analisis %>%
dplyr::filter(
!is.na(preciom),
!is.na(areaconst),
!is.na(estrato),
!is.na(habitaciones),
!is.na(parqueaderos),
!is.na(banios),
!is.na(longitud),
!is.na(latitud),
is.finite(longitud),
is.finite(latitud),
preciom > 0,
preciom <= presupuesto_vivienda2,
estrato %in% c(5, 6),
longitud >= -180,
longitud <= 180,
latitud >= -90,
latitud <= 90
) %>%
dplyr::mutate(
id_oferta = dplyr::row_number()
)
ofertas_exactas_vivienda2 <-
ofertas_elegibles_vivienda2 %>%
dplyr::filter(
abs(areaconst - 300) < 0.01,
parqueaderos == 3,
banios == 3,
habitaciones == 5
)
ofertas_cumplimiento_vivienda2 <-
ofertas_elegibles_vivienda2 %>%
dplyr::filter(
dplyr::between(
areaconst,
270,
330
),
parqueaderos >= 3,
banios >= 3,
habitaciones >= 5
)
resumen_disponibilidad_ofertas2 <- tibble::tibble(
categoria = c(
"Ofertas elegibles por zona, estrato y presupuesto",
"Ofertas que cumplen exactamente los valores",
"Ofertas con area entre 270 y 330 m2 y capacidad minima"
),
cantidad = c(
nrow(ofertas_elegibles_vivienda2),
nrow(ofertas_exactas_vivienda2),
nrow(ofertas_cumplimiento_vivienda2)
)
)
knitr::kable(
resumen_disponibilidad_ofertas2,
caption = "Disponibilidad de ofertas para la vivienda 2"
)
| categoria | cantidad |
|---|---|
| Ofertas elegibles por zona, estrato y presupuesto | 1384 |
| Ofertas que cumplen exactamente los valores | 0 |
| Ofertas con area entre 270 y 330 m2 y capacidad minima | 1 |
| componente | peso_maximo |
|---|---|
| Cercania al area solicitada | 40 |
| Deficit de parqueaderos | 12 |
| Deficit de banios | 12 |
| Deficit de habitaciones | 12 |
| Proporcion del presupuesto | 5 |
| opcion | barrio | preciom | areaconst | estrato | habitaciones | parqueaderos | banios | margen_presupuesto | precio_estimado_modelo | diferencia_frente_modelo | criterios_cumplidos | categoria | puntaje_ajuste |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Seminario | 670 | 300 | 5 | 6 | 3 | 5 | 180 | 676.95 | -6.95 | 4 | Cumplimiento completo | 96.06 |
| 2 | Seminario | 530 | 256 | 5 | 5 | 3 | 5 | 320 | 676.95 | -146.95 | 3 | Alternativa cercana | 91.02 |
| 3 | Capri | 350 | 270 | 5 | 4 | 3 | 3 | 500 | 676.95 | -326.95 | 3 | Alternativa cercana | 81.94 |
| 4 | Ciudadela Pasoancho | 650 | 275 | 5 | 5 | 2 | 5 | 200 | 676.95 | -26.95 | 3 | Alternativa cercana | 80.84 |
| 5 | Guadalupe | 730 | 573 | 5 | 5 | 3 | 8 | 120 | 676.95 | 53.05 | 3 | Alternativa cercana | 59.31 |
| opcion | barrio | area | parqueaderos | banios | habitaciones | estrato | presupuesto | resultado |
|---|---|---|---|---|---|---|---|---|
| 1 | Seminario | Cumple | Cumple | Cumple | Cumple | Cumple | Cumple | Cumplimiento completo |
| 2 | Seminario | No cumple | Cumple | Cumple | Cumple | Cumple | Cumple | Alternativa cercana |
| 3 | Capri | Cumple | Cumple | Cumple | No cumple | Cumple | Cumple | Alternativa cercana |
| 4 | Ciudadela Pasoancho | Cumple | No cumple | Cumple | Cumple | Cumple | Cumple | Alternativa cercana |
| 5 | Guadalupe | No cumple | Cumple | Cumple | Cumple | Cumple | Cumple | Alternativa cercana |
La oferta tiene un precio de $670 millones, un area de 300 m2, estrato 5, 6 habitaciones, 3 parqueaderos y 5 banios. Deja un margen de $180 millones frente al presupuesto. La oferta cumple 4 de los 4 criterios internos evaluados y se clasifica como Cumplimiento completo.
La oferta tiene un precio de $530 millones, un area de 256 m2, estrato 5, 5 habitaciones, 3 parqueaderos y 5 banios. Deja un margen de $320 millones frente al presupuesto. La oferta cumple 3 de los 4 criterios internos evaluados y se clasifica como Alternativa cercana.
La oferta tiene un precio de $350 millones, un area de 270 m2, estrato 5, 4 habitaciones, 3 parqueaderos y 3 banios. Deja un margen de $500 millones frente al presupuesto. La oferta cumple 3 de los 4 criterios internos evaluados y se clasifica como Alternativa cercana.
La oferta tiene un precio de $650 millones, un area de 275 m2, estrato 5, 5 habitaciones, 2 parqueaderos y 5 banios. Deja un margen de $200 millones frente al presupuesto. La oferta cumple 3 de los 4 criterios internos evaluados y se clasifica como Alternativa cercana.
La oferta tiene un precio de $730 millones, un area de 573 m2, estrato 5, 5 habitaciones, 3 parqueaderos y 8 banios. Deja un margen de $120 millones frente al presupuesto. La oferta cumple 3 de los 4 criterios internos evaluados y se clasifica como Alternativa cercana.
La opcion 1, ubicada en Seminario, ocupa el primer lugar porque presenta el mejor equilibrio entre cumplimiento de las caracteristicas, cercania al area solicitada y precio. Su valor es de $670 millones, por lo que conserva un margen de $180 millones frente al credito disponible.
Antes de recomendar la compra definitiva se debe verificar que la oferta continue disponible, confirmar sus caracteristicas, revisar su estado juridico y fisico, y comprobar presencialmente la ubicacion registrada en la base.
Se seleccionaron 5 ofertas potenciales dentro del presupuesto de $850 millones, en estratos 5 o 6 y ubicadas en la zona sur. De estas, 1 cumplen completamente el criterio operativo de area entre 270 y 330 m2 y las capacidades minimas de tres parqueaderos, tres banios y cinco habitaciones.
Las opciones que no cumplen todos los criterios se mantienen como alternativas cercanas o de respaldo y sus diferencias se presentan de manera explicita. La recomendacion final debe priorizar las ofertas de cumplimiento completo y utilizar las demas solamente si la empresa acepta flexibilizar alguna caracteristica.
El ejercicio se desarrolló en dos rutas paralelas: casas de la zona norte y apartamentos de la zona sur. En ambas se partió de una base estandarizada, se revisó la disponibilidad de información y se reservaron los registros completos para los modelos que incluyen parqueaderos. Esta decisión evitó imputar una característica relevante sin un criterio suficientemente sustentado.
Los modelos permitieron estimar el efecto parcial del área, el estrato, las habitaciones, los parqueaderos y los baños sobre el precio. Los modelos complementarios no sustituyen a los principales; se utilizaron para observar cómo cambian los resultados cuando se aprovechan los registros sin información de parqueaderos.
La validación mostró que las predicciones deben manejarse como referencias y no como valores garantizados. Los intervalos de predicción reflejan mejor la incertidumbre de una vivienda particular. Además, la combinación conjunta de características solicitadas puede ser poco frecuente aunque cada valor se encuentre dentro de su rango individual.