Regresión lineal

Métodos Cuantitativos

Diego Solís Delgadillo

¿Qué hace la regresión lineal?

  • La regresión lineal calcula la mejor línea de ajuste
  • La pendiente de cambio promedio en \(Y\) por un aumento en una unidad de \(X\)

Mejor Línea de ajuste

  • Minimiza la distancia entre las observaciones y la línea de ajuste

Términos

Resultado \((Y)\): es la variable que queremos explicar o predecir

Predictor \((X)\): es la variable que utilizamos para explicar la variabilidad en \(Y\)

Modelo de regresión

\[ Y=Modelo+Error \]

Modelo de regresión

  • Estima la mejor línea de ajuste
  • La línea que minimiza la distancia entre las observaciones y el valor esperado

Interpretación \(\beta\)

  • La pendiente \(\beta\) indica la tasa de cambio ente \(X\) y \(Y\)
  • Nos dice en cuánto cambia \(Y\) en promedio con un aumento de una unidad en \(X\)
  • El modelo se expresa como \[ Y_i = \alpha + \beta_1 x_i \]

\[ Presupuesto_i = \alpha + \beta_1 Matricula_i \]

Interpretación \(\alpha\)

\[ Y_i = \alpha + \beta_1 x_i \]

  • Donde \(\alpha\) se conoce como el intercepto: el valor de \(Y\) cuando \(X\) toma un valor de \(0\)
  • Donde \(\beta\) indica la pendiente de línea de ajuste
  • Por cada valor de \(X\) el modelo nos da una predicción de \(Y\)

Residuo

  • La predicción no va ser exactamente el valor observado
  • Es una estimación del valor promedio de \(Y\) dados los valores de \(X\)
  • La diferencia entre la predicción y lo observado se llama residuo

\[ residuo_i = presupuesto_i - predicción_i \]

Errores cuadrados

  • Calculamos el residuo para cada punto

  • Algunos valores serán positivos y otros negativos

  • Para que todos sean positivos los elevamos al cuadrado

Suma de Errores Cuadrados (SSE)

  • Se le conoce así a la suma de errores individuales

  • Diferente líneas de ajuste tienen distintas SSE

Tip

  • El Modelo de Mínimos Cuadrados (OLS) obtiene la línea con la menor SSE

Propiedades de Mínimos Cuadrados

  • La línea pasa por el valor medio de \(X\) y el valor medio de \(Y\)
  • La pendiente tiene el mismo signo que el coeficiente de correlación
  • La suma de residuos del modelo es igual a \(0\)

Cómo calcular \(\beta\)

X Y
1 2
2 4
3 5
4 4
5 5

Calculamos las medias

  • La media de X es 3
  • La media de Y es 4

Paso 2

La línea cruza por las medias

  • La línea de regresión pasa por el punto donde se cruzan las medias de \(X\) y \(Y\)

Calculamas las diferencias

  • Posteriormente se calculan las distancias entre los puntos y las medias

Paso 3

Primero calculamos las distancias entre \(x\) y \(\bar{x}\)

X Y \(x-\bar{x}\)
1 2 -2
2 4 -1
3 5 0
4 4 1
5 5 2

Paso 4

Hacemos lo mismos con las distancias entre \(y\) y \(\bar{y}\)

X Y \(x-\bar{x}\) \(y-\bar{y}\)
1 2 -2 -2
2 4 -1 0
3 5 0 1
4 4 1 0
5 5 2 1

Paso 5

  • Posteriormente se elevan las diferencias ente \(x-\bar{x}\) al cuadrado
  • Y se multiplican las diferencias entre \(x-\bar{x}\) y \(y-\bar{y}\)
X Y \(x-\bar{x}\) \(y-\bar{y}\) \((x-\bar{x})^2\) \((x-\bar{x})(y-\bar{y})\)
1 2 -2 -2 4 4
2 4 -1 0 1 0
3 5 0 1 0 0
4 4 1 0 1 0
5 5 2 1 4 2
Total 10 6

Paso 6

\[ \beta=\frac{\Sigma(x-\bar{x})(y-\bar{y}) }{\Sigma(x-\bar{x})^2} \] \[ \beta=\frac{6}{10}=0.6 \]

Constante

  • Es el valor de \(\beta\) cuando \(X\) es igual a \(0\)
  • ¿Cómo calcularla?
    • Sabemos que la línea por por la media de \(x\) y \(y\)

\[ y= \alpha+\beta x \] \[ 4= \alpha+0.6(3) \] \[ \alpha= 4-1.8=2.2 \]

Coeficiente de determinación

  • \(R^2\) mide cuanto de la variación en \(Y\) se explica con el modelo
  • Sus valores van de 0 a 1 (la proporción explicada)
  • Compara la Suma de Errores Cuadrados (SSE) con la Suma de Errores Totales (TSS)

\[ R^2= SSE/TSS \]

Suma de Errores Totales

  • Es la distancia entre las observaciones y el valor medio de \(Y\)
  • Es la línea que obtendríamos si no hubiese relaicón entre \(X\) y \(Y\)

Prueba de Hipótesis

  • Asumimos que el valor verdadero de \(\beta\) es cero
    • La hipótesis nula
  • Comparamos qué tan inusual sería obtener el estimador que obtuvimos del modelo siendo que \(\beta=0\)
  • Para ello utilizamos la distribución \(t\)

Significancia estadística

  • La probabilidad de obtener nuestro estimador asumiendo que \(\beta=0\)
  • Esta probabilidad es el p-value

Tip

  • Si nuestros p-values son muy bajos, podemos concluir que difícilmente la hipótesis nula es verdadera

Comparamos los coeficientes con la hipótesis nula

  • Los modelos de regresión lineal comparan los coeficientes con la hipótesis nula
  • La hipótesis nula es que el valor de \(\beta\) es igual a \(0\)

\(\beta_1 = 0\) vs \(\beta_1 \neq 0\)

¿Qué es el Error Estándar de \(\beta\)?

Note

  • 🎯 El Error Estándar de \(\beta\) (\(SE(\hat{\beta})\)) mide la precisión de nuestro estimado de la pendiente.

  • Si el error estándar es pequeño → mayor precisión.

  • Si el error estándar es grande → mayor incertidumbre.

Cálculo Error Estándar

Se calcula con:

\[ SE(\hat{\beta}) = \sqrt{ \frac{SSE}{(n-2) \sum (x-\bar{x})^2} } \]

Donde

  • \(SSE= \sum (y-\hat{y})^2\) (Suma de los Errores al Cuadrado)
  • \(n\) es el número de observaciones.
  • \(\sum(x-\bar{x})^2\) es la variabilidad de \(X\).

Aplicación al ejemplo

Sabemos que:

  • \(SSE=2.4\)
  • \(n=5 \Rightarrow n-2=3\)
  • \(\sum(x-\bar{x})^2=10\)

Por lo tanto:

\[ SE(\hat{\beta})= \sqrt{ \frac{2.4}{3 \times 10} } = \sqrt{0.08} = 0.2828 \]

Puntuación t

Note

  • La puntuación t nos permite evaluar si el coeficiente \(\beta\) es significativamente diferente de cero.

\[ t= \frac{\hat{\beta} - \beta_0}{SE} \]

Tip

  • \(\hat{\beta}\) es el coeficiente estimado.
  • \(\beta_0\) es el valor hipotético bajo \(H_0\) (generalmente \(0\)).
  • \(SE(\hat{\beta})\) es el error estándar de \(\beta\).

Aplicación al ejemplo

Sabemos que:

  • \(\hat{\beta}=0.6\)
  • \(\beta_0=0\)
  • \(SE(\hat{\beta})=0.2828\)

Por lo tanto:

\[ t= \frac{0.6-0}{0.2828}=2.122 \]

Grados de Libertad

  • En regresión simple:

\[ gl = n - 2 \]

Tip

  • Restamos 1 grado de libertad por estimar la pendiente (\(\beta\)).
  • Restamos 1 grado de libertad por estimar la constante (\(\alpha\)).

Aplicación al ejemplo

  • Número de observaciones: \(n=5\)

Por lo tanto:

\[ gl = 5-2 = 3 \]

Aplicación al ejemplo

  • Utilizamos los gl para obtener el p-value

Tip

En nuestro ejemplo:

El valor t calculado fue:

\[ t=2.122 \]

Con \(gl=3\) se obtiene:

\[ p=0.121 \]

Ejemplo regresión

(1)
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001
(Intercept) 53.956***
(0.315)
gdpPercap 0.001***
(0.000)
Num.Obs. 1704
R2 0.341
R2 Adj. 0.340
AIC 12850.4
BIC 12866.7
Log.Lik. -6422.205
F 879.577
RMSE 10.49

Regresión múltiple

  • Es un método para medir el efecto de varias variables explicativas sobre \(Y\)

\[ y= \alpha+ \beta x_1 + \beta x_2 \]

Tip

  • Al igual que el modelo con una sola variable busca encontrar la ecuación que reduce la suma de residuos cuadrados

  • Con dos variables explicativas el mejor modelo es el plano que minimiza los residuos al cuadrado

Interpretación de \(\beta\)

  • El coeficiente \(\beta\) es el cambio promedio de \(y\) cuando \(x_j\) incrementa en una unidad mantendiendo el valor de los otros predictores constantes

Coeficiente de determinación

El coeficiente de determinación continúa explicando la variación de \(Y\) atribuible al cambio de una unidad en \(X\)

Mulicolinealidad

  • ⚠️ Incluir más variables NO significa que vayamos a tener un mejor modelo
  • Podemos tener problemas de multicolinealidad
    • Correlación entre las variables explicativas

¿Qué variables incluir?

  • Lo ideal es que las variables independientes están relacionadas con la dependiente pero que no estén relacionadas entre sí

  • Por ello se sugiere revisar la correlación entre variables previo al análisis
    • En R lo podemos hacer con corrplot()

Condiciones del modelo

  • Linealidad: Existe una relación lineal entre el predictor y el resultado
  • Varianza constante: La variabilidad de los errores es constante (son homocedasticos)
  • Normalidad: Los errores tienen una distribución normal
  • Independencia: Los errores son independientes unos de otros

Overfiting

  • Si agregamos demasiadas variables, algunas pueden aparecer correlacionadas con el resultado solo por azar.
  • El modelo aprende el ruido en lugar del patrón real.
  • Su aparente poder predictivo es una ilusión que no se sostiene fuera de la muestra.

Ejemplo regresión múltiple

  • Utilizamos la base de datos restaurant_inspections liberaría causaldata
  • Queremos ver si los restaurantes de cadena tienen más inspecciones que los que tienen pocas sucursales

\[InspectionScore=\beta_0+ \beta_NumberofLocations+\epsilon\]

Modelo

Calidad del modelo

  • Dos indicadores son la \(R^2\), la \(R^2 Ajustada\), y \(F-Statistic\)
  • La \(R^2\) es una medida de la varianza que es explicada del modelo
    • Cuánto de \(Y\) está siendo explicado por el modelo
  • La \(R^2 Ajustada\) es lo mismo, pero ajusta por el número de variables en el modelo

Interpretación \(R^2\) y SE

  • Si el \(R^2\) o el \(R^2\) ajustado son pequeños, o si los errores estándar son grandes, eso indica que hay muchos factores que influyen en \(y\) y que no están incluidos en el modelo.

Warning

  • ❌ Los modelos NO deben construirse para maximizar el \(R^2\)
  • ✅ Sino para estimar con precisión el efecto de \(X\) sobre \(Y\)

Interpretación

  • ❗La interpretación de los coeficientes se dan controlando por otras variables
  • Decimos que \(\beta\) indica en cuanto cambia \(Y\) por el aumento de una unidad en \(X\) manteniendo los demás valores constantes

Tip

  • En lugar de controlando por a veces se expresa como ajustando por o condicionado por

Constante

  • La constante es nuestra predicción para \(Y\) cuando todos los predictores son iguales a cero

  • ⚠️Si los valores de la independiente no pueden llegar a cero, entonces su valor no es muy informativo

Ejemplo

  • No puede haber una cadena de restaurantes con cero locaciones

Regresión en R

install.packages("causaldata")
library(tidyverse)
res<-causaldata::restaurant_inspections

res %>% group_by %>% 
  mutate(NumberofLocations=n())

m1<-lm(inspection_score ~ NumberofLocations, data=res)

Call:
lm(formula = inspection_score ~ NumberofLocations, data = res)

Residuals:
     Min       1Q   Median       3Q      Max 
-27.1673  -3.5449   0.9835   5.4362  17.3253 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)       94.8656964  0.0462975 2049.05   <2e-16 ***
NumberofLocations -0.0188715  0.0004356  -43.32   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.052 on 27176 degrees of freedom
Multiple R-squared:  0.0646,    Adjusted R-squared:  0.06456 
F-statistic:  1877 on 1 and 27176 DF,  p-value: < 2.2e-16

Regresión en R


m2 <- lm(inspection_score ~ NumberofLocations+Year, data = res)

Call:
lm(formula = inspection_score ~ NumberofLocations + Year, data = res)

Residuals:
     Min       1Q   Median       3Q      Max 
-27.4407  -3.5210   0.9142   5.3014  18.0722 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        2.253e+02  1.241e+01   18.16   <2e-16 ***
NumberofLocations -1.919e-02  4.358e-04  -44.03   <2e-16 ***
Year              -6.489e-02  6.173e-03  -10.51   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.039 on 27175 degrees of freedom
Multiple R-squared:  0.06838,   Adjusted R-squared:  0.06832 
F-statistic: 997.4 on 2 and 27175 DF,  p-value: < 2.2e-16

Comparación de modelos

library(huxtable)
huxreg(m1, m2)
(1)(2)
(Intercept)94.866 ***225.333 ***
(0.046)   (12.411)   
NumberofLocations-0.019 ***-0.019 ***
(0.000)   (0.000)   
Year        -0.065 ***
        (0.006)   
N27178        27178        
R20.065    0.068    
logLik-87491.813    -87436.667    
AIC174989.627    174881.334    
*** p < 0.001; ** p < 0.01; * p < 0.05.

Variables discretas

  • Por ejemplo variables que son binarias verdaderas o falsas
    • Un individuo recibió el tratamiento o no
    • Hombre o mujer
    • Casado o soltero
  • ¿Cómo interpretar los coeficientes de estas variables?

Variables discretas

  • \(\beta\) nos da el diferencia en la variable dependiente entre los verdaderos y falsos
  • Si corremos el modelo \[ Salario= \beta_0+\beta_1Hombre+ \epsilon\]
  • \(\beta_1\) indica cuánto más gana en promedio un hombre en comparación con una mujer

Ejemplo R

library(palmerpenguins)
data(penguins)
modelo<-lm(flipper_length_mm~sex, data=penguins)
summary(modelo)

Call:
lm(formula = flipper_length_mm ~ sex, data = penguins)

Residuals:
    Min      1Q  Median      3Q     Max 
-26.506 -10.364  -4.364  12.636  26.494 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  197.364      1.057 186.792  < 2e-16 ***
sexmale        7.142      1.488   4.801 2.39e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 13.57 on 331 degrees of freedom
  (11 observations deleted due to missingness)
Multiple R-squared:  0.06511,   Adjusted R-squared:  0.06229 
F-statistic: 23.05 on 1 and 331 DF,  p-value: 2.391e-06

Interpretación

Important

  • Lo que genera el modelo son interceptos diferentes para los grupos
  • Los pinguinos machos tienen, en promedio, un estatura de 7mm más que las hembras