A continuación se indicarán los paquetes a emplear para trabajar con la base fueron:
library(pacman)
## Warning: package 'pacman' was built under R version 4.5.2
library(ggplot2)
p_load(MASS, tidyverse, GGally, skimr)
data("Boston")
Si aplicamos lad funciones de \(\text{dim}\) y \(\text{str}\). obtendremos:
dim(Boston)
## [1] 506 14
str(Boston)
## 'data.frame': 506 obs. of 14 variables:
## $ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
## $ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
## $ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
## $ chas : int 0 0 0 0 0 0 0 0 0 0 ...
## $ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
## $ rm : num 6.58 6.42 7.18 7 7.15 ...
## $ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
## $ dis : num 4.09 4.97 4.97 6.06 6.06 ...
## $ rad : int 1 2 2 3 3 3 5 5 5 5 ...
## $ tax : num 296 242 242 222 222 222 311 311 311 311 ...
## $ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
## $ black : num 397 397 393 395 397 ...
## $ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
## $ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
Los resultados que obtenemos de análisis general empleando la función \(\text{skimr}\) se pueden compilar:
skim(Boston)
| Name | Boston |
| Number of rows | 506 |
| Number of columns | 14 |
| _______________________ | |
| Column type frequency: | |
| numeric | 14 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| crim | 0 | 1 | 3.61 | 8.60 | 0.01 | 0.08 | 0.26 | 3.68 | 88.98 | ▇▁▁▁▁ |
| zn | 0 | 1 | 11.36 | 23.32 | 0.00 | 0.00 | 0.00 | 12.50 | 100.00 | ▇▁▁▁▁ |
| indus | 0 | 1 | 11.14 | 6.86 | 0.46 | 5.19 | 9.69 | 18.10 | 27.74 | ▇▆▁▇▁ |
| chas | 0 | 1 | 0.07 | 0.25 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▁ |
| nox | 0 | 1 | 0.55 | 0.12 | 0.38 | 0.45 | 0.54 | 0.62 | 0.87 | ▇▇▆▅▁ |
| rm | 0 | 1 | 6.28 | 0.70 | 3.56 | 5.89 | 6.21 | 6.62 | 8.78 | ▁▂▇▂▁ |
| age | 0 | 1 | 68.57 | 28.15 | 2.90 | 45.02 | 77.50 | 94.07 | 100.00 | ▂▂▂▃▇ |
| dis | 0 | 1 | 3.80 | 2.11 | 1.13 | 2.10 | 3.21 | 5.19 | 12.13 | ▇▅▂▁▁ |
| rad | 0 | 1 | 9.55 | 8.71 | 1.00 | 4.00 | 5.00 | 24.00 | 24.00 | ▇▂▁▁▃ |
| tax | 0 | 1 | 408.24 | 168.54 | 187.00 | 279.00 | 330.00 | 666.00 | 711.00 | ▇▇▃▁▇ |
| ptratio | 0 | 1 | 18.46 | 2.16 | 12.60 | 17.40 | 19.05 | 20.20 | 22.00 | ▁▃▅▅▇ |
| black | 0 | 1 | 356.67 | 91.29 | 0.32 | 375.38 | 391.44 | 396.22 | 396.90 | ▁▁▁▁▇ |
| lstat | 0 | 1 | 12.65 | 7.14 | 1.73 | 6.95 | 11.36 | 16.96 | 37.97 | ▇▇▅▂▁ |
| medv | 0 | 1 | 22.53 | 9.20 | 5.00 | 17.02 | 21.20 | 25.00 | 50.00 | ▂▇▅▁▁ |
## head(Boston)
Es importante observar que la variable \(\text{tax}\) es la que posee mayor dispersión
Los primeros 5 registros se verán a continuación:
## crim zn indus chas nox rm age dis rad tax ptratio black lstat
## 1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 4.98
## 2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 9.14
## 3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03
## 4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94
## 5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 5.33
## medv
## 1 24.0
## 2 21.6
## 3 34.7
## 4 33.4
## 5 36.2
Los descriptivos del conjunto de datos son los siguientes:
summary(Boston)
## crim zn indus chas
## Min. : 0.00632 Min. : 0.00 Min. : 0.46 Min. :0.00000
## 1st Qu.: 0.08205 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.00000
## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.00000
## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.06917
## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.00000
## Max. :88.97620 Max. :100.00 Max. :27.74 Max. :1.00000
## nox rm age dis
## Min. :0.3850 Min. :3.561 Min. : 2.90 Min. : 1.130
## 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100
## Median :0.5380 Median :6.208 Median : 77.50 Median : 3.207
## Mean :0.5547 Mean :6.285 Mean : 68.57 Mean : 3.795
## 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188
## Max. :0.8710 Max. :8.780 Max. :100.00 Max. :12.127
## rad tax ptratio black
## Min. : 1.000 Min. :187.0 Min. :12.60 Min. : 0.32
## 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.:375.38
## Median : 5.000 Median :330.0 Median :19.05 Median :391.44
## Mean : 9.549 Mean :408.2 Mean :18.46 Mean :356.67
## 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:396.23
## Max. :24.000 Max. :711.0 Max. :22.00 Max. :396.90
## lstat medv
## Min. : 1.73 Min. : 5.00
## 1st Qu.: 6.95 1st Qu.:17.02
## Median :11.36 Median :21.20
## Mean :12.65 Mean :22.53
## 3rd Qu.:16.95 3rd Qu.:25.00
## Max. :37.97 Max. :50.00
A continuaión se presenta un gráfico de cajas con información de las variables \(\text{medv: median of value of owner~ ocupied homes, rm: average number of rooms per dwelling}\) y \(\text{lstat: lower status of the population (percent)}\)
Sí analizamos de manera univariada cada variable con obtendremos los siguientes gráficos:
Cómo un gráfico de cajas: Podremos observar mayor dispersión en la variable \(\text{lstat}\).
## Scale for fill is already present.
## Adding another scale for fill, which will replace the existing scale.
Podemos comparar 5 variables para encontrar correlación entre ellas nos ayuda a entender el desarrollo de nuestras variables:
Compararemos a continuación \(\text{medv}\), \(\text{crim}\), \(\text{lstat}\), \(\text{tax}\) y \(\text{rm}\).
Perfil de las Variables (Distribución):
medv: El precio promedio. Tiene un “techo” en 50 (50,000 USD), donde se concentran varias casas de lujo.
rm: Es la más “estable” o normal. La mayoría de las casas tienen entre 5 y 7 habitaciones.
lstat: Muestra desigualdad. Hay muchos barrios con bajo % de pobreza y pocos con niveles críticos (>30%).
crim Muy sesgada. La mayoría de los barrios tienen crimen cercano a 0, pero hay “focos rojos” extremos.taxFiscalNo es continua. Los datos se agrupan en niveles (como “escalones” de impuestos).
A. Motores de Valor (Correlación Positiva) rm vs medv: Es la relación más fuerte y lineal. Si visualizas el scatter plot, verás una diagonal ascendente.
Conclusión: El espacio físico (habitaciones) es el factor que más aumenta el precio.
B. Factores de Depreciación (Correlación Negativa) lstat vs medv: Es una relación inversa muy marcada. A medida que sube el porcentaje de estatus bajo, el precio cae de forma casi exponencial.
crim vs medv: El crimen actúa como un “techo”. En zonas con cualquier nivel de crimen significativo, es casi imposible encontrar casas de alto valor.
Pobreza e Impuestos (lstat vs tax): Suelen ir de la mano. Zonas con mayores índices de pobreza suelen tener estructuras fiscales distintas o estar en distritos con servicios públicos más saturados.
Habitaciones y Pobreza (rm vs lstat): Existe una correlación negativa. En barrios pobres, las casas tienden a ser más pequeñas (menos habitaciones).
El mejor predictor positivo: El número de habitaciones (rm).
El mayor detractor de valor: El estatus socioeconómico bajo (lstat).
El efecto del Crimen: No afecta gradualmente, sino que “castiga” el precio en cuanto deja de ser cercano a cero.
La estructura del mercado: El dataset muestra una clara segregación; las casas caras están aisladas del crimen y la pobreza, y tienen un número superior de habitaciones.
Nota técnica: En estadística, si dos variables como tax y crim están muy relacionadas entre sí, incluirlas ambas en un modelo matemático podría causar multicolinealidad, lo que hace que el modelo sea menos confiable.
\(\text{CONCLUSIONES:}\)
El análisis exploratorio realizado permite extraer las siguientes validaciones estadísticas para el modelado posterior:
Distribución y Sesgo: Se identificó un truncamiento en la variable dependiente \(\text{medv}\) (en el valor 50), lo que sugiere que los modelos de regresión lineal podrían verse afectados por este “techo”. Asimismo, la variable \(\text{crim}\) presenta un sesgo a la derecha extremo.
Dispersión y Outliers: Mediante el uso de diagramas de caja, se determinó que \(\text{lstat}\) presenta una alta dispersión, mientras que \(\text{rm}\) mantiene una distribución más normalizada y estable.
Multicolinealidad: La observación de las relaciones entre \(\text{tax}\), \(\text{crim}\) y \(\text{lstat}\) sugiere una fuerte interdependencia. Para la fase de modelado predictivo, será crucial aplicar pruebas de Factor de Inflación de la Varianza (VIF) para evitar redundancias que invaliden los coeficientes.