Formación PDI - Universidad de Málaga
Modelo de Regresión Lineal
Modelo de Regresión Lineal Generalizado (GLM)
Se extiende la regresión simple a varias variables explicativas:
\[ Y = \beta_0 + \beta_1 X_{1} + \beta_2 X_{2} + \dots + \beta_k X_{k} + \varepsilon \]
Objetivo: Queremos comprobar si el coeficiente \(\beta_j\) es significativamente distinto de cero.
\[H_0: \beta_j = 0\] \[H_1: \beta_j \neq 0\]
Si \(H_0\) es cierta: No hay relación lineal entre \(X_j\) y \(Y\).
Si rechazo \(H_0\): Sí existe relación lineal.
Estadístico del contraste \(t\):
\[ t = \frac{\hat{\beta}_j}{SD(\hat{\beta}_j)} \sim t_{n-k-1} \]
donde \(t_{n-2}\) representa la distribución t-Student con \(n-k-2\) grados de libertad y \(SD(\hat{\beta}_j)\) es la desviación estándar de \(\beta_j\).
\[ \underbrace{\sum_{i=1}^n (Y_i - \bar{Y})^2}_{\text{Suma total (SCT)}} = \underbrace{\sum_{i=1}^n (\hat{Y}_i - \bar{Y})^2}_{\text{Suma explicada (SCE)}} + \underbrace{\sum_{i=1}^n (Y_i - \hat{Y}_i)^2}_{\text{Suma de residuos o no explicada (SCR)}} \]
El coeficiente de determinación \(R^2\) se define como:
\[ R^2 = \frac{\text{SCE}}{\text{SCT}} = 1 - \frac{\text{SCR}}{\text{SCT}} \]
Objetivo: Verificar si al menos una \(\beta_j\) es distinta de cero.
\[ H_0: \beta_1 = \beta_2 = \dots = \beta_k = 0 \] \[ H_1: \text{Al menos una } \beta_j \neq 0 \]
Si \(H_0\) es cierta: las variables en conjunto no explican \(Y\).
Si rechazo \(H_0\): almenos una variable aporta para explicar a la \(Y\).
Estadístico del contraste \(F\):
\[ F = \frac{\frac{SSR}{k}}{\frac{SSE}{n-k-1}} \sim F_{k, \, n-k-1} \]
donde: - \(k\) = número de predictores - \(n\) = número de observaciones - \(SSR\) = suma de cuadrados de la regresión - \(SSE\) = suma de cuadrados del error
lmsummary
Call:
lm(formula = y ~ x, data = datos)
Residuals:
Min 1Q Median 3Q Max
-9.0838 -2.9827 0.4478 2.9540 10.0316
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.8501 1.1693 3.293 0.00138 **
x 1.9074 0.2104 9.064 1.3e-14 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 4.027 on 98 degrees of freedom
Multiple R-squared: 0.456, Adjusted R-squared: 0.4505
F-statistic: 82.15 on 1 and 98 DF, p-value: 1.302e-14
Columna “Estimate” → \(\hat{\beta}_j\)
Columna “Std. Error” → \(SE(\hat{\beta}_j)\)
Columna “t value” y “Pr(>|t|)” → estadístico y p-valor
predictSi predict es ejecutado sin darle el argumento newdata, nos devolverá las predicciones de todas las \(X\) con las que se estimó el modelo. Es lo mismo que lo obtenido de la función fitted.
Si le damos un data.frame en newdata, nos devolverá la predicción de esos valores únicamente
residualsLa función residuals nos devuelve los residuos del modelo
Muestra los siguientes gráficos:
Residuos Vs Valores Predichos
Normal Q-Q
Escala-Localización
Residuos VS Apalancamiento
# Valores ajustados y residuos
y_hat <- fitted(modelo)
residuos <- residuals(modelo)
# Suma total de cuadrados (SCT)
SCT <- sum((y - mean(y))^2)
# Suma de cuadrados explicada (SCE)
SCE <- sum((y_hat - mean(y))^2)
# Suma de residuos (SCR)
SCR <- sum((y - y_hat)^2)
# R^2
R2 <- SCE / SCT
R2_alt <- 1 - SCR / SCT
Call:
lm(formula = y ~ x1 + x2, data = datos)
Residuals:
Min 1Q Median 3Q Max
-12.1094 -3.0378 0.2911 2.5026 10.7325
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.6020 1.4798 3.110 0.00246 **
x1 2.0682 0.2266 9.128 1.02e-14 ***
x2 4.5943 0.5098 9.012 1.82e-14 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 4.17 on 97 degrees of freedom
Multiple R-squared: 0.6375, Adjusted R-squared: 0.63
F-statistic: 85.29 on 2 and 97 DF, p-value: < 2.2e-16
\[ VIF_j = \frac{1}{1 - R_j^2} \] donde \(R_j^2\) es el coeficiente de determinación al regresar \(X_j\) contra todas las demás \(X\).
Es una extensión del modelo lineal clásico transformando del valor esperado mediante una función de enlace.
Permite modelar variables respuesta que no son normales a través de una función de enlace:
Ejemplos son el modelo logístico, el probit y el poisson.
\[g(\mathbb{E}[Y_i]) = \eta_i = \beta_0 + \beta_1 X_{i1} + \dots + \beta_p X_{ip}\]
Distribución de la variable \(Y_i\) de la familia exponencial (e.g., Binomial, Poisson, Normal).
\(Y_i\): variable respuesta
\(\mathbb{E}[Y_i]\): valor esperado
\(g(\cdot)\): Función de enlace que conecta la media con el predictor.
\(\eta_i\): predictor lineal
| Modelo | Enlace | Fórmula del enlace | Inversa del enlace |
|---|---|---|---|
| Lineal | Identidad | \(g(\mu) = \mu\) | \(\mu = \eta\) |
| Logístico (binomial) | Logit | \(g(\mu) = \log\left(\frac{\mu}{1 - \mu}\right)\) | \(\mu = \frac{e^\eta}{1 + e^\eta}\) |
| Poisson | Log | \(g(\mu) = \log(\mu)\) | \(\mu = e^\eta\) |
glm()Parámetros:
family: Tipo de modelo (binomial, poisson, gaussian, etc.)link: (opcional) Enlace, si se quiere cambiar el predeterminado.Las funciones predict, residuals, summary, etc. que vimos anteriormente para el objeto lm se podrán usar también para el objeto creado con glm.
La regresión logística introduce una función que fuerza a las predicciones del modelo a estar entre \(0\) y \(1\). De esta forma, lo que conseguimos es modelar la probabilidad de que ocurra un evento.
Esta función es la función sigmoide:
\[ P(Y = 1 \mid X) = \pi(X) = \frac{e^{\beta_0 + \beta_1 X_{1} + \dots + \beta_k X_{k}}}{1 + e^{\beta_0 + \beta_1 X_{1} + \dots + \beta_k X_{k}}} \]
Equivalentemente, haciendo la transformación logit, el modelo de regresión logística relaciona de forma lineal las variables explicativas \(X\) con el log-odds o función logit:
\[ \text{logit} (P(Y=1)) = \text{log}\left(\frac{P(Y=1)}{P(Y=0)}\right) = \log\left( \frac{\pi(X)}{1 - \pi(X)} \right) = \beta_0 + \beta_1 X_1 + \dots + \beta_k X_k \]
Individual (Wald test):
\[H_0: \beta_j = 0\] \[H_1: \beta_j \neq 0 \text{ para } j=1, \dots, k\]
Estadístico:
\[z = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)}\]
Global (Likelihood Ratio Test):
\[H_0: \text{ Todos } \beta_j = 0 \text{ para } j=1, \dots, k\]
Estadístico: Contrasta log-verosimilitudes de modelo bajo la nula y el modelo contra la alternativa completo.
glm
Call:
glm(formula = y ~ x, family = binomial, data = datos_log)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.0876 0.1683 -6.461 1.04e-10 ***
x 1.8526 0.2335 7.934 2.11e-15 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 374.6 on 299 degrees of freedom
Residual deviance: 265.0 on 298 degrees of freedom
AIC: 269
Number of Fisher Scoring iterations: 5
Coeficientes:
Coeficientes están en log-odds
Para obtener odds ratio: exp(coef(modelo))
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.087616 0.1683436 -6.460693 1.042247e-10
x 1.852650 0.2334942 7.934459 2.114152e-15
Bondad de Ajuste (Pseudo R2 de McFadden):
\[ R^2_{\text{McFadden}} = 1 - \frac{\log L_{\text{modelo}}}{\log L_{\text{nulo}}} \]
Dado un umbral \(\gamma\), es una herramienta para evaluar el rendimiento de un modelo de clasificación binaria.
Compara las predicciones con los valores reales.
Estructura:
| Predicción: 1 | Predicción: 0 | |
|---|---|---|
| Real: 1 | VP | FN |
| Real: 0 | FP | VN |
Donde:
Receiver Operating Characteristic (ROC):
Evalua la capacidad de un modelo para discriminar entre clases.
Se grafica Sensibilidad (True Positive Rate) vs 1 - Especificidad (False Positive Rate) para diferentes umbrales de decisión.
¿Preguntas?
Antonio Elías • Curso de R para Estadística