Se realizara un análisis exploratorio del dataset Boston, con el objetivo de examinar y comprender las características principales de las variables relacionadas con el valor de las viviendas. Se emplearon herramientas gráficas como histogramas, boxplots y gráficos de dispersión para observar la distribución de los datos, identificar posibles valores atípicos y explorar las relaciones entre las diferentes variables, estableciendo así las bases para posteriores análisis.

1. Carga de paquetes y explorar datos

Cargar paquetes

Antes de explorar el DataSet, primero es necesario descargar las paqueterías y librerias que se utilizarán, las cuales son las siguientes:

| install.packages(" "):|
| ----------- |
| Pacman |
| GGally |
| MASS |
| tidyverse |
| skimr |
| ggplot2 |
pacman::p_load(MASS, tidyverse, GGally, skimr)
options(scipen = 999)

library(skimr)
library(dplyr)
library(ggplot2)
library(tidyr)
library(pacman)
## Warning: package 'pacman' was built under R version 4.4.3

Exploración del dataset

Cargar dataset

data("Boston")

Primeras filas

head(Boston)

Dimensión del dataset

dim(Boston)
## [1] 506  14

Estructura de los datos

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

Resumen estadístico

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

Exploración detallada

skim(Boston)
Data summary
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 ▂▇▅▁▁

Observaciones:

El conjunto de datos está compuesto por 506 registros y 14 variables. Estas variables reflejan distintos indicadores de tipo económico, demográfico y características estructurales relacionadas con las viviendas.

A continuación, se detalla el significado de las variables mostradas:

  • medv: Valor mediano de las viviendas ocupadas por sus propietarios en miles de dólares.

  • lstat: Porcentaje de la población de “bajo estatus socioeconómico”.

  • rm: cantidad promedio de habitaciones por vivienda.

  • rad: Índice de accesibilidad a carreteras radiales.

  • crim: índice de criminalidad

  • tax: tasa de impuesto sobre la propiedad

  • indus: Proporción de acres comerciales no minoristas por ciudad.

Los datos sugieren que el valor de la vivienda en Boston está fuertemente influenciado por la ubicación (distancia a centros de empleo), la estructura (habitaciones) y factores sociales (criminalidad y estatus de la población).

2. Medidas descriptivas

Posteriormente, se calculan medidas estadísticas básicas para algunas de las variables más importantes.

variables_g1 <- c("medv", "rm", "lstat", "crim", "tax")
Boston_g1 <- Boston %>% 
  select(all_of(variables_g1))

Media

sapply(Boston[variables_g1], mean)
##       medv         rm      lstat       crim        tax 
##  22.532806   6.284634  12.653063   3.613524 408.237154

Desviación estándar

sapply(Boston[variables_g1], sd)
##        medv          rm       lstat        crim         tax 
##   9.1971041   0.7026171   7.1410615   8.6015451 168.5371161

Observaciones:

Con las estadísticas descriptivas obtenidas se puede identificar 3 puntos importantes:

    1. La variable rm (habitaciones) muestra una media de 6.28 y su baja desviación estándar sugiere que la infraestructura habitacional es bastante consistente. No obstante, al cruzarla con medv (valor de la vivienda), se observa que incluso pequeñas variaciones en el número de habitaciones pueden disparar el precio.
    1. La variable tax (impuestos) sugieren que Boston está diseñado de forma radial. Las zonas más accesibles a centros de empleo tienden a tener impuestos más altos, lo que crea una barrera de entrada para familias de menores ingresos, alimentando el ciclo de desigualdad reflejado en la variable lstat.
    1. Dos factores actúan como fuertes depreciadores del valor de la vivienda:

      • Criminalidad (crim): Aunque el promedio es bajo (3.61), la enorme dispersión (8.60) revela zonas de conflicto específicas. El análisis sugiere que vivir cerca de estas zonas reduce drásticamente el valor de la propiedad, independientemente de qué tan grande sea la casa.

      • Estatus Social (lstat): Existe una relación inversa clara. Las zonas con mayor porcentaje de población de estatus bajo coinciden con los valores más bajos de medv. Esto refleja una segregación económica donde el entorno social pesa tanto como la construcción física.

3. Histogramas

Boston %>% 
  select(medv, rm, lstat) %>% 
  pivot_longer(cols = everything(),
               names_to = "variable",
               values_to = "valor") %>% 
  ggplot(aes(x = valor, fill = variable)) + 
  geom_histogram(color = "white", bins = 15) +
  facet_wrap(~variable, scales = "free_x") +
  scale_fill_brewer(palette = "Set2") +
  labs(title = "Histogramas de medv, rm y lstat") +
  theme_minimal()

Histogramas individuales

ggplot(Boston, aes(x = medv)) +
  geom_histogram(fill = "skyblue", color = "white", bins = 10) +
  ggtitle("Histograma de medv") +
  theme_minimal()

ggplot(Boston, aes(x = rm)) +
  geom_histogram(fill = "salmon", color = "white", bins = 15) +
  ggtitle("Histograma de rm") +
  theme_minimal()

ggplot(Boston, aes(x = lstat)) +
  geom_histogram(fill = "lightgreen", color = "white", bins = 15) +
  ggtitle("Histograma de lstat") +
  theme_minimal()

Observaciones:

Tras la vizualización de los datos obtenidos en las variables a analizar se identifico lo siguiente:

  • Mediante los histogramas se observa que la mayoría de las variables presentan un fuerte sesgo, lo cual indica que los valores extremos son comunes en el conjunto de datos.

  • Se observa una cantidad significativa de valores atípicos en variables críticas como el valor de la vivienda (medv) y el número de habitaciones (rm). Esto sugiere la existencia de propiedades con características muy superiores al promedio del mercado.

  • Se concluye que la presencia de valores atípicos y distribuciones no normales refleja una marcada segregación urbana, donde factores externos como el estatus socioeconómico (lstat), la criminalidad y la carga fiscal impactan drásticamente.

4. Boxplots

Boston %>% 
  select(medv, lstat) %>% 
  pivot_longer(cols = everything(),
               names_to = "variable",
               values_to = "valor") %>% 
  ggplot(aes(x = variable, y = valor, fill = variable)) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Set2") +
  ggtitle("Boxplot de medv y lstat") +
  theme_minimal()

Boxplots individuales

ggplot(Boston, aes(y = medv)) +
  geom_boxplot(fill = "lightblue") +
  ggtitle("Boxplot de medv") +
  theme_minimal()

ggplot(Boston, aes(y = lstat)) +
  geom_boxplot(fill = "lightgray") +
  ggtitle("Boxplot de lstat") +
  theme_minimal()

Observaciones:

  • Se identifica una relación muy estrecha y positiva entre rm y medv, mientras que existe una correlación negativa muy fuerte con el estatus socioeconómico bajo (lstat). Asimismo, la alta correlación entre el índice de carreteras (rad) y el impuesto (tax) sugiere información redundante sobre la ubicación geográfica.

  • Los Boxplots muestran una cantidad significativa de valores atípicos en variables críticas como medv y el rm. Esto confirma la existencia de propiedades de lujo con características muy superiores al promedio del mercado que se alejan del comportamiento estándar.

5. Gráficos de dispersión (Scatter Plots)

Boston %>% 
  select(medv, rm, lstat, crim, tax) %>% 
  pivot_longer(cols = -medv,
               names_to = "variable",
               values_to = "valor") %>% 
  ggplot(aes(x = valor, y = medv, color = variable)) +
  geom_point() +
  facet_wrap(~variable, scales = "free_x") +
  labs(title = "Relación de medv con otras variables",
       subtitle = "Gráficos por faceta") +
  theme_minimal()

Scatter plots individuales

ggplot(Boston, aes(x = rm, y = medv)) +
  geom_point(color = "red") +
  ggtitle("Relación entre número de habitaciones y valor de vivienda") +
  theme_minimal()

ggplot(Boston, aes(x = crim, y = medv)) +
  geom_point(color = "purple") +
  scale_x_log10() +
  ggtitle("Relación entre criminalidad y valor de vivienda") +
  theme_minimal()

ggplot(Boston, aes(x = tax, y = medv)) +
  geom_point(color = "orange") +
  ggtitle("Relación entre impuestos y valor de vivienda") +
  theme_minimal()

Observaciones:

  • La mayoría de las variables (como crim y zn) presentan un sesgo pronunciado hacia la derecha, lo que indica que los valores bajos son la norma, pero existen casos atípicos extremos que afectan el promedio.

  • Se detecta una relación lineal positiva muy fuerte entre el número de habitaciones y el valor de la vivienda, así como una relación inversa significativa con el nivel socioeconómico bajo (lstat).

  • Los scatter plots validan que las variables con mayor capacidad predictiva son rm y lstat, mostrando tendencias claras de crecimiento y decrecimiento respectivamente en relación con el precio.

6. Matriz de correlación

ggpairs(Boston[, c("medv","rm","lstat")])

Observaciones: Al observar la matriz de correlación se identifico lo siguiente:

  • Los histogramas y boxplots muestran que la mayoría de las variables (como crim y zn) tienen sesgos pronunciados y valores atípicos. Esto indica un mercado con casos extremos (lujo y alta criminalidad) que se alejan del promedio.

  • La matriz de correlación identifica al número de habitaciones (rm, +0.7) y al estatus socioeconómico (lstat, -0.74) como los factores con mayor impacto en el valor de la vivienda.

  • Existe una correlación extrema (0.91) entre impuestos (tax) y accesibilidad (rad), sugiriendo que ambas variables aportan información geográfica similar.

Conclusion General

El análisis exploratorio realizado sobre el dataset Boston permitió obtener una visión detallada del comportamiento de las variables que afectan el valor de las viviendas. Mediante la utilización de histogramas, boxplots y gráficos de dispersión, se pudo examinar la distribución de los datos, detectar la presencia de valores atípicos y evaluar las relaciones existentes entre distintas variables.

Los hallazgos indican que el número de habitaciones (rm) se relaciona positivamente con el valor de la vivienda, lo que sugiere que las casas con más habitaciones tienden a tener precios más altos. Por otro lado, variables como el porcentaje de población con bajo estatus socioeconómico (lstat) y la tasa de criminalidad (crim) presentan una relación negativa con el valor de las viviendas, señalando que en áreas con niveles elevados de estas variables, los precios suelen ser menores.

En resumen, este análisis permitió identificar patrones clave dentro del dataset y comprender los factores que influyen en el valor de las viviendas, proporcionando una base sólida para análisis más avanzados o la construcción de modelos predictivos de precios.