El conjunto de datos Boston del paquete MASS de R. Es un conjunto de datos clásico utilizado en regresión lineal y análisis de datos.
Aquí hay algunos detalles sobre el conjunto de datos:
Descripción:
El conjunto de datos Boston contiene información sobre 506 barrios de Boston, Massachusetts, en 1970. Las 14 variables incluyen:
library(MASS)
Boston
names(Boston)
## [1] "crim" "zn" "indus" "chas" "nox" "rm" "age"
## [8] "dis" "rad" "tax" "ptratio" "black" "lstat" "medv"
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 ...
library(readr)
housing <- read_csv("housing.csv")
## Rows: 20640 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ocean_proximity
## dbl (9): longitude, latitude, housing_median_age, total_rooms, total_bedroom...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
housing
names(housing)
## [1] "longitude" "latitude" "housing_median_age"
## [4] "total_rooms" "total_bedrooms" "population"
## [7] "households" "median_income" "median_house_value"
## [10] "ocean_proximity"
str(housing)
## spc_tbl_ [20,640 × 10] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ longitude : num [1:20640] -122 -122 -122 -122 -122 ...
## $ latitude : num [1:20640] 37.9 37.9 37.9 37.9 37.9 ...
## $ housing_median_age: num [1:20640] 41 21 52 52 52 52 52 52 42 52 ...
## $ total_rooms : num [1:20640] 880 7099 1467 1274 1627 ...
## $ total_bedrooms : num [1:20640] 129 1106 190 235 280 ...
## $ population : num [1:20640] 322 2401 496 558 565 ...
## $ households : num [1:20640] 126 1138 177 219 259 ...
## $ median_income : num [1:20640] 8.33 8.3 7.26 5.64 3.85 ...
## $ median_house_value: num [1:20640] 452600 358500 352100 341300 342200 ...
## $ ocean_proximity : chr [1:20640] "NEAR BAY" "NEAR BAY" "NEAR BAY" "NEAR BAY" ...
## - attr(*, "spec")=
## .. cols(
## .. longitude = col_double(),
## .. latitude = col_double(),
## .. housing_median_age = col_double(),
## .. total_rooms = col_double(),
## .. total_bedrooms = col_double(),
## .. population = col_double(),
## .. households = col_double(),
## .. median_income = col_double(),
## .. median_house_value = col_double(),
## .. ocean_proximity = col_character()
## .. )
## - attr(*, "problems")=<externalptr>
La función summary()
en R se utiliza para obtener un
resumen estadístico de un objeto. Este objeto puede ser un vector, una
matriz, un data frame, un modelo de regresión, un modelo ANOVA, entre
otros.
La función summary()
en R se utiliza para obtener un
resumen estadístico de un objeto. Este objeto puede ser un vector, una
matriz, un data frame, un modelo de regresión, un modelo ANOVA, entre
otros.
¿Qué información proporciona?
summary()
genera un resumen con diferentes estadísticas
descriptivas, dependiendo del tipo de objeto que se le pase como
argumento. Para vectores numéricos, por ejemplo, la
función proporcionará:
En el caso de data frames, summary()
mostrará un resumen para cada variable, incluyendo:
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
rm
y
medv
summary(Boston$rm)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.561 5.886 6.208 6.285 6.623 8.780
summary(Boston$medv)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.00 17.02 21.20 22.53 25.00 50.00
summary(housing)
## longitude latitude housing_median_age total_rooms
## Min. :-124.3 Min. :32.54 Min. : 1.00 Min. : 2
## 1st Qu.:-121.8 1st Qu.:33.93 1st Qu.:18.00 1st Qu.: 1448
## Median :-118.5 Median :34.26 Median :29.00 Median : 2127
## Mean :-119.6 Mean :35.63 Mean :28.64 Mean : 2636
## 3rd Qu.:-118.0 3rd Qu.:37.71 3rd Qu.:37.00 3rd Qu.: 3148
## Max. :-114.3 Max. :41.95 Max. :52.00 Max. :39320
##
## total_bedrooms population households median_income
## Min. : 1.0 Min. : 3 Min. : 1.0 Min. : 0.4999
## 1st Qu.: 296.0 1st Qu.: 787 1st Qu.: 280.0 1st Qu.: 2.5634
## Median : 435.0 Median : 1166 Median : 409.0 Median : 3.5348
## Mean : 537.9 Mean : 1425 Mean : 499.5 Mean : 3.8707
## 3rd Qu.: 647.0 3rd Qu.: 1725 3rd Qu.: 605.0 3rd Qu.: 4.7432
## Max. :6445.0 Max. :35682 Max. :6082.0 Max. :15.0001
## NA's :207
## median_house_value ocean_proximity
## Min. : 14999 Length:20640
## 1st Qu.:119600 Class :character
## Median :179700 Mode :character
## Mean :206856
## 3rd Qu.:264725
## Max. :500001
##
rm
y
medv
summary(housing$total_rooms)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2 1448 2127 2636 3148 39320
summary(housing$median_house_value)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 14999 119600 179700 206856 264725 500001
La función hist() en R se utiliza para crear un histograma de un vector de datos. Un histograma es una representación gráfica de la distribución de frecuencias de un conjunto de datos.
hist(Boston$medv)
hist(housing$median_house_value)
library(MASS)
library(ggplot2)
# Carga del conjunto de datos
boston <- data.frame(Boston)
# Crea un diagrama de dispersión
ggplot(boston, aes_string(x = "rm", y = "medv")) +
geom_point() +
labs(title = "Relación entre rm y medv",
x = "Número promedio de habitaciones por vivienda",
y = "Precio medio de la vivienda (miles de dólares)")
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Añadir una línea de regresión lineal
stat_smooth(method = "lm")
## geom_smooth: se = TRUE, na.rm = FALSE, orientation = NA
## stat_smooth: method = lm, formula = NULL, se = TRUE, n = 80, fullrange = FALSE, level = 0.95, na.rm = FALSE, orientation = NA, method.args = list(), span = 0.75
## position_identity
# Mostrar el gráfico
ggsave("rm_medv.png")
## Saving 7 x 5 in image
# modelo <- lm(formula = Boston$medv ~ Boston$rm, data = Boston)
# abline(modelo)
# summary(modelo)
# Regresión lineal
modelo <- lm(medv ~ rm, data = Boston)
# Resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = medv ~ rm, data = Boston)
##
## Residuals:
## Min 1Q Median 3Q Max
## -23.346 -2.547 0.090 2.986 39.433
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -34.671 2.650 -13.08 <2e-16 ***
## rm 9.102 0.419 21.72 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.616 on 504 degrees of freedom
## Multiple R-squared: 0.4835, Adjusted R-squared: 0.4825
## F-statistic: 471.8 on 1 and 504 DF, p-value: < 2.2e-16
Esta es la interpretación de la salida del comando
lm()
:
Llamada:
Esta línea especifica la fórmula utilizada para la regresión lineal. En este caso, el modelo predice el “valor mediano de la vivienda” (medv) en base a la “cantidad promedio de habitaciones” (rm) del conjunto de datos “Boston”.
Residuos:
Esta sección muestra el mínimo, primer cuartil (Q1), mediana, tercer cuartil (Q3) y máximo valor de los residuos. Los residuos representan la diferencia entre los valores reales de “medv” y los valores predichos por el modelo. Idealmente, estos valores deberían estar distribuidos aleatoriamente alrededor de cero, indicando que no hay errores sistemáticos en el modelo.
Coeficientes:
Esta sección es crucial para entender la relación entre las variables:
Error estándar residual: Este valor (6.616) representa la desviación estándar de los residuos, indicando la diferencia promedio entre los valores predichos y reales de “medv”.
R-cuadrado múltiple y R-cuadrado ajustado: Estos valores representan la proporción de la varianza en “medv” explicada por el modelo. En este caso, el 48.35% de la variabilidad en el precio de las viviendas es explicada por el modelo considerando el número de habitaciones, mientras que el R-cuadrado ajustado (48.25%) corrige por el número de predictores en el modelo y se considera una estimación más confiable de la varianza explicada.
Estadístico F y valor p: El estadístico F (471.8) y su valor p (< 2.2e-16) indican que el modelo es estadísticamente significativo, lo que significa que existe una fuerte relación lineal entre “rm” y “medv”.
En resumen, este modelo sugiere una relación positiva estadísticamente significativa entre el número de habitaciones y el valor mediano de la vivienda. Sin embargo, es importante recordar que este modelo solo explica una parte de la varianza en los precios de las viviendas. Otros factores no incluidos en el modelo también podrían influir en el precio.