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.
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.
El símbolo ŷ representa el valor estimado por la recta. a es el intercepto u ordenada al origen y b es la pendiente.
Supongamos que registramos horas de estudio y calificación:
| Horas x | Calificación y |
|---|---|
| 1 | 52 |
| 2 | 56 |
| 3 | 61 |
| 4 | 65 |
| 5 | 71 |
Los puntos no tienen que estar exactamente sobre una recta. La regresión encuentra una tendencia central que resume el conjunto.
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.
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.
Para los datos de horas y calificaciones, una recta aproximada puede ser:
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:
La predicción no es una garantía: es el valor que proporciona el modelo para ese nivel de x.
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.
La recta resultante es la que, entre todas las rectas posibles, produce el menor valor de esa suma.
El residuo de una observación es la diferencia entre el valor real y el valor estimado:
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.
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.
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.
Para describir una tendencia, estos supuestos se evalúan gráficamente. Para inferencia formal, deben analizarse con mayor rigor.
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.
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.
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(); });
}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.