Regresión Lineal: De los Datos al Modelo Optimizado
La regresión lineal modela relaciones lineales entre predictores y una variable objetivo. Para la regresión lineal simple, la ecuación es y = b₀ + b₁ × x, donde x es el predictor, y es la respuesta, b₀ es la intersección y b₁ es la pendiente. Los coeficientes determinan la posición de la línea en el plano.
Los datos en formato tabular con características y una respuesta sirven como base. Ejemplo: la relación entre el precio de un apartamento y el número de habitaciones. La calidad del modelo depende de la representatividad de la muestra—el principio de "basura que entra, basura que sale" dicta el resultado.
Los modelos son útiles para predicciones e identificación de patrones. Transformar datos tabulares en una expresión analítica permite extrapolar a nuevas observaciones.
Método de Mínimos Cuadrados Ordinarios
MCO (Mínimos Cuadrados Ordinarios) minimiza la suma de los residuos al cuadrado: ∑(y_i - ŷ_i)². Solución analítica: b₁ = Cov(x, y) / Var(x), b₀ = ȳ - b₁ × x̄.
# Ejemplo de cálculo de coeficientes
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
b1 = np.cov(x, y)[0,1] / np.var(x)
b0 = np.mean(y) - b1 * np.mean(x)
print(f'b0: {b0:.2f}, b1: {b1:.2f}')
Este enfoque funciona para datos no degenerados pero requiere inversión de matriz (XᵀX)⁻¹ en el caso multivariante.
Evaluación de la Calidad del Modelo
Visualmente: gráfico de dispersión de predicciones vs. valores reales, gráficos de residuos. Métricas:
- R² (coeficiente de determinación): proporción de varianza explicada, 0–1.
- RMSE: √(MSE), en unidades de respuesta.
- MAE: error absoluto medio.
- MAPE/SMAPE: errores porcentuales.
Los gráficos de residuos revelan heterocedasticidad o no linealidad.
División de Datos y Validación
División entrenamiento/prueba (80/20) previene el sobreajuste. Validación cruzada (k-fold) promedia métricas entre pliegues.
def train_test_split(X, y, test_size=0.2):
indices = np.arange(len(X))
np.random.shuffle(indices)
split = int(len(X) * (1 - test_size))
return X[indices[:split]], X[indices[split:]], y[indices[:split]], y[indices[split:]]
Regresión Multivariante
Extensión a y = b₀ + b₁x₁ + ... + bₙxₙ. Forma matricial: ŷ = Xβ, solución β = (XᵀX)⁻¹Xᵀy. Preprocesamiento:
- Normalización: (x - min)/(max - min).
- Estandarización: (x - μ)/σ.
- Codificación one-hot de características categóricas.
Interpretación Probabilística
El modelo asume distribución normal de errores: ε ~ N(0, σ²). Intervalo de predicción: *ŷ ± t SE √(1 + 1/n + (x - x̄)² / SXX)*. Estimación de máxima verosimilitud (MLE) optimiza el log-verosimilitud.
Manejo de Valores Atípicos
Métodos de detección:
- Distancia de Mahalanobis: distancia generalizada en espacio multivariante.
- Distancia de Cook: influencia de una observación en los coeficientes.
- LOF (Factor de Valor Atípico Local): densidad local.
- RANSAC: consenso de subconjuntos aleatorios.
Eliminación o regresores robustos (pérdida de Huber).
Descenso de Gradiente y Regularización
Para grandes volúmenes de datos: optimización iterativa θ := θ - α ∇J(θ), donde J es la función de costo.
- L1 (Lasso): |β|, dispersidad.
- L2 (Ridge): β², contracción.
Hiperparámetro λ ajustado mediante CV.
def gradient_descent(X, y, lr=0.01, epochs=1000):
theta = np.zeros(X.shape[1])
for _ in range(epochs):
pred = X @ theta
grad = X.T @ (pred - y) / len(y)
theta -= lr * grad
return theta
Conclusiones Clave
- La regresión lineal es una herramienta fundamental para relaciones lineales, escalable a tareas multivariantes.
- MCO proporciona una solución analítica; el descenso de gradiente es para grandes conjuntos de datos.
- Métricas como R² y RMSE evalúan la calidad; los gráficos de residuos diagnostican problemas.
- La regularización (L1/L2) combate el sobreajuste y la multicolinealidad.
- El preprocesamiento (escalado, eliminación de valores atípicos) es crítico para la estabilidad.
— Editorial Team
Aún no hay comentarios.