Tenemos dos valores numéricos que se observan en una población, por ejemplo, altura y peso. Digamos que a mayor altura, mayor peso. Más aún suponemos que esta relación es lineal. Es decir, esperamos que al aumentar la altura en una unidad, el peso aumente en una cantidad constante (la pendiente). Sin embargo, en la realidad no todos los individuos con la misma altura tienen exactamente el mismo peso: hay variabilidad. Dicho de otro modo, suponemos que hay una ley natural (por decirlo de alguna manera) y esta no se cumple por un error. Ese error es en el modelo. Otra forma de pensarlo es como un ruido.
Por lo tanto, podemos expresar el peso de una persona como: \[ \text{Peso}_i = \beta_0 + \beta_1 \cdot \text{Altura}_i + \varepsilon_i \]
Nuestro modelo nos dice que si no hubiese error, la altura determinaría el peso.
En general nosotros tenemos el peso y la altura de cada individuo. Buscaremos encontrar \(\beta_0\) y \(\beta_1\) que nos modelen de la mejor manera.
Primero hay que darle sentido a “la mejor manera”. Como no conocemos \(\beta_0\) y \(\beta_1\), no podemos conocer el error. Pero si el modelo fuera correcto, el error sería lo menor posible. Ahora esto no es puntualmente, sino globalmente.
Suponiendo que conocemos \(\beta_0\) y \(\beta_1\), el error total sería: \[ E = \sum_{i=1}^n (\text{peso}_i - \beta_0 - \beta_1 \cdot \text{altura}_i)^2 \] Lo cual se conoce como el . El problema consiste en encontrar \(\beta_0\) y \(\beta_1\) que minimicen \(E\).
Para minimizar \(E(\beta_0,\beta_1)\), calculamos las derivadas parciales respecto a \(\beta_0\) y \(\beta_1\) y las igualamos a cero (punto crítico). Este es el principio del gradiente: en el mínimo, el gradiente de \(E\) es el vector nulo.
\[ \frac{\partial E}{\partial \beta_0} = -2 \sum_{i=1}^n (\text{peso}_i - \beta_0 - \beta_1 \text{altura}_i) = 0 \] \[ \frac{\partial E}{\partial \beta_1} = -2 \sum_{i=1}^n (\text{peso}_i - \beta_0 - \beta_1 \text{altura}_i) \cdot \text{altura}_i = 0 \]
Simplificando obtenemos las : \[ \sum_{i=1}^n \text{peso}_i = n \beta_0 + \beta_1 \sum_{i=1}^n \text{altura}_i \] \[ \sum_{i=1}^n \text{peso}_i \cdot \text{altura}_i = \beta_0 \sum_{i=1}^n \text{altura}_i + \beta_1 \sum_{i=1}^n \text{altura}_i^2 \]
Resolviendo este sistema se obtienen los estimadores de mínimos cuadrados: \[ \hat{\beta}_1 = \frac{\sum_{i=1}^n (\text{altura}_i - \bar{\text{altura}})(\text{peso}_i - \bar{\text{peso}})}{\sum_{i=1}^n (\text{altura}_i - \bar{\text{altura}})^2}, \qquad \hat{\beta}_0 = \bar{\text{peso}} - \hat{\beta}_1 \bar{\text{altura}} \] donde \(\bar{\text{altura}} = \frac{1}{n}\sum \text{altura}_i\) y \(\bar{\text{peso}} = \frac{1}{n}\sum \text{peso}_i\).
Así, usando el método del gradiente (derivadas parciales), hemos deducido las fórmulas cerradas para \(\beta_0\) y \(\beta_1\) que minimizan el error cuadrático total.
Simulación de una población de 1 millón de individuos Supongamos que la relación teórica (sin error) es:
\[ \text{Peso}_{\text{teórico}} = \text{Altura} - 100 \]
donde la altura se mide en cm y el peso en kg. El error \(\varepsilon_i\) se distribuye normal con media 0 y desviación típica 5 kg. Es decir, la mayoría de los errores están entre -10 kg y +10 kg.
Además, para que la población sea realista, generamos la altura a partir de una distribución normal:
\[ \text{Altura} \sim \mathcal{N}(\mu = 170\,\text{cm}, \sigma = 15\,\text{cm}) \]
Generamos \(n = 1,000,000\) individuos.
Proceso paso a paso Fijamos una semilla para reproducibilidad.
Generamos las alturas desde \(\mathcal{N}(170, 15^2)\).
Generamos los errores desde \(\mathcal{N}(0, 5^2)\).
Calculamos el peso observado como:
\[ \text{Peso} = \text{Altura} - 100 + \text{Error} \]
Almacenamos ambos vectores y exploramos sus distribuciones.
set.seed(123)
n <- 1e6
# Altura en cm
altura <- rnorm(n, mean = 170, sd = 15)
# Error en kg (desviación 5)
error <- rnorm(n, mean = 0, sd = 5)
# Peso observado
peso <- altura - 100 + error
# Resumen estadístico
summary(altura)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 98.01 159.88 170.00 169.99 180.10 242.76
summary(peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -2.852 59.300 69.999 69.984 80.644 142.912
# Desviación típica del peso (teórica: sqrt(15^2 + 5^2) = sqrt(250) ≈ 15.81)
cat("Desviación típica observada del peso:", sd(peso), "\n")
## Desviación típica observada del peso: 15.8061
Descripción de la población simulada Altura: media ≈ 170 cm, desviación típica ≈ 15 cm.
Error: media ≈ 0, desviación típica ≈ 5 kg (el 95% de los errores está entre -10 y +10 kg).
Peso observado:
Media teórica = 170 − 100 = 70 kg.
Varianza total = Var(Altura) + Var(Error) = \(15^2 + 5^2 = 225 + 25 = 250\), por lo tanto la desviación típica del peso es \(\sqrt{250} \approx 15.81\) kg.
Relación real poblacional: \(\beta_1 = 1\) kg/cm, \(\beta_0 = -100\) kg.
##Visualización (muestra de 5000 puntos)
set.seed(456)
indices <- sample(1:n, 5000)
plot(altura[indices], peso[indices],
pch = 19, col = rgb(0,0,1,0.2),
xlab = "Altura (cm)", ylab = "Peso (kg)",
main = "Altura vs Peso (error sd = 5 kg)")
abline(a = -100, b = 1, col = "red", lwd = 2)
legend("topleft", legend = c("Datos observados", "Relación teórica"),
col = c("blue", "red"), pch = c(19, NA), lty = c(NA, 1))
Ajuste del modelo de regresión lineal Usamos la función lm() para estimar \(\beta_0\) y \(\beta_1\) a partir de la muestra completa de 1 millón de individuos.
modelo <- lm(peso ~ altura)
summary(modelo)
##
## Call:
## lm(formula = peso ~ altura)
##
## Residuals:
## Min 1Q Median 3Q Max
## -22.9461 -3.3721 0.0017 3.3693 22.7543
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.996e+01 5.687e-02 -1758 <2e-16 ***
## altura 9.997e-01 3.333e-04 3000 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.999 on 999998 degrees of freedom
## Multiple R-squared: 0.9, Adjusted R-squared: 0.9
## F-statistic: 8.998e+06 on 1 and 999998 DF, p-value: < 2.2e-16
Los coeficientes estimados deben ser muy cercanos a \(\beta_0 = -100\) y \(\beta_1 = 1\). La pequeña diferencia se debe al error muestral (aunque con \(n=10^6\) es prácticamente inapreciable).
Conclusión Hemos simulado una población donde la relación entre altura y peso es lineal con pendiente 1 kg/cm e intercepto -100 kg, con un error normal de desviación 5 kg. Utilizando mínimos cuadrados (derivadas parciales, equivalente al método del gradiente) recuperamos los parámetros poblacionales con gran precisión. Este ejercicio ilustra el fundamento de la regresión lineal univariada.