El objetivo de esta guía es construir, interpretar y comunicar un modelo de regresión lineal en R. Utilizaremos el dataset de viviendas de California para predecir el valor mediano de una vivienda basándonos en sus características. Todo el análisis se documentará en un informe de R Markdown que finalmente publicaremos en RPubs.
Aprenderemos a usar dplyr para manipular datos y ggplot2 para crear visualizaciones de alta calidad que nos ayuden a entender la estructura y las relaciones en nuestros datos.
Utilizaremos la función lm() de R para modelar la relación entre una variable dependiente (median_house_value) y uno o más predictores.
Desglosaremos la salida del modelo en R para entender los coeficientes, el R-cuadrado ajustado, los p-valores y su significado práctico.
Entenderemos cómo combinar texto narrativo, código R y sus salidas (tablas, gráficos) en un único documento profesional.
# cargando los paquetes tidyverse y corrplot
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 3.5.2 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(corrplot)
## corrplot 0.95 loaded
# 2. Cargar el conjunto de datos
# Se asume que el archivo "housing.csv" está en tu directorio de trabajo.
# read_csv() es una función de tidyverse (del paquete readr) para leer archivos CSV.
casas = read.csv("housing.csv")
casas
# Muestra las tres primeras lineas del dataset
head(casas,3)
# Muestra las tres ultimas lineas del dataset
tail(casas,3)
# 3. Obtener una vista rápida de los datos
# glimpse() de dplyr (parte de tidyverse) ofrece un resumen conciso y transpuesto del data frame.
# Es muy útil para ver los tipos de datos de cada columna y algunos valores de ejemplo.
glimpse(casas)
## Rows: 20,640
## Columns: 10
## $ longitude <dbl> -122.23, -122.22, -122.24, -122.25, -122.25, -122.2…
## $ latitude <dbl> 37.88, 37.86, 37.85, 37.85, 37.85, 37.85, 37.84, 37…
## $ housing_median_age <dbl> 41, 21, 52, 52, 52, 52, 52, 52, 42, 52, 52, 52, 52,…
## $ total_rooms <dbl> 880, 7099, 1467, 1274, 1627, 919, 2535, 3104, 2555,…
## $ total_bedrooms <dbl> 129, 1106, 190, 235, 280, 213, 489, 687, 665, 707, …
## $ population <dbl> 322, 2401, 496, 558, 565, 413, 1094, 1157, 1206, 15…
## $ households <dbl> 126, 1138, 177, 219, 259, 193, 514, 647, 595, 714, …
## $ median_income <dbl> 8.3252, 8.3014, 7.2574, 5.6431, 3.8462, 4.0368, 3.6…
## $ median_house_value <dbl> 452600, 358500, 352100, 341300, 342200, 269700, 299…
## $ ocean_proximity <chr> "NEAR BAY", "NEAR BAY", "NEAR BAY", "NEAR BAY", "NE…
# Mostrando las variables del dataset casas
# Mostrando la variable objetivo o dependiente
# Mediante un resumen utilizando la función summary()
summary(casas$median_house_value)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 14999 119600 179700 206856 264725 500001