logo

Introducción

La regresión lineal simple (RLS) es una técnica estadística que estudia la relación entre dos variables cuantitativas:

  • Una variable dependiente o de respuesta (\(y\)), que buscamos explicar o predecir.
  • Una variable independiente o explicativa (\(x\)), que consideramos como factor asociado al cambio en \(y\).

El modelo se representa como:

\[ y_i = \beta_0 + \beta_1 x_i + e_i \] donde:

  • \(y_i\) es la variable dependiente o variable respuesta.
  • \(x_i\) es la variable explicativa, independientes o regresora.
  • \(\beta_0\) y \(\beta_1\) son constantes desconocidas llamadas coeficientes de regresión.
  • \(\beta_0\) es el intercepto (valor esperado de \(y\) cuando \(x=0\)).
  • \(\beta_1\) es la pendiente (cambio promedio en \(y\) por cada unidad de \(x\)).
  • \(e_i\) son los errores aleatorios, que recogen factores no explicados por el modelo.

Importancia

Entre los aspectos más relevantes al usar modelos re regresión, tenemos:

  • Realizar estimaciones futuras (predicción).
  • Ayuda a cuantificar el efecto de una relación (toma de decisiones).
  • Facilita entender cómo un factor clave influye en el desempeño de otro (Evaluación de impacto)

La RLS constituye la base de modelos más complejos, como: regresión múltiple, ANOVA, modelos predictivos en ciencia de datos. Por eso, aunque los estudiantes ya conocen su definición formal, en este curso la usaremos como punto de partida para profundizar en aplicaciones prácticas en el mundo empresarial.

Ejemplo de motivación

¿Por qué modelar con RLS en negocios?

En servicio al cliente, la espera impacta directamente la satisfacción. Evidencia reciente muestra caídas notables en satisfacción cuando las personas deben esperar más de 5 minutos para ser atendidas, algo muy común en atención presencial. Además, la satisfacción no solo depende del tiempo “real” sino de si la espera fue mayor o menor a lo esperado.

Aun cuando relaciones más complejas (no lineales, por tramos o exponenciales) pueden solucionar esta situación, la RLS entrega rápidamente:

  • Una pendiente interpretable, como el efecto marginal por minuto.
  • un \(R^2\) (coeficiente de determinación) para cuantificar cuánto explica el factor principal.
  • Predicciones para metas operativas.

Pregunta de investigación: si reducimos el tiempo promedio de espera, ¿cuánto aumentaría en promedio la satisfacción?

Desarrollo en R

Datos

Para ejemplificar esta situación, simularemos datos, usando tiempos de espera (1 - 10 minutos) y porcentaje de satisfacción (0%–100%) con una relación negativa realista.

# Datos simulados
set.seed(2025)  # semilla
espera <- 1:10
sat    <- round(95 - 2.2*espera + rnorm(length(espera), 0, 3),2) 

library(tidyverse)
tabla <- tibble(espera, sat)
tabla
## # A tibble: 10 × 2
##    espera   sat
##     <int> <dbl>
##  1      1  94.7
##  2      2  90.7
##  3      3  90.7
##  4      4  90.0
##  5      5  85.1
##  6      6  81.3
##  7      7  80.8
##  8      8  77.2
##  9      9  74.2
## 10     10  75.1

Exploración de la relación

# 1) Exploración visual
library(highcharter)
highchart() %>% hc_xAxis(categories = espera) %>% hc_add_series(data = sat, type = "scatter")
# 2) Correlación 
cor(espera, sat)
## [1] -0.9811759

Modelo de regresión

# 3) modelo
lm <- lm(sat ~ espera, data = tabla)
summary(lm)
## 
## Call:
## lm(formula = sat ~ espera, data = tabla)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.56036 -1.33368 -0.01555  0.70677  2.48927 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  97.0100     1.0232   94.81 1.71e-13 ***
## espera       -2.3698     0.1649  -14.37 5.37e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.498 on 8 degrees of freedom
## Multiple R-squared:  0.9627, Adjusted R-squared:  0.958 
## F-statistic: 206.5 on 1 and 8 DF,  p-value: 5.37e-07
# 4) Predicciones manuales
nuevo <- data.frame(espera=c(3.5,6.8))
predict(lm,nuevo)
##        1        2 
## 88.71564 80.89524

Intervalos de confianza

# 1) Ajuste y predicciones (línea + IC de confianza)
grid <- data.frame(espera = seq(min(espera), max(espera), length.out = 100))
pred <- cbind(grid, round(predict(lm, newdata = grid, interval = "confidence", level = 0.95),2))
names(pred)[2:4] <- c("yhat", "li", "ls")

# 2) Gráfico
highchart() %>%
    hc_add_series(
    data = list_parse2(data.frame(x = espera, y = sat)),
    type = "scatter",
    name = "Observado",
    marker = list(radius = 4)
  ) %>%
    # Recta de regresión
  hc_add_series(
    data = list_parse2(data.frame(x = pred$espera, y = pred$yhat)),
    type = "line",
    name = "RLS",
    zIndex = 2
  ) %>%
  # IC 95% confianza 
  hc_add_series(
    data = list_parse2(data.frame(x = pred$espera, low = pred$li, high = pred$ls)),
    type = "arearange",
    name = "IC 95%",
    zIndex = 0
  )

Ejercicio de clase

Relación entre educación e ingreso en municipios de Puerto Rico

Trabajamos datos son simulados para práctica. La fuente real a replicar luego es el U.S. Census Bureau, American Community Survey (ACS).

Instrucciones:

  • Carga el CSV y revisa su estructura.

  • Calcula estadísticas descriptivas (media, mediana y desviación estándar) para ambas variables.

  • Haz un diagrama de dispersión y analiza su correlación.

  • Ajusta una regresión lineal simple.

  • Interpreta la salida del modelo.