Analisis multivariado para Boston.

El presente trabajo tiene como finalidad realizar un analisis estadistico para la base de datos multivariada Boston la cual contiene 506 observaciones sobre el valor de las viviendas en los suburbios de Boston, incluida en el paquete MASS de R, esta base de datos proviene de un estudio realizado por el Departamento de Economía de la Universidad de Harvard y la US Census Bureau en 1978.

Metodología.

Se emplearan herramientas de estadistica descriptiva multivariada como:

  • Vector de medias.
  • Matriz de varianzas y covarianzas.
  • Matriz de correlación.
  • Varianza generalizada.
  • Graficos de disperción.

Es necesario activar los paquetes MASS, knitr, openxlsx2 y dplyr.

library(MASS)

library(dplyr)

library(knitr)

library(openxlsx2)

Se presenta a continuación la base de datos Boston con una seleccion de 64 datos bajo la semilla 8689.

#Asignar la base de datos Boston

datos <- Boston

#Sembrar una semilla

set.seed(8689)

#Realizar una particion de 64 datos

Boston.64 <- slice_sample(datos, n=64)

kable(head(Boston.64), format = "markdown")
crim zn indus chas nox rm age dis rad tax ptratio black lstat medv
0.55007 20 3.97 0 0.647 7.206 91.6 1.9301 5 264 13.0 387.89 8.10 36.5
3.32105 0 19.58 1 0.871 5.403 100.0 1.3216 5 403 14.7 396.90 26.82 13.4
22.59710 0 18.10 0 0.700 5.000 89.5 1.5184 24 666 20.2 396.90 31.99 7.4
0.08447 0 4.05 0 0.510 5.859 68.7 2.7019 5 296 16.6 393.23 9.64 22.6
0.07165 0 25.65 0 0.581 6.004 84.1 2.1974 2 188 19.1 377.67 14.27 20.3
0.72580 0 8.14 0 0.538 5.727 69.5 3.7965 4 307 21.0 390.95 11.28 18.2

Así, con la particion de 64 datos aleatorios se decidio trabajar con las variables:

  • crim: tasa de criminalidad per cápita por ciudad.
  • age: proporción de unidades ocupadas por sus propietarios construidas antes de 1940.
  • rad: índice de accesibilidad a carreteras radiales.
  • ptratio: proporción de alumnos por profesor por ciudad.
  • lstat: estatus inferior de la población (porcentaje).
Boston.64_Clean <- Boston.64[,c(1,7,9,11,13)]

kable(head(Boston.64_Clean), format = "markdown")
crim age rad ptratio lstat
0.55007 91.6 5 13.0 8.10
3.32105 100.0 5 14.7 26.82
22.59710 89.5 24 20.2 31.99
0.08447 68.7 5 16.6 9.64
0.07165 84.1 2 19.1 14.27
0.72580 69.5 4 21.0 11.28

Para estimar los estadisticos multivariados, se debe verificar que la base de datos es un DataFrame y si existen datos NA, para omitirlos.

is.data.frame(Boston.64_Clean)
## [1] TRUE
anyNA(Boston.64_Clean)
## [1] FALSE

Al verificar que la base de datos es un dataframe y que no existen NAs en la misma, se puede proceder al estimar los estadisticos.

Para exportar la base de datos a Excel se usa:

write_xlsx(x=Boston.64_Clean, file="Base de Datos Boston.64_Clean.xlsx")

Vector de medias.

El vector de medias, es una medida de tendencia que proporciona información de la media de cada variable en la base de datos. Para la muestra de esta base de datos, el vector de medias esta determiando por:

vec_med_Boston <- round(colMeans(Boston.64_Clean),3)

vec_med_Boston
##    crim     age     rad ptratio   lstat 
##   3.382  67.080   8.938  18.439  13.074

Matriz de Varianza y Covarianza.

La matriz de varianza

var_Boston <- round(var(Boston.64_Clean),3)

var_Boston
##           crim     age    rad ptratio   lstat
## crim    64.184  81.774 47.176   5.331  39.858
## age     81.774 839.958 93.861  14.047 159.563
## rad     47.176  93.861 72.409   8.318  34.580
## ptratio  5.331  14.047  8.318   5.938   7.083
## lstat   39.858 159.563 34.580   7.083  64.922

Matriz de Correlacion.

La matriz de Correlación es

cor_Boston <- round(cor(Boston.64_Clean),3)

cor_Boston
##          crim   age   rad ptratio lstat
## crim    1.000 0.352 0.692   0.273 0.617
## age     0.352 1.000 0.381   0.199 0.683
## rad     0.692 0.381 1.000   0.401 0.504
## ptratio 0.273 0.199 0.401   1.000 0.361
## lstat   0.617 0.683 0.504   0.361 1.000

Varianza generalizada.

La varianza generalizada

varg_Boston <- det(var_Boston)

varg_Boston
## [1] 192260297

Y la desviación estandar generalizada

sqrt(varg_Boston)
## [1] 13865.8

Gráficos de dispersión

# Instalar y cargar ggplot2
if(!require(ggplot2)) install.packages("ggplot2")
library(ggplot2)

# Gráfico de pares (matriz de dispersión)
pairs(Boston.64_Clean, col = "brown")

# Gráfico de dispersión específico: crim vs rad
plot(x = Boston.64_Clean$crim, y = Boston.64_Clean$rad, col = "#C2B280",
     xlab = "Crim", ylab = "Rad", 
     main = "Gráfico de Dispersión: Crim vs Rad")

#Resumen estadístico de Boston.64_Clean
resumen1 <- summary(Boston.64_Clean)