La base de datos de Boston contiene información sobre valores de viviendas en 506 secciones censales del área de Boston, recopilada por el Servicio de Censos de EE. UU. en 1970. Este conjunto de datos fue originalmente publicado por Harrison y Rubinfeld en 1978 en el artículo “Hedonic prices and the demand for clean air”, y se ha empleado como referencia para benchmarkear algoritmos de regresión.

Características principales del conjunto de datos

El conjunto incluye 14 variables, siendo la variable objetivo medv (valor medio de las viviendas ocupadas por el propietario en miles de dólares). Las variables independientes son:

Análisis de datos exploratorios de la base Boston

A continuación se indicarán los paquetes a emplear para trabajar con la base:

  1. tidyverse

  2. MASS

  3. GGally

  4. skimr

Los resultados que obtuvimos del análisis general empleando la función \(\ skimr\) se pueden ver a continuación:

#------------------------------
#1. Cargar y exlplorar dataset
#------------------------------
data("Boston")
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 ▂▇▅▁▁

Es importante destacar que la variable \(\text{tax}\) es la que posee mayor disperción. A su vez, se observa que las variables de \(\text{tax}\) y \(\text{rad}\) pueden tener observaciones que resulten ser atípicas.

Los primeros 5 registros se pueden observar a continuación:

head(Boston,5)
##      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 continuación seleccionamos las variables clave para interpretar la base de datos:

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

De estas variables nos interesa saber su media y su desviación estandar, estos valores se muestran a continuación

#Media y desviación estándar
sapply(Boston[variables_g1],mean) #media de varias columnas 
##       medv         rm      lstat       crim        tax 
##  22.532806   6.284634  12.653063   3.613524 408.237154
sapply(Boston[variables_g1],sd)
##        medv          rm       lstat        crim         tax 
##   9.1971041   0.7026171   7.1410615   8.6015451 168.5371161

Realizamos además un gráfico de cajas con información de las variables

Realizando un análisis univariado de la base obtenemos los siguientes gráficos:

* Histogramas:

sqrt(dim(Boston))
## [1] 22.494444  3.741657
ggplot(Boston, aes(x=medv))+
  geom_histogram(fill="skyblue", color="white", bins=23)+
  ggtitle("Histograma de medv")+
  theme_minimal()

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

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

*Boxplots:

Boston %>% 
  select(medv,rm, 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")+
  #scale_fill_manual(values=c(medv="lightblue"), lstat= "light)
  ggtitle("Boxplot de medv, rm y lstat")+
  theme_minimal()

Scatter plots ordenados por medv

Un scatter plot, también conocido como diagrama de dispersión, es una representación gráfica que muestra la relación entre dos variables numéricas. Se utiliza un sistema de coordenadas cartesianas donde cada punto representa un par de valores: uno en el eje horizontal (variable independiente) y otro en el eje vertical (variable dependiente).

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")+
  scale_color_manual(values=c(rm="blue", lstat="red",
                    crim="purple", tax="orange"))+
  ggtitle("Relación de medv", subtitle = "Gráficos por faceta")+
  theme_minimal()

Mientras que con un análisis bivariado obtenemos lo siguiente:

ggplot(Boston, aes(x=lstat, y=medv))+
  geom_point(color="red")+
  ggtitle("medv vs lstat")+
  theme_minimal()

ggplot(Boston, aes(x=crim, y=medv))+
  geom_point(color="purple")+
  scale_x_log10()+
  ggtitle("medv vs crim (escala log)")+
  theme_minimal()

ggplot(Boston, aes(x=tax, y=medv))+
  geom_point(color="orange")+
  ggtitle("medv vs tax")+
  theme_minimal()

Matriz de correlación visual

Matriz de correlación visual es una representación gráfica que muestra los coeficientes de correlación entre múltiples variables en un formato matricial, donde cada celda representa la relación entre dos variables.

#------------------------------
#Mariz de correlación visual
#------------------------------
ggpairs(Boston[, c("medv", "rm","lstat")])

Interpretación:

En la representación gráfica (como una imagen de calor), los colores oscuros indican correlaciones fuertes (positivas o negativas), mientras que los colores claros o blancos representan correlaciones débiles o nulas.

Correlaciones destacadas:
  • \(\text{medv}\) (valor medio de viviendas) muestra una fuerte correlación positiva con \(\text{rm}\) (número de habitaciones), con un valor de aproximadamente 0.695, lo que indica que más habitaciones están asociadas a precios más altos.

  • \(\text{medv}\) también tiene una fuerte correlación negativa con \(\text{lstat}\) (porcentaje de población de baja renta), alrededor de -0.738, sugiriendo que áreas con mayor pobreza tienden a tener valores de vivienda más bajos.

  • \(\text{crim}\) (tasa de criminalidad) está positivamente correlacionada con \(\text{lstat}\) y negativamente con \(\text{rm}\), lo que refleja patrones de desigualdad socioeconómica.