El conjunto de datos California Housing contiene información demográfica y económica de distritos censales de California. El objetivo del análisis es estudiar los factores asociados al valor medio de las viviendas (MedHouseVal), identificando relaciones entre variables y construyendo modelos de regresión que permitan explicar y predecir dicho valor. La base contiene 20640 observaciones y 10 variables, incluyendo variables de naturaleza cuantitativa relacionadas con ingresos, antigüedad de las viviendas, ocupación y número promedio de habitaciones.
library(readr)
housing <- read_csv("C:/Users/aidas/Downloads/housing.csv/housing.csv")
## Rows: 20640 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ocean_proximity
## dbl (9): longitude, latitude, housing_median_age, total_rooms, total_bedroom...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
datos<- housing
dim(datos)
## [1] 20640 10
datos
## # A tibble: 20,640 × 10
## longitude latitude housing_median_age total_rooms total_bedrooms population
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -122. 37.9 41 880 129 322
## 2 -122. 37.9 21 7099 1106 2401
## 3 -122. 37.8 52 1467 190 496
## 4 -122. 37.8 52 1274 235 558
## 5 -122. 37.8 52 1627 280 565
## 6 -122. 37.8 52 919 213 413
## 7 -122. 37.8 52 2535 489 1094
## 8 -122. 37.8 52 3104 687 1157
## 9 -122. 37.8 42 2555 665 1206
## 10 -122. 37.8 52 3549 707 1551
## # ℹ 20,630 more rows
## # ℹ 4 more variables: households <dbl>, median_income <dbl>,
## # median_house_value <dbl>, ocean_proximity <chr>
El conjunto de datos California Housing está conformado por 10 variables, de las cuales 9 son cuantitativas y 1 cualitativa. Las variables cuantitativas incluyen información geográfica, demográfica, económica y características de las viviendas, mientras que la variable cualitativa describe la proximidad de cada distrito al océano. En general, la base de datos proporciona información relevante para analizar los factores asociados al valor medio de las viviendas, variable que constituye el principal objeto de estudio en este análisis.
caracterizacion <- data.frame(
Variable = c(
"longitude",
"latitude",
"housing_median_age",
"total_rooms",
"total_bedrooms",
"population",
"households",
"median_income",
"median_house_value",
"ocean_proximity"
),
Tipo = c(
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cuantitativa",
"Cualitativa"
),
Clasificacion = c(
"Continua",
"Continua",
"Continua",
"Discreta",
"Discreta",
"Discreta",
"Discreta",
"Continua",
"Continua",
"Nominal"
),
Descripcion = c(
"Longitud geografica",
"Latitud geografica",
"Edad mediana de viviendas",
"Total de habitaciones",
"Total de dormitorios",
"Poblacion",
"Numero de hogares",
"Ingreso medio",
"Valor medio de viviendas",
"Proximidad al oceano"
)
)
library(knitr)
kable(
caracterizacion,
caption = "Caracterización de variables"
)
| Variable | Tipo | Clasificacion | Descripcion |
|---|---|---|---|
| longitude | Cuantitativa | Continua | Longitud geografica |
| latitude | Cuantitativa | Continua | Latitud geografica |
| housing_median_age | Cuantitativa | Continua | Edad mediana de viviendas |
| total_rooms | Cuantitativa | Discreta | Total de habitaciones |
| total_bedrooms | Cuantitativa | Discreta | Total de dormitorios |
| population | Cuantitativa | Discreta | Poblacion |
| households | Cuantitativa | Discreta | Numero de hogares |
| median_income | Cuantitativa | Continua | Ingreso medio |
| median_house_value | Cuantitativa | Continua | Valor medio de viviendas |
| ocean_proximity | Cualitativa | Nominal | Proximidad al oceano |
##Identificación y tratamiento de valores faltantes
Como parte del proceso de depuración y validación de la calidad de los datos, se realizó una revisión de los valores faltantes presentes en la base de datos. Este análisis permite identificar posibles registros incompletos que puedan afectar los resultados estadísticos y la construcción de los modelos de regresión. En la siguiente tabla se presenta la cantidad y el porcentaje de valores faltantes encontrados en cada variable.
sum(is.na(housing))
## [1] 207
colSums(is.na(housing))
## longitude latitude housing_median_age total_rooms
## 0 0 0 0
## total_bedrooms population households median_income
## 207 0 0 0
## median_house_value ocean_proximity
## 0 0
round(
colSums(is.na(housing))/nrow(housing)*100,
2
)
## longitude latitude housing_median_age total_rooms
## 0 0 0 0
## total_bedrooms population households median_income
## 1 0 0 0
## median_house_value ocean_proximity
## 0 0
faltantes <- data.frame(
Variable = names(housing),
Valores_Faltantes = colSums(is.na(housing)),
Porcentaje = round(
colSums(is.na(housing))/nrow(housing)*100,
2
)
)
faltantes
## Variable Valores_Faltantes Porcentaje
## longitude longitude 0 0
## latitude latitude 0 0
## housing_median_age housing_median_age 0 0
## total_rooms total_rooms 0 0
## total_bedrooms total_bedrooms 207 1
## population population 0 0
## households households 0 0
## median_income median_income 0 0
## median_house_value median_house_value 0 0
## ocean_proximity ocean_proximity 0 0
Se identificó que únicamente la variable total_bedrooms presenta valores faltantes, con 207 observaciones ausentes. Las demás variables no registran datos faltantes, lo que evidencia una adecuada calidad general de la información.
Una vez identificados los valores faltantes, se procedió a depurar la base de datos mediante la eliminación de los registros incompletos utilizando la función na.omit(). Posteriormente, se verificó nuevamente la presencia de datos ausentes con el fin de garantizar que todas las variables estuvieran completas para los análisis estadísticos posteriores.
housing_limpio <- na.omit(housing)
housing$total_bedrooms[
is.na(housing$total_bedrooms)
] <- median(
housing$total_bedrooms,
na.rm = TRUE
)
housing_limpio <- na.omit(housing)
colSums(is.na(housing_limpio))
## longitude latitude housing_median_age total_rooms
## 0 0 0 0
## total_bedrooms population households median_income
## 0 0 0 0
## median_house_value ocean_proximity
## 0 0
Los resultados evidencian que, después del proceso de depuración, ninguna de las variables presenta valores faltantes. Esto indica que la base de datos quedó completamente limpia y apta para la aplicación de técnicas de análisis exploratorio, correlación y regresión, sin riesgo de sesgos asociados a datos ausentes.
nrow(housing)
## [1] 20640
nrow(housing_limpio)
## [1] 20640
nrow(housing) - nrow(housing_limpio)
## [1] 0
Se eliminaron 207 observaciones incompletas, conservándose más del 99% de la información original.
Se calcularon estadísticas descriptivas para obtener una visión general del comportamiento de las variables, identificando su tendencia central, dispersión y rango de variación antes de realizar los análisis posteriores.
summary(housing_limpio)
## longitude latitude housing_median_age total_rooms
## Min. :-124.3 Min. :32.54 Min. : 1.00 Min. : 2
## 1st Qu.:-121.8 1st Qu.:33.93 1st Qu.:18.00 1st Qu.: 1448
## Median :-118.5 Median :34.26 Median :29.00 Median : 2127
## Mean :-119.6 Mean :35.63 Mean :28.64 Mean : 2636
## 3rd Qu.:-118.0 3rd Qu.:37.71 3rd Qu.:37.00 3rd Qu.: 3148
## Max. :-114.3 Max. :41.95 Max. :52.00 Max. :39320
## total_bedrooms population households median_income
## Min. : 1.0 Min. : 3 Min. : 1.0 Min. : 0.4999
## 1st Qu.: 297.0 1st Qu.: 787 1st Qu.: 280.0 1st Qu.: 2.5634
## Median : 435.0 Median : 1166 Median : 409.0 Median : 3.5348
## Mean : 536.8 Mean : 1425 Mean : 499.5 Mean : 3.8707
## 3rd Qu.: 643.2 3rd Qu.: 1725 3rd Qu.: 605.0 3rd Qu.: 4.7432
## Max. :6445.0 Max. :35682 Max. :6082.0 Max. :15.0001
## median_house_value ocean_proximity
## Min. : 14999 Length:20640
## 1st Qu.:119600 Class :character
## Median :179700 Mode :character
## Mean :206856
## 3rd Qu.:264725
## Max. :500001
Los resultados evidencian diferencias importantes en la dispersión de las variables, así como posibles valores extremos en aquellas relacionadas con habitaciones, población y hogares, aspectos que serán considerados en los análisis posteriores.
##Análisis gráfico general
Con el fin de analizar la distribución del valor medio de las viviendas (median_house_value), se construyeron un histograma y un diagrama de caja. Estas representaciones gráficas permiten identificar la forma de la distribución, la presencia de asimetrías y posibles valores atípicos.
housing_limpio <- housing
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.5.3
view(dfSummary(housing_limpio))
## Switching method to 'browser'
## Output file written: C:\Users\aidas\AppData\Local\Temp\RtmpiuFJZv\file625470d55891.html
par(mfrow= c (1,2))
hist(housing_limpio$median_house_value, col = "steelblue")
boxplot(housing_limpio$median_house_value, col = "steelblue", horizontal = T)
El histograma muestra que la distribución del valor medio de las
viviendas presenta una asimetría positiva, ya que la mayor concentración
de observaciones se encuentra en valores bajos y medios, mientras que
existe una cola hacia valores más altos. Por su parte, el diagrama de
caja evidencia la presencia de valores extremos en la parte superior de
la distribución, lo que sugiere la existencia de viviendas con precios
considerablemente superiores al comportamiento general de los datos. En
conjunto, ambas gráficas indican que la variable no presenta una
distribución perfectamente simétrica y que podrían existir observaciones
influyentes que deben considerarse en los análisis posteriores.
datos_num <- housing_limpio[, sapply(housing_limpio, is.numeric)]
for(col in names(datos_num))
{
boxplot(
datos_num[[col]],
main = paste("Boxplot de", col),
horizontal = TRUE,
col = "steelblue"
)
abline(
v = mean(datos_num[[col]], na.rm = TRUE),
lty = 2,
lwd = 2,
col = "blue"
)
legend(
"topright",
legend = "Media",
col = "blue",
lty = 2,
lwd = 2,
bty = "n"
)
}
Los diagramas de caja permiten identificar la existencia de
observaciones atípicas en varias de las variables analizadas. Asimismo,
se observa que en la mayoría de los casos la media supera a la mediana,
lo que indica una tendencia hacia distribuciones asimétricas con sesgo a
la derecha.
Con el propósito de identificar la intensidad y dirección de las relaciones entre las variables cuantitativas, se construyó una matriz de correlación. Este análisis permite detectar asociaciones lineales que pueden resultar relevantes para la construcción de modelos de regresión.
library(PerformanceAnalytics)
## Warning: package 'PerformanceAnalytics' was built under R version 4.5.3
## Cargando paquete requerido: xts
## Warning: package 'xts' was built under R version 4.5.3
## Cargando paquete requerido: zoo
## Warning: package 'zoo' was built under R version 4.5.3
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Adjuntando el paquete: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
##
## legend
chart.Correlation(
housing_limpio[,sapply(housing_limpio,is.numeric)],
histogram = TRUE,
pch = 19
)
La matriz de correlación general permitió identificar relaciones
lineales entre las variables del conjunto de datos, evidenciando
asociaciones fuertes entre algunas características demográficas y
estructurales de los distritos. No obstante, dado que el objetivo del
estudio se centra en analizar el comportamiento del valor medio de las
viviendas y las variables seleccionadas en la guía, a continuación se
realizará un análisis específico utilizando únicamente las variables
MedHouseVal, MedInc, HouseAge, AveRooms y AveOccup. Esto permitirá
responder de manera precisa las preguntas planteadas y evaluar las
relaciones más relevantes para la construcción de los modelos de
regresión.
##Análisis de asociación entre las variables seleccionadas
datos_modelo <- housing_limpio[,c(
"median_house_value",
"median_income",
"housing_median_age",
"total_rooms",
"population"
)]
A continuación, se presentan las medidas descriptivas y la distribución de las variables seleccionadas, con el fin de identificar patrones generales, niveles de dispersión y posibles asimetrías en los datos.
summary(datos_modelo)
## median_house_value median_income housing_median_age total_rooms
## Min. : 14999 Min. : 0.4999 Min. : 1.00 Min. : 2
## 1st Qu.:119600 1st Qu.: 2.5634 1st Qu.:18.00 1st Qu.: 1448
## Median :179700 Median : 3.5348 Median :29.00 Median : 2127
## Mean :206856 Mean : 3.8707 Mean :28.64 Mean : 2636
## 3rd Qu.:264725 3rd Qu.: 4.7432 3rd Qu.:37.00 3rd Qu.: 3148
## Max. :500001 Max. :15.0001 Max. :52.00 Max. :39320
## population
## Min. : 3
## 1st Qu.: 787
## Median : 1166
## Mean : 1425
## 3rd Qu.: 1725
## Max. :35682
hist(datos_modelo$median_house_value, col = "steelblue")
boxplot(datos_modelo$median_house_value, col = "steelblue", horizontal = T)
Las variables seleccionadas presentan una variabilidad considerable,
especialmente en el valor medio de las viviendas, cuyos valores oscilan
entre 14.999 y 500.001. La media (206.856) es superior a la mediana
(179.700), lo que sugiere una distribución asimétrica positiva. Esta
característica se confirma en el diagrama de caja, donde se observan
valores atípicos en el extremo superior de la distribución. En general,
los resultados evidencian una importante heterogeneidad entre los
distritos analizados, particularmente en los precios de las
viviendas.
#Correlación entre variables seleccionadas. Una vez descrito el comportamiento general de las variables seleccionadas, se procede a analizar las relaciones existentes entre ellas mediante las matrices de covarianza y correlación, con el fin de identificar posibles asociaciones relevantes para la construcción de modelos de regresión.
library(PerformanceAnalytics)
chart.Correlation(datos_modelo)
La matriz de correlación evidencia relaciones de diferente intensidad
entre las variables seleccionadas. Se destaca una correlación positiva
moderadamente fuerte entre el ingreso medio (median_income) y el valor
medio de las viviendas (median_house_value) (r = 0.69), lo que sugiere
que los distritos con mayores ingresos tienden a presentar viviendas de
mayor valor. Por otra parte, la antigüedad de las viviendas
(housing_median_age) muestra una relación positiva débil con el valor de
las viviendas (r = 0.11), mientras que las variables total_rooms y
population presentan asociaciones positivas muy bajas (r = 0.13 y r =
-0.03, respectivamente). Asimismo, se observa una correlación alta entre
total_rooms y population (r = 0.86), indicando una fuerte relación entre
el tamaño de las viviendas y la cantidad de habitantes de los
distritos.
##Análisis preliminar para la construcción del modelo de regresión lineal simple
Con el propósito de analizar la relación entre el valor medio de las viviendas (median_house_value) como variable respuesta y el ingreso medio de los hogares (median_income) como variable explicativa, se realizó una exploración inicial de las variables seleccionadas. En primer lugar, se verificó el tamaño del conjunto de datos y posteriormente se evaluó el supuesto de normalidad mediante pruebas estadísticas, con el fin de conocer el comportamiento de las variables y seleccionar las técnicas de análisis más adecuadas para la construcción del modelo de regresión.
dim(datos_modelo)
## [1] 20640 5
Dado que el tamaño de la muestra es superior a 50 observaciones, se empleó la prueba de Kolmogorov-Smirnov para evaluar el supuesto de normalidad.
# Variable respuesta
y <- datos_modelo$median_house_value
#Hipótesis nula (H0):
# Los datos de la variable (y) median_house_value se ajustan a una distribución normal.
# Hipótesis alternativa (H1):
# Los datos de la variable (y) median_house_value no se ajustan a una distribución normal.
ks.test(y,
"pnorm",mean(y),sd(y))
## Warning in ks.test.default(y, "pnorm", mean(y), sd(y)): ties should not be
## present for the one-sample Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: y
## D = 0.10299, p-value < 2.2e-16
## alternative hypothesis: two-sided
# Variable explicativa
median_income <- datos_modelo$median_income
# Hipótesis nula (H0):
# Los datos de la variable median_income se ajustan a una distribución normal.
# Hipótesis alternativa (H1):
# Los datos de la variable median_income no se ajustan a una distribución normal.
ks.test(median_income,"pnorm",mean(median_income),sd(median_income))
## Warning in ks.test.default(median_income, "pnorm", mean(median_income), : ties
## should not be present for the one-sample Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: median_income
## D = 0.089427, p-value < 2.2e-16
## alternative hypothesis: two-sided
En ambos casos se obtuvo un valor p inferior al nivel de significancia de 0.05, por lo que se rechazó la hipótesis nula de normalidad. En consecuencia, se concluye que ninguna de las dos variables presenta una distribución normal, resultado que coincide con la asimetría observada previamente en los análisis gráficos y descriptivos.
# Correlación de Spearman
cor.test(median_income, y, method = "spearman")
## Warning in cor.test.default(median_income, y, method = "spearman"): Cannot
## compute exact p-value with ties
##
## Spearman's rank correlation rho
##
## data: median_income and y
## S = 4.7367e+11, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.6767781
# Modelo lineal simple
modelo_median_income <- lm(y ~ median_income)
summary(modelo_median_income)
##
## Call:
## lm(formula = y ~ median_income)
##
## Residuals:
## Min 1Q Median 3Q Max
## -540697 -55950 -16979 36978 434023
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45085.6 1322.9 34.08 <2e-16 ***
## median_income 41793.8 306.8 136.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 83740 on 20638 degrees of freedom
## Multiple R-squared: 0.4734, Adjusted R-squared: 0.4734
## F-statistic: 1.856e+04 on 1 and 20638 DF, p-value: < 2.2e-16
Debido al incumplimiento del supuesto de normalidad, se empleó el coeficiente de correlación de Spearman para evaluar la relación entre las variables. El resultado obtenido ((= 0.677); p < 0.001) evidencia una asociación positiva moderadamente fuerte y estadísticamente significativa entre el ingreso medio de los hogares y el valor medio de las viviendas. Esto indica que, en general, los distritos con mayores ingresos tienden a presentar viviendas de mayor valor.
Posteriormente, se ajustó un modelo de regresión lineal simple tomando como variable respuesta median_house_value y como variable explicativa median_income. El modelo resultó estadísticamente significativo (F = 18560; p < 0.001), lo que indica que el ingreso medio constituye un predictor relevante del valor de las viviendas.
La ecuación estimada del modelo fue:
[ =45085.6+41793.8 median_income]
El intercepto ((_0 = 45085.6)) representa el valor esperado de una vivienda cuando el ingreso medio es igual a cero. Por su parte, el coeficiente de pendiente ((_1 = 41793.8)) indica que, en promedio, un incremento de una unidad en median_income se asocia con un aumento aproximado de 41.794 dólares en el valor medio de la vivienda.
Finalmente, el coeficiente de determinación ((R^2 = 0.4734)) muestra que el 47.34% de la variabilidad observada en el valor medio de las viviendas puede ser explicada por el ingreso medio de los hogares, mientras que el porcentaje restante se atribuye a otros factores no incluidos en el modelo.
Los parámetros del modelo fueron estimados mediante el método de mínimos cuadrados ordinarios (MCO), procedimiento ampliamente utilizado en regresión lineal para determinar la recta que mejor representa la relación entre las variables analizadas. Este método selecciona los coeficientes del modelo de manera que se minimice la suma de los cuadrados de los residuos, es decir, las diferencias entre los valores observados y los valores estimados por el modelo.
La suma de cuadrados de los residuos se expresa como:
\[[ SCR=\sum_{i=1}^{n}(Y_i-\hat{Y}_i)^2 ]\]
donde:
Con la finalidad de determinar si el ingreso medio de los hogares contribuye significativamente a explicar el valor medio de las viviendas, se evaluó la significancia estadística del coeficiente de pendiente del modelo de regresión lineal simple mediante las siguientes hipótesis:
\[ H_0:\beta_1 = 0 \]
\[ H_1:\beta_1 \neq 0 \]
El valor p asociado al coeficiente de pendiente fue inferior a \(2.2\times10^{-16}\), por lo que se rechaza la hipótesis nula.
Se concluye que existe evidencia estadísticamente significativa para afirmar que el ingreso medio de los hogares tiene un efecto lineal sobre el valor medio de las viviendas.
El modelo presentó un coeficiente de determinación de:
[ R^2 = 0.4734]
Este resultado indica que el 47.34 % de la variabilidad observada en el valor medio de las viviendas (median_house_value) es explicada por el ingreso medio de los hogares (median_income).
Por consiguiente, el ingreso medio constituye una variable relevante para explicar el comportamiento del valor de las viviendas. Sin embargo, el 52.66 % restante de la variabilidad se encuentra asociado a otros factores no incluidos en el modelo, tales como características geográficas, demográficas o estructurales de las viviendas
##Analisis de los residuos a validación de los supuestos del modelo constituye una etapa fundamental en el análisis de regresión lineal, ya que permite evaluar la adecuación del ajuste realizado y la confiabilidad de las inferencias obtenidas. Para ello, se analizó el comportamiento de los residuos mediante pruebas estadísticas y representaciones gráficas, con el propósito de verificar los supuestos de normalidad, homocedasticidad e independencia de los errores.
residuos <- modelo_median_income$residuals
qqnorm(residuos)
qqline(residuos, col = "blue")
# Hipótesis nula (H0):
# Los residuos del modelo se ajustan a una distribución normal.
# Hipótesis alternativa (H1):
# Los residuos del modelo no se ajustan a una distribución normal.
ks.test(residuos, "pnorm", mean(residuos), sd(residuos))
## Warning in ks.test.default(residuos, "pnorm", mean(residuos), sd(residuos)):
## ties should not be present for the one-sample Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: residuos
## D = 0.099068, p-value < 2.2e-16
## alternative hypothesis: two-sided
La normalidad de los residuos fue evaluada mediante la prueba de Kolmogorov-Smirnov y el gráfico Q-Q. La prueba arrojó un valor p inferior a 0.05 ((p < 2.2 ^{-16})), por lo que se rechaza la hipótesis nula de normalidad. En consecuencia, existe evidencia estadística para afirmar que los residuos no siguen una distribución normal.
Este resultado es consistente con el gráfico Q-Q, en el cual se observa que los residuos se apartan considerablemente de la línea de referencia, especialmente en los extremos de la distribución. Estas desviaciones indican la presencia de colas más pronunciadas y posibles valores atípicos, lo que sugiere un incumplimiento del supuesto de normalidad
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.3
bptest(modelo_median_income)
##
## studentized Breusch-Pagan test
##
## data: modelo_median_income
## BP = 138.86, df = 1, p-value < 2.2e-16
plot(modelo_median_income)
dwtest(modelo_median_income)
##
## Durbin-Watson test
##
## data: modelo_median_income
## DW = 0.65453, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
El gráfico de residuos versus valores ajustados muestra que los residuos no se distribuyen completamente de manera aleatoria alrededor de cero y presentan un patrón de dispersión variable, lo que sugiere posibles problemas de heterocedasticidad. Asimismo, se observan algunas observaciones extremas con residuos particularmente altos o bajos.
El gráfico Q-Q evidencia desviaciones importantes respecto a la línea de referencia, especialmente en los extremos de la distribución, confirmando que los residuos no siguen una distribución normal. Este resultado coincide con la prueba de Kolmogorov-Smirnov realizada previamente.
Por su parte, el gráfico Scale-Location muestra una tendencia creciente en la dispersión de los residuos a medida que aumentan los valores ajustados, proporcionando evidencia adicional de heterocedasticidad.
Finalmente, el gráfico de residuos versus leverage permite identificar algunas observaciones con mayor influencia potencial sobre el modelo. Aunque la mayoría de los datos presentan valores de leverage reducidos, existen algunas observaciones que podrían ejercer influencia sobre las estimaciones y que merecen una revisión más detallada.
En conjunto, los gráficos sugieren que los supuestos de normalidad y homocedasticidad no se cumplen estrictamente, por lo que los resultados del modelo deben interpretarse con precaución.
La prueba de Breusch-Pagan se empleó para evaluar el supuesto de homocedasticidad, es decir, verificar si la varianza de los residuos permanece constante a lo largo de los valores ajustados del modelo.
Las hipótesis evaluadas fueron:
\[[ H_0:\sigma^2_1=\sigma^2_2=\cdots=\sigma^2_n ]\]
Los residuos presentan varianza constante (homocedasticidad).
\[[ H_1:\sigma^2_i \neq \sigma^2_j ]\] Los residuos no presentan varianza constante (heterocedasticidad).
Dado que el valor p de la prueba de Breusch-Pagan es inferior a 0.05, se rechaza la hipótesis nula de homocedasticidad y se concluye que existe evidencia de heterocedasticidad en los residuos del modelo. Asimismo, la prueba de Durbin-Watson arrojó un valor p inferior a 0.05, indicando evidencia de autocorrelación positiva entre los errores.
Estos resultados son consistentes con el análisis gráfico de los residuos, el cual evidenció desviaciones respecto a los supuestos de normalidad, homocedasticidad e independencia. En consecuencia, aunque el modelo presenta una relación estadísticamente significativa entre el ingreso medio y el valor de las viviendas, algunos de los supuestos clásicos de la regresión lineal no se cumplen completamente, por lo que las inferencias y predicciones derivadas del modelo deben interpretarse con cautela.
Con el propósito de mejorar la capacidad explicativa del modelo, se incorporó la variable housing_median_age junto con median_income. Esta selección se realizó debido a que ambas variables mostraron asociación con el valor medio de las viviendas y poseen una interpretación relevante dentro del contexto del mercado inmobiliario.
modelo_multiple1 <- lm(y ~ datos_modelo$median_income + datos_modelo$housing_median_age)
summary(modelo_multiple1)
##
## Call:
## lm(formula = y ~ datos_modelo$median_income + datos_modelo$housing_median_age)
##
## Residuals:
## Min 1Q Median 3Q Max
## -596748 -53834 -15000 36719 446725
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -10189.03 1915.41 -5.32 1.05e-07 ***
## datos_modelo$median_income 43169.19 298.36 144.69 < 2e-16 ***
## datos_modelo$housing_median_age 1744.13 45.04 38.73 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 80850 on 20637 degrees of freedom
## Multiple R-squared: 0.5091, Adjusted R-squared: 0.5091
## F-statistic: 1.07e+04 on 2 and 20637 DF, p-value: < 2.2e-16
La ecuación estimada del modelo fue:
\[\hat{y}=-10189.03+43169.19(\text{median_income})+1744.13(\text{housing_median_age})\]
**Intercepto ((_0=-10189.03)):** representa el valor esperado de una vivienda cuando el ingreso medio y la edad media de las viviendas son iguales a cero. Aunque carece de interpretación práctica directa, permite definir la posición de la recta de regresión. **Coeficiente de median_income ((_1=43169.19)):** manteniendo constante la edad media de las viviendas, un incremento de una unidad en el ingreso medio se asocia con un aumento promedio de 43.169 dólares en el valor medio de las viviendas. **Coeficiente de housing_median_age ((_2=1744.13)):** manteniendo constante el ingreso medio, cada año adicional en la edad media de las viviendas se asocia con un incremento promedio de 1.744 dólares en el valor medio de las viviendas.
La prueba F presentó un valor p inferior a 0.05 ((p<2.2^{-16})), por lo que se rechaza la hipótesis nula de que todos los coeficientes de pendiente sean simultáneamente iguales a cero. Se concluye que el modelo es globalmente significativo.
| Característica | Modelo simple | Modelo múltiple |
|---|---|---|
| Variables explicativas | median_income | median_income + housing_median_age |
| R² | 0.4734 | 0.5091 |
| R² ajustado | 0.4734 | 0.5091 |
| Error estándar residual | 83.740 | 80.850 |
| Significancia global | Sí | Sí |
| Capacidad explicativa | Moderada | Mayor que el modelo simple |
El modelo lineal simple explica el 47.34% de la variabilidad observada en el valor medio de las viviendas. Al incorporar la variable housing_median_age, el coeficiente de determinación aumenta a 50.91%, evidenciando una mejora en la capacidad explicativa del modelo. Esto indica que la edad media de las viviendas aporta información adicional para explicar las diferencias observadas en los precios de las viviendas.
##Predicción e interpretación
Una de las ventajas de los modelos de regresión es la posibilidad de realizar predicciones sobre la variable respuesta a partir de valores conocidos de las variables explicativas.
Utilizando el modelo de regresión múltiple estimado:
[ =-10189.03+43169.19()+1744.13()]
se realizó una predicción para un distrito con un ingreso medio de 5 (aproximadamente 50.000 dólares) y una edad media de las viviendas de 30 años.
Sustituyendo estos valores en la ecuación del modelo:
[ y=-10189.03+43169.19(5)+1744.13(30)]
[ y=257452.62]
Por lo tanto, el modelo estima que un distrito con un ingreso medio cercano a 50.000 dólares y viviendas con una antigüedad promedio de 30 años tendría un valor medio de vivienda aproximado de 257.453 dólares.
Esta predicción refleja el efecto conjunto del ingreso medio y la edad de las viviendas sobre el valor de las propiedades, mostrando que ambas variables contribuyen positivamente a explicar las diferencias observadas en los precios de las viviendas.
library(scatterplot3d)
scatterplot3d(
datos_modelo$median_income,
datos_modelo$housing_median_age,
y,
pch = 16,
color = "steelblue",
type = "p",
xlab = "Ingreso medio",
ylab = "Edad media",
zlab = "Valor vivienda"
)
La representación tridimensional permite visualizar la relación conjunta
entre el ingreso medio de los hogares, la edad media de las viviendas y
el valor medio de las viviendas. Se observa una tendencia creciente en
el valor de las viviendas a medida que aumenta el ingreso medio, lo que
confirma el efecto positivo identificado en el modelo de regresión.
Asimismo, la edad de las viviendas también presenta una contribución
positiva, aunque de menor magnitud. En general, la gráfica muestra que
los mayores valores de las viviendas se concentran en distritos con
ingresos más altos y, en menor medida, con viviendas de mayor
antigüedad.
Con el propósito de mejorar la capacidad explicativa del modelo, se incorporaron simultáneamente las variables median_income, housing_median_age, total_rooms y population como predictores del valor medio de las viviendas (median_house_value). La selección de estas variables se realizó con base en el análisis exploratorio y de correlación previamente efectuado, así como en su relevancia dentro del contexto del mercado inmobiliario.
modelo_propuesto <- lm( median_house_value ~ median_income + housing_median_age + total_rooms + population, data = datos_modelo )
summary(modelo_propuesto)
##
## Call:
## lm(formula = median_house_value ~ median_income + housing_median_age +
## total_rooms + population, data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -574709 -53577 -14531 37103 466100
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -17506.340 2232.939 -7.84 4.72e-15 ***
## median_income 41271.707 317.591 129.95 < 2e-16 ***
## housing_median_age 1981.358 47.649 41.58 < 2e-16 ***
## total_rooms 9.314 0.546 17.06 < 2e-16 ***
## population -11.703 1.013 -11.55 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 80220 on 20635 degrees of freedom
## Multiple R-squared: 0.5168, Adjusted R-squared: 0.5167
## F-statistic: 5518 on 4 and 20635 DF, p-value: < 2.2e-16
A partir de la estimación mediante mínimos cuadrados ordinarios, se obtuvo la siguiente ecuación de regresión múltiple:
11.70() ]
Esta ecuación permite estimar el valor medio de las viviendas a partir del ingreso medio de los hogares, la edad media de las viviendas, el número total de habitaciones y la población del distrito.
La interpretación de los coeficientes se realiza manteniendo constantes las demás variables del modelo.
**Intercepto ((_0=-17506.34)):** representa el valor esperado de la vivienda cuando todas las variables explicativas toman el valor cero. Aunque no posee una interpretación práctica directa, permite establecer el punto de partida del modelo. Ingreso medio ((_1=41271.71)): manteniendo constantes las demás variables, un incremento de una unidad en el ingreso medio se asocia con un aumento promedio de 41.272 dólares en el valor medio de las viviendas. **Edad media de las viviendas ((_2=1981.36)):** manteniendo constantes las demás variables, cada año adicional en la edad media de las viviendas incrementa en promedio el valor medio de las viviendas en aproximadamente 1.981 dólares. **Número total de habitaciones ((_3=9.31)):** manteniendo constantes las demás variables, cada habitación adicional incrementa en promedio el valor medio de la vivienda en aproximadamente 9 dólares. **Población ((_4=-11.70)):** manteniendo constantes las demás variables, un incremento de una unidad en la población se asocia con una disminución promedio de 11.7 dólares en el valor medio de las viviendas. Significancia de los coeficientes
Para cada coeficiente se evaluaron las hipótesis:
\[[ H_0:\beta_i=0 ]\]
\[[ H_1:\beta_i\neq0 ]\]
Los resultados muestran que todas las variables incluidas presentan valores p inferiores a 0.05 ((p<2^{-16})), por lo que se rechaza la hipótesis nula en todos los casos. En consecuencia, existe evidencia estadística suficiente para afirmar que cada una de las variables incorporadas aporta información relevante para explicar el valor medio de las viviendas.
Considerando la magnitud de los coeficientes y su significancia estadística, la variable median_income continúa siendo el predictor con mayor influencia sobre el valor medio de las viviendas. Este resultado coincide con el análisis de correlación realizado previamente y confirma que el nivel de ingreso de los hogares constituye el principal factor asociado al valor de las propiedades dentro de las variables analizadas.
La significancia global fue evaluada mediante la prueba F:
\[[ H_0:\beta_1=\beta_2=\beta_3=\beta_4=0 ]\]
\[[ H_1:\text{Al menos uno de los coeficientes es diferente de cero} ]\]
El modelo presentó un estadístico F igual a 5518 y un valor p inferior a (2.2^{-16}). Por lo tanto, se rechaza la hipótesis nula y se concluye que el conjunto de variables explicativas contribuye significativamente a explicar la variabilidad observada en el valor medio de las viviendas.
El modelo presentó un coeficiente de determinación:
\[[ R^2=0.5168 ]\]
y un coeficiente de determinación ajustado:
\[[ R^2_{ajustado}=0.5167 ]\]
Estos resultados indican que aproximadamente el 51.68 % de la variabilidad observada en el valor medio de las viviendas es explicada conjuntamente por las variables median_income, housing_median_age, total_rooms y population.
##Comparación con los modelos anteriores Con el fin de evaluar la capacidad explicativa de los modelos ajustados, se compararon los coeficientes de determinación obtenidos en cada una de las especificaciones consideradas. Los resultados se presentan en la siguiente tabla.
| Modelo | Variables explicativas | R² | R² ajustado |
|---|---|---|---|
| Modelo simple | median_income | 0.4734 | 0.4734 |
| Modelo múltiple 1 | median_income + housing_median_age | 0.5091 | 0.5091 |
| Modelo múltiple 2 | median_income + housing_median_age + total_rooms + population | 0.5168 | 0.5167 |
La incorporación progresiva de nuevas variables produjo incrementos en la capacidad explicativa del modelo. Sin embargo, la mejora más importante se obtuvo al incorporar la variable housing_median_age. Las variables total_rooms y population también resultaron significativas, aunque su contribución al incremento del coeficiente de determinación fue más moderada.
Una de las ventajas de los modelos de regresión es la posibilidad de realizar predicciones para observaciones con características específicas.
Considerando un distrito con las siguientes características:
Ingreso medio (median_income) = 5 Edad media de las viviendas (housing_median_age) = 20 Número total de habitaciones (total_rooms) = 6 Población (population) = 3
la predicción del valor medio de las viviendas se obtuvo mediante la función predict() aplicada al modelo de regresión múltiple.
new_distrito <- data.frame( median_income = 5, housing_median_age = 20,
total_rooms = 6, population = 3 )
predict(modelo_propuesto, new_distrito)
## 1
## 228500.1
El modelo estimó un valor medio de vivienda de:
[ =228500.1]
Por lo tanto, se espera que un distrito con las características especificadas presente un valor medio de vivienda cercano a 228.500 dólares.
Esta predicción refleja el efecto conjunto del ingreso medio de los hogares, la edad de las viviendas, el número de habitaciones y la población sobre el precio esperado de las viviendas, de acuerdo con las relaciones identificadas por el modelo de regresión múltiple.
Además de la predicción puntual, se calculó un intervalo de confianza para estimar un rango plausible del valor medio esperado de las viviendas para distritos con características similares.
predict(
modelo_propuesto,
new_distrito,
interval = "confidence"
)
## fit lwr upr
## 1 228500.1 226166.7 230833.6
Por lo tanto, con un nivel de confianza del 95 %, se estima que el valor medio de las viviendas para un distrito con las características consideradas se encuentra entre 226.167 dólares y 230.834 dólares.
Este intervalo proporciona una medida de la incertidumbre asociada a la predicción realizada y sugiere que, bajo las condiciones especificadas, el valor medio esperado de las viviendas se encuentra muy probablemente dentro de dicho rango.
El análisis realizado sobre el conjunto de datos California Housing permitió identificar y cuantificar la relación existente entre diversas características de los distritos y el valor medio de las viviendas. Previamente a la modelación, se efectuó un proceso de depuración en el que se identificaron 207 valores faltantes en la variable total_bedrooms, equivalentes aproximadamente al 1 % de la base de datos. Debido a su baja proporción, estos registros fueron eliminados sin afectar significativamente el tamaño de la muestra.
Los resultados del análisis exploratorio evidenciaron una importante variabilidad en los precios de las viviendas y la presencia de distribuciones no normales en varias de las variables estudiadas. Asimismo, el análisis de correlación mostró que median_income presentó la asociación positiva más fuerte con median_house_value (()), sugiriendo que el ingreso medio de los hogares constituye uno de los principales determinantes del valor de las viviendas.
El modelo de regresión lineal simple confirmó esta relación, obteniéndose un coeficiente de determinación de (R^2=0.4734). Esto indica que el ingreso medio por sí solo logra explicar el 47.34 % de la variabilidad observada en el valor medio de las viviendas. Adicionalmente, el coeficiente asociado a median_income resultó altamente significativo ((p<2.2^{-16})), evidenciando su relevancia dentro del modelo.
Posteriormente, la incorporación de la variable housing_median_age permitió incrementar la capacidad explicativa del modelo hasta un (R^2=0.5091), lo que representa una mejora cercana a 3.6 puntos porcentuales respecto al modelo simple. Este resultado mostró que la antigüedad de las viviendas aporta información adicional para comprender las diferencias observadas en los precios.
Finalmente, el modelo múltiple que incluyó simultáneamente las variables median_income, housing_median_age, total_rooms y population alcanzó un coeficiente de determinación de (R^2=0.5168) y un (R^2) ajustado de 0.5167, convirtiéndose en el modelo con mejor desempeño entre las alternativas evaluadas. Todas las variables incorporadas resultaron estadísticamente significativas ((p<0.05)); sin embargo, median_income continuó siendo la variable con mayor efecto sobre el valor de las viviendas, presentando un coeficiente estimado de 41.271.71 dólares por cada unidad adicional de ingreso medio.
Por otra parte, el análisis de residuos evidenció incumplimientos en algunos de los supuestos clásicos de la regresión lineal, particularmente en relación con la normalidad, homocedasticidad e independencia de los errores. Aunque estas limitaciones sugieren que existen factores adicionales que influyen sobre el valor de las viviendas, los modelos ajustados permitieron identificar relaciones estadísticamente significativas y explicar más de la mitad de la variabilidad observada en la variable respuesta.
En conclusión, los resultados obtenidos muestran que el ingreso medio de los hogares constituye el principal predictor del valor de las viviendas, aunque variables relacionadas con las características físicas y demográficas de los distritos también contribuyen a mejorar la capacidad explicativa del modelo. Bajo las condiciones analizadas, el modelo múltiple de cuatro variables se consolidó como la alternativa más adecuada, al presentar el mayor ajuste y ofrecer una descripción más completa del comportamiento del mercado inmobiliario estudiado.