37. Introducción a la regresión lineal

La regresión lineal construye una ecuación que resume la relación entre una variable explicativa y una variable respuesta, y permite estimar valores dentro del rango observado.

37.1 ¿Qué es la regresión lineal?

La regresión lineal busca una recta que represente de la mejor manera posible un conjunto de pares (x, y). La variable x se denomina explicativa o independiente y la variable y, respuesta o dependiente.

El objetivo puede ser describir una tendencia, cuantificar cuánto cambia y cuando cambia x, o realizar una predicción aproximada.

37.2 Modelo de la recta

ŷ = a + bx

El símbolo ŷ representa el valor estimado por la recta. a es el intercepto u ordenada al origen y b es la pendiente.

Intercepto aValor estimado de y cuando x vale 0.
Pendiente bCambio promedio estimado en y por cada unidad que aumenta x.
Predicción ŷResultado producido por la ecuación para un x elegido.

37.3 Datos de ejemplo

Supongamos que registramos horas de estudio y calificación:

Horas xCalificación y
152
256
361
465
571

Los puntos no tienen que estar exactamente sobre una recta. La regresión encuentra una tendencia central que resume el conjunto.

37.4 Cálculo de la pendiente

b = Σ[(xᵢ − x̄)(yᵢ − ȳ)] / Σ(xᵢ − x̄)²

El numerador es la covariación entre x e y. El denominador mide la variabilidad de x. Si x aumenta junto con y, la pendiente suele ser positiva; si y disminuye, suele ser negativa.

37.5 Cálculo del intercepto

a = ȳ − b x̄

Una vez calculada la pendiente, se elige el intercepto para que la recta pase por el punto de las medias (x̄, ȳ). Esta propiedad es fundamental en la regresión lineal por mínimos cuadrados.

37.6 Ejemplo numérico

Para los datos de horas y calificaciones, una recta aproximada puede ser:

ŷ = 46,7 + 4,8x

La pendiente indica que la calificación estimada aumenta unos 4,8 puntos por cada hora adicional de estudio. Para x = 4, la predicción es:

ŷ = 46,7 + 4,8 · 4 = 65,9

La predicción no es una garantía: es el valor que proporciona el modelo para ese nivel de x.

37.7 Método de mínimos cuadrados

La recta de mínimos cuadrados se elige minimizando la suma de los cuadrados de los errores verticales. Elevar al cuadrado evita que los errores positivos y negativos se cancelen.

Suma de cuadrados de errores = Σ(yᵢ − ŷᵢ)²

La recta resultante es la que, entre todas las rectas posibles, produce el menor valor de esa suma.

37.8 Laboratorio interactivo

Observar la recta ajustada

37.9 Residuos

El residuo de una observación es la diferencia entre el valor real y el valor estimado:

eᵢ = yᵢ − ŷᵢ

Un residuo positivo significa que el punto está por encima de la recta; uno negativo, que está por debajo. El promedio de los residuos de una regresión con intercepto es igual a cero, aunque los residuos individuales no lo sean.

37.10 Predicción e interpolación

La interpolación estima un valor dentro del intervalo de x observado. Suele ser más razonable porque la recta se ajustó con información de esa zona.

Por ejemplo, si se observaron entre 1 y 5 horas, predecir para 3,5 horas es interpolar. La predicción para 20 horas sería extrapolar y requiere mucha más cautela.

37.11 Regresión y correlación

Pearson resume la intensidad y dirección de una relación lineal mediante r. La regresión, en cambio, produce una ecuación que permite estimar y a partir de x. Están relacionadas, pero no son lo mismo.

Una correlación alta no garantiza que la recta sea útil para cualquier propósito. Siempre hay que revisar unidades, rango de datos, residuos y contexto.

37.12 Supuestos básicos

  • La relación entre x e y es aproximadamente lineal.
  • Las observaciones son independientes o se ha tenido en cuenta su dependencia.
  • Los residuos no muestran un patrón sistemático evidente.
  • La variabilidad de los residuos es razonablemente estable.
  • No existen observaciones con una influencia desproporcionada sin revisar.

Para describir una tendencia, estos supuestos se evalúan gráficamente. Para inferencia formal, deben analizarse con mayor rigor.

37.13 Influencia y valores atípicos

Un punto alejado puede modificar mucho la pendiente, especialmente si también está lejos en la dirección de x. Conviene comparar el ajuste con y sin ese punto y justificar cualquier decisión de excluirlo.

Nunca se debe eliminar automáticamente una observación solo porque empeora el ajuste. Primero hay que verificar si es un error, un caso legítimo o una señal de que el modelo es insuficiente.

37.14 No confundir predicción con causalidad

Que x ayude a predecir y no significa que x cause y. Pueden intervenir otras variables, como experiencia, edad, clima o selección de la muestra. La regresión es una herramienta descriptiva y predictiva; la causalidad necesita un diseño de investigación apropiado.

37.15 Implementación en JavaScript

El siguiente código calcula la pendiente, el intercepto, las predicciones y la suma de cuadrados de los residuos. Luego dibuja los puntos y la recta en un canvas que se muestra al ejecutar.

const datos = [
  { x: 1, y: 52 },
  { x: 2, y: 56 },
  { x: 3, y: 61 },
  { x: 4, y: 65 },
  { x: 5, y: 71 }
];

const mediaX = datos.reduce((suma, dato) => suma + dato.x, 0) / datos.length;
const mediaY = datos.reduce((suma, dato) => suma + dato.y, 0) / datos.length;
const numerador = datos.reduce((suma, dato) => suma + (dato.x - mediaX) * (dato.y - mediaY), 0);
const denominador = datos.reduce((suma, dato) => suma + (dato.x - mediaX) ** 2, 0);
const pendiente = numerador / denominador;
const intercepto = mediaY - pendiente * mediaX;
const predicciones = datos.map(dato => intercepto + pendiente * dato.x);
const residuos = datos.map((dato, indice) => dato.y - predicciones[indice]);
const errorCuadratico = residuos.reduce((suma, residuo) => suma + residuo ** 2, 0);

console.log('Pendiente:', pendiente.toFixed(3));
console.log('Intercepto:', intercepto.toFixed(3));
console.log('Recta: y = ' + intercepto.toFixed(2) + ' + ' + pendiente.toFixed(2) + 'x');
console.log('Suma de cuadrados de residuos:', errorCuadratico.toFixed(3));

if (typeof document !== 'undefined') {
  const canvas = document.getElementById('canvasRegresionCodigo');
  const contexto = canvas.getContext('2d');
  const area = { izquierda: 70, derecha: 780, arriba: 35, base: 390 };
  const escalaX = valor => area.izquierda + (valor - 1) / 4 * (area.derecha - area.izquierda);
  const escalaY = valor => area.base - (valor - 45) / 30 * (area.base - area.arriba);

  contexto.clearRect(0, 0, canvas.width, canvas.height);
  contexto.strokeStyle = '#acd5c2'; contexto.lineWidth = 1;
  contexto.beginPath(); contexto.moveTo(area.izquierda, area.base); contexto.lineTo(area.derecha, area.base); contexto.stroke();
  contexto.beginPath(); contexto.moveTo(area.izquierda, area.base); contexto.lineTo(area.izquierda, area.arriba); contexto.stroke();
  contexto.strokeStyle = '#277d5d'; contexto.lineWidth = 3;
  contexto.beginPath(); contexto.moveTo(escalaX(1), escalaY(intercepto + pendiente), 0); contexto.lineTo(escalaX(5), escalaY(intercepto + pendiente * 5)); contexto.stroke();
  contexto.fillStyle = '#1f6f52';
  datos.forEach(dato => { contexto.beginPath(); contexto.arc(escalaX(dato.x), escalaY(dato.y), 7, 0, Math.PI * 2); contexto.fill(); });
}

37.16 Errores frecuentes

  • Leer el intercepto como una causa o como una observación real cuando x = 0 no pertenece al contexto.
  • Extrapolar muy lejos del intervalo observado.
  • Confundir una asociación alta con causalidad.
  • Ignorar puntos influyentes y residuos con patrón.
  • Redondear demasiado pronto durante el cálculo.

37.17 Qué debes recordar

La regresión lineal resume una tendencia mediante ŷ = a + bx.
La pendiente mide el cambio estimado de y por unidad de x, el intercepto completa la ecuación y los residuos muestran la diferencia entre datos reales y predicciones.

37.18 Conclusión

La regresión lineal es un primer modelo para describir y predecir relaciones entre variables cuantitativas. Su cálculo es sencillo, pero una interpretación responsable exige observar los datos, controlar el rango de predicción y revisar si la recta representa adecuadamente la situación estudiada.