title: “Análisis Exploratorio del Dataset Boston” author: “Jesús” date: “2026-03-06” output: html_document ———————

Introducción

El presente documento muestra un análisis exploratorio del dataset Boston incluido en la librería MASS de R. Este conjunto de datos contiene información socioeconómica y características de viviendas en distintos barrios de Boston. El objetivo del análisis exploratorio es comprender la estructura de los datos, observar la distribución de las variables y detectar posibles relaciones entre ellas.

Carga de librerías y datos

# 1. Instalar pacman automáticamente si no lo tienes
if (!requireNamespace("pacman", quietly = TRUE)) {
  install.packages("pacman")
}

# 2. Cargar librerías necesarias
library(pacman)
## Warning: package 'pacman' was built under R version 4.5.2
p_load(MASS, tidyverse, GGally, skimr)

# 3. Configuración para evitar notación científica
options(scipen = 999)

# 4. Cargar la base de datos
data("Boston")

Exploración inicial del dataset

En esta sección se revisa la estructura general del conjunto de datos, incluyendo número de observaciones, tipo de variables y primeras filas del dataset.

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 ▂▇▅▁▁
head(Boston)
##      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
## 6 0.02985  0  2.18    0 0.458 6.430 58.7 6.0622   3 222    18.7 394.12  5.21
##   medv
## 1 24.0
## 2 21.6
## 3 34.7
## 4 33.4
## 5 36.2
## 6 28.7
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 ...

El dataset Boston contiene información socioeconómica y características de viviendas en diferentes zonas. La exploración inicial permite conocer el número de observaciones, el tipo de variables y la estructura general de los datos antes de realizar análisis más profundos.

Resúmenes estadísticos

Se seleccionan algunas variables relevantes para el análisis y se calculan medidas descriptivas como la media y la desviación estándar.

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

cat("\n--- Medias ---\n")
## 
## --- Medias ---
sapply(Boston_g1, mean)
##       medv         rm      lstat       crim        tax 
##  22.532806   6.284634  12.653063   3.613524 408.237154
cat("\n--- Desviaciones Estándar ---\n")
## 
## --- Desviaciones Estándar ---
sapply(Boston_g1, sd)
##        medv          rm       lstat        crim         tax 
##   9.1971041   0.7026171   7.1410615   8.6015451 168.5371161

Las estadísticas descriptivas permiten identificar el comportamiento promedio de las variables y su nivel de dispersión. Variables como medv representan el valor mediano de las viviendas, rm indica el número promedio de habitaciones y lstat el porcentaje de población de bajo estatus socioeconómico.

Histogramas de variables clave

Los histogramas permiten analizar la forma de la distribución de cada variable y detectar posibles asimetrías o concentraciones de valores.

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_manual(values = c("medv" = "skyblue", "rm" = "salmon", "lstat" = "green")) +
  theme_minimal() +
  labs(title = "Histogramas de variables medv, rm y lstat", 
       x = "Valor", 
       y = "Frecuencia")

Se puede observar que cada variable presenta distribuciones diferentes. Algunas variables muestran mayor concentración de valores en ciertos rangos, lo cual es común en datos socioeconómicos.

Matriz de correlación

La matriz de correlación permite identificar relaciones entre variables numéricas y detectar posibles asociaciones entre ellas.

ggpairs(Boston_g1, title = "Matriz de Correlación (Variables Clave)")

La matriz de correlación facilita visualizar posibles relaciones lineales entre variables. Esto es útil para identificar variables que podrían explicar el comportamiento del valor de las viviendas.

Histogramas individuales

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

ggplot(Boston, aes(x=rm)) +
  geom_histogram(fill="black", color="orange", bins = 23) +
  ggtitle("Histograma rm") +
  theme_minimal()

ggplot(Boston, aes(x=lstat)) +
  geom_histogram(fill="black", color="orange", bins = 23) +
  ggtitle("Histograma lstat") +
  theme_minimal()

Estos histogramas permiten observar con mayor detalle la distribución de cada variable de forma individual.

Boxplots de variables

Los boxplots permiten identificar la dispersión de los datos y detectar valores atípicos dentro de cada variable.

Boston %>%
  select(medv, rm, lstat, crim, tax) %>%
  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") +
  theme_minimal() +
  labs(title = "Distribución de variables clave", subtitle = "Boxplots por variable")

Los boxplots muestran la mediana, los cuartiles y posibles valores extremos. Algunas variables como la tasa de criminalidad pueden presentar mayor dispersión.

Scatter plot

Se analiza la relación entre la tasa de criminalidad y el valor de las viviendas.

ggplot(Boston, aes(x = crim, y = medv)) +
  geom_point(color = "purple", alpha = 0.5) +
  scale_x_log10() +
  theme_minimal() +
  labs(title = "Relación de MEDV vs CRIM", 
       subtitle = "Escala logarítmica en el eje X",
       x = "Tasa de Crimen (log10)", 
       y = "Valor Mediano de Vivienda")

El gráfico sugiere una relación negativa entre la tasa de criminalidad y el valor de las viviendas. Las zonas con mayor criminalidad tienden a presentar precios de vivienda más bajos.

Conclusiones

A partir del análisis exploratorio del dataset Boston se pueden destacar varios puntos importantes: