Análisis de Datos

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>

Caracterización de las variables del estudio

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"
)
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.

Análisis descriptivo de las variables cuantitativas generales.

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.

Matriz de correlación General

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.

Estimación mediante mínimos cuadrados ordinarios

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:

  • \(Y_i\) representa el valor observado.
  • \(\hat{Y}_i\) representa el valor predicho por el modelo.
  • \(n\) corresponde al número de observaciones. En consecuencia, los parámetros obtenidos corresponden a aquellos que producen el mejor ajuste lineal posible entre el ingreso medio de los hogares (median_income) y el valor medio de las viviendas (median_house_value).

Significancia del coeficiente de pendiente

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.

Coeficiente de determinación

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.

Homocedasticidad de los residuos

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.

Modelo de regresión lineal multiple.

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})\]

Interpretación de los coeficientes

**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.

Significancia global del modelo

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
0.4734 0.5091
R² ajustado 0.4734 0.5091
Error estándar residual 83.740 80.850
Significancia global
Capacidad explicativa Moderada Mayor que el modelo simple

Capacidad explicativa

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.

Modelo de regresión lineal Multiple propuesto.

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

Ecuación estimada

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.

Interpretación de los coeficientes

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.

Variable con mayor efecto

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.

Significancia global del modelo

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.

Coeficiente de determinación

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² 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.

Predicción e interpretación

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.

Intervalo de confianza para la predicción

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.

Conclusiones

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.