Introducción al Análisis

El presente reporte detalla el flujo de trabajo seguido para realizar un Análisis Exploratorio de Datos (EDA) sobre el dataset Boston. El objetivo es identificar las variables socioeconómicas y estructurales que inciden en la determinación del valor de las viviendas en dicha región.

Parte 1.

## Warning: package 'MASS' was built under R version 4.4.3
## Warning: package 'pacman' was built under R version 4.4.3
## Warning: package 'skimr' was built under R version 4.4.3
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tibble' was built under R version 4.4.2
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'stringr' was built under R version 4.4.3
## Warning: package 'forcats' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.2.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ dplyr::select() masks MASS::select()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Warning: package 'GGally' was built under R version 4.4.3

Preparación del Entorno de Trabajo

En esta fase inicial se procede con la carga de las librerías necesarias para la manipulación y visualización de datos. Se utilizan herramientas del ecosistema tidyverse y paquetes especializados como skimr y GGally para garantizar un procesamiento eficiente y profesional de la información.

Carga y Reconocimiento del Dataset

data(Boston)

Se realiza la importación del dataset Boston, el cual contiene 506 observaciones relativas a diversos sectores de la ciudad. Cada registro integra variables sobre el entorno social, económico y ambiental de las viviendas.

Identificación de Variables:

names(Boston)
##  [1] "crim"    "zn"      "indus"   "chas"    "nox"     "rm"      "age"    
##  [8] "dis"     "rad"     "tax"     "ptratio" "black"   "lstat"   "medv"

Esta instrucción permite visualizar los identificadores de las columnas, facilitando la comprensión de la estructura del conjunto de datos antes de proceder con el análisis estadístico.

Parte 2.

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 ▂▇▅▁▁
## [1] 506  14
## '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 ...

Se realiza una inspección profunda de la estructura de datos: - Mediante options(), se desactiva la notación científica para asegurar una lectura clara de las magnitudes numéricas. - La función skim() proporciona un diagnóstico integral sobre la integridad y distribución de las variables. - Se verifican las dimensiones con dim() y la naturaleza de los datos con str() para validar la consistencia del set antes del análisis descriptivo.

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

La función summary() genera los parámetros de tendencia central y dispersión, tales como la media, mediana y cuartiles, permitiendo una visión general de la distribución de cada atributo.

Parte 3

Selección de Variables Críticas:

Con el fin de optimizar el estudio, se seleccionan únicamente las variables con mayor relevancia teórica para el mercado inmobiliario, tales como el valor medio (medv), el número de habitaciones (rm) y el índice de criminalidad (crim). Se genera un subconjunto denominado Boston_b1 para focalizar el análisis.

Cálculo de Estadísticos Descriptivos:

#calcular media y varianza de las variables
sapply(Boston_b1[variable_b1],mean)
##       medv         rm      lstat       crim        tax 
##  22.532806   6.284634  12.653063   3.613524 408.237154
sapply(Boston_b1[variable_b1],sd)
##        medv          rm       lstat        crim         tax 
##   9.1971041   0.7026171   7.1410615   8.6015451 168.5371161

Se determinan las medias aritméticas y las desviaciones estándar de las variables seleccionadas. Estas métricas son fundamentales para establecer los puntos de referencia y el grado de variabilidad presente en el dataset.

Parte 4

Análisis Visual: Distribución de Frecuencias (Histogramas)

#HISTOGRAMAS UNIVARIANTE
Boston_b1 %>% 
  dplyr::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="lightgreen"))+ 
  labs(title = "HISTOGRAMA CONJUNTO")+
  theme_minimal()

Se construyen histogramas conjuntos para evaluar la morfología de las distribuciones de las variables principales. Esto permite observar visualmente la concentración de los datos y la presencia de asimetrías en los precios y el estatus socioeconómico.

Análisis Univariante Detallado

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


Variable medv: Se observa que los valores de las viviendas tienden a concentrarse en rangos medios, con frecuencias menores en los extremos.

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


Variable rm: Presenta una distribución relativamente simétrica, sugiriendo que el número de habitaciones en la mayoría de las viviendas oscila cerca del promedio.

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


Variable lstat: Muestra una dispersión mayor, reflejando la heterogeneidad en las condiciones socioeconómicas de los distintos sectores analizados.

Nota Metodológica: El desglose individual permite identificar con precisión la presencia de sesgos o comportamientos específicos que podrían influir en modelos predictivos futuros.

Visualización de Dispersión y Outliers (Boxplot)

##BOXPLOT EN CONJUNTO
Boston_b1 %>% 
  dplyr::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")+
  labs(title = "BOXPLOT CONJUNTO")+
theme_minimal()

El diagrama de caja y bigotes permite visualizar la mediana, el rango intercuartílico y la detección de valores atípicos (outliers) que se distancian significativamente del comportamiento central del grupo.

Estudio de Correlación Bivariante

#Grafica de dispersion
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_fill_brewer(palette = "Set2")+
  scale_color_manual(values = c(rm = "blue", lstat = "red", crim = "purple", tax = "orange"))+
  ggtitle("Relación de medv", subtitle = "Graficos por faceta" )+
theme_minimal()

Se analiza la relación entre el valor de la vivienda y los factores explicativos. De acuerdo con los gráficos de dispersión, se infieren las siguientes tendencias: - rm vs medv: Existe una asociación positiva; a mayor número de habitaciones, se observa un incremento en el valor de la propiedad. - lstat vs medv: Se presenta una relación negativa, indicando que niveles socioeconómicos más vulnerables se asocian con precios de vivienda más bajos. - crim vs medv: La criminalidad muestra un impacto inverso sobre la valuación inmobiliaria.

Diagramas de Dispersión Específicos

#Grafica bivariante
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()

Estas representaciones gráficas finales permiten confirmar con mayor detalle cómo las cargas impositivas y la seguridad pública interactúan con el valor del suelo en Boston.

Conclusiones del Análisis Exploratorio

Tras la ejecución del análisis sobre el dataset Boston, se han identificado patrones fundamentales que rigen el comportamiento del mercado inmobiliario en la región:

  1. Influencia Estructural: El tamaño de la vivienda, representado por el número de habitaciones (rm), es un determinante directo y positivo del valor mediano (medv).
  2. Impacto Socioeconómico: La variable lstat actúa como un fuerte indicador inverso, donde la vulnerabilidad del sector correlaciona con una disminución en los precios inmobiliarios.
  3. Factores Externos: Tanto la incidencia delictiva (crim) como la estructura fiscal (tax) ejercen presiones negativas sobre la valoración, subrayando la importancia del entorno en la tasación de activos.

Este estudio proporciona la base estadística necesaria para avanzar hacia la implementación de modelos de regresión lineal o multivariante en etapas posteriores del curso de Cómputo Científico.