Regresión lineal

Maestría en Asuntos Políticos y Políticas Públicas

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

F-Statistic

  • \(F-Statistic\) parte de la hipótesis nula de que todos los coeficientes del modelo (con excepción de la constante) son iguales a cero

¿Qué mide la prueba?

  • Prueba qué tan poco probable sería obtener estos resultados si la hipótesis nula fuese verdadera
  • Es muy raro que esta prueba de resultados no significativos

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

Subíndices

  • Por lo general se utilizan subíndices en las variables \(X_i\) o \(X_{Edu}\)
  • También los observamos en los coeficientes \(\beta_0\)
  • Un modelo se puede expresar como \[ Y= \beta_0+ \beta_1X_i+ \epsilon_i\]
  • La \(i\) nos indica en qué varía los datos.
    • Por ejemplo, entre individus o países

  • De manera alternativa podemos tener un modelo como \[ Y= \beta_0+ \beta_1X_{t-1}+ \epsilon_{t}\]
  • Esto indica que la varianza es a través del tiempo
    • Cada observación tiene un tiempo distinto

  • En ocasiones la varianza se presenta entre individuos y diferentes periodos de tiempo

\[ Y= \beta_g+ \beta_t + \beta_1X_{it}+ \beta_2W_{i}+\epsilon_{it}\] - Esto ocurre cuando tenemos datos panel:

  • Hay un intercepto diferente para cada periodo de tiempo \(\beta_t\)
  • Y un intercepto para cada grupo \(\beta_g\)
  • En este modelo también controlamos por una variable que no cambia en el tiempo \(\beta_2W_{i}\)

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

Variables categóricas

  • Algunas variables discretas tienen más de dos valores
    • Por ejemplo, país de origen o partido político al que pertenecen
  • En estos casos otorgamos un valor binario a cada una de las categorías
    • País: Mexico=0, No México=0, Estados Unidos=1, No Estados Unidos=0, etc

  • Solamente excluimos UN valor de las categorías
    • Por ejemplo, India
  • 🚨 Los resultados se comapran con respecto a la categoría base (categoría de referencia)

Ejemplo R

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

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

Residuals:
    Min      1Q  Median      3Q     Max 
-37.707  -5.196   1.804   6.927  21.293 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)     209.7066     0.8621  243.25   <2e-16 ***
islandDream     -16.6340     1.3207  -12.60   <2e-16 ***
islandTorgersen -18.5105     1.7824  -10.38   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 11.14 on 339 degrees of freedom
  (2 observations deleted due to missingness)
Multiple R-squared:  0.376, Adjusted R-squared:  0.3723 
F-statistic: 102.1 on 2 and 339 DF,  p-value: < 2.2e-16

Interpretación

  • Los resultados indican que los pinguinos en las islas Dream y Torgensen con más pequeños que los de la isla Biscoe
    • 16 y 18 mm respectivamente

Interpretación intercepto

  • El intercepto en este modelo es la estimación cuando los predictores (Torgensen y Dream) son iguales a cero
  • En este caso es la estimación de estatura de la Isla Biscoe

Warning

  • Los coeficientes cambian si modificamos la categoría de referencia

Transformaciones

  • Consiste en aplicar una función sobre una variable antes de usarla
  • El objetivo es que su distribución se vuelva normal
  • Por lo general se aplica el logaritmo natural base \(e\)
  • Algunas variables pueden estar sesgadas y la transformación nos ayuda a lidiar con esos outliers
    • Los outliers producen errores grandes
    • Pueden afectar la inclinación de la línea

Ejemplo Star Wars

Ejemplo Star Wars

Modelo lineal con transformación

library(tidyverse)
data(starwars)
modelo2<-lm(log(height)~log(mass), data=starwars)
summary(modelo2)

Call:
lm(formula = log(height) ~ log(mass), data = starwars)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.80720 -0.01361  0.04195  0.08930  0.24794 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.90613    0.18197   21.47  < 2e-16 ***
log(mass)    0.28638    0.04205    6.81  6.6e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1937 on 57 degrees of freedom
  (28 observations deleted due to missingness)
Multiple R-squared:  0.4486,    Adjusted R-squared:  0.4389 
F-statistic: 46.37 on 1 and 57 DF,  p-value: 6.601e-09

Interpretación

Important

  • Cuando las dos unidades (\(X\) y \(Y\)) han sido transformadas, el coeficiente \(\beta\) se interpreta como porcentaje

Logaritmo de cero

  • ⚠️ El logaritmo de cero es indefinido
  • Cuando tenemos valores de cero en la base podemos sumar una unidad a todas las observaciones \(log(x+1)\)
  • Una alternativa es exponenciar todos los valores en lugar de utilizar el logaritmo \(x^2\)

Estandarización

  • Consiste en sustraer la media de la variable y dividirlo por la desviación estándar
  • Permite una interpretación sencilla de los coeficientes
  • El coeficiente nos dice cuánto aumenta \(Y\) con el incremtno de una desviación estándar de \(X\)

Términos de interacción

  • Algunos efectos pueden estar condicionados a una tercera variables
    • La relación entre Años de estudios e Ingreso pueden estar condiconados por el Genero
  • Las interacciones multiplican dos variables incluidas en la regresión

\[ Y= \beta_0+ \beta_1X + \beta_2Z+ \beta_3XZ+\epsilon\]

Interacciones

  • El modelo incluye tanto la interacción (multiplicación) de los dos términos como las variables individuales
  • La interpretación de los coeficientes es distinta a los modelos previos
  • ⚠️ Los factores indviduales son la base de referencia para cuando \(Z\) es igual a cero

Interacciones en R

library(tidyverse)
df <- causaldata::restaurant_inspections

m3 <- lm(inspection_score ~ NumberofLocations*Weekend+ Year, data = df)

Call:
lm(formula = inspection_score ~ NumberofLocations * Weekend + 
    Year, data = df)

Residuals:
     Min       1Q   Median       3Q      Max 
-27.4313  -3.5208   0.9174   5.3044  18.0344 

Coefficients:
                                Estimate Std. Error t value Pr(>|t|)    
(Intercept)                    2.251e+02  1.241e+01  18.134  < 2e-16 ***
NumberofLocations             -1.911e-02  4.366e-04 -43.759  < 2e-16 ***
WeekendTRUE                    1.759e+00  4.878e-01   3.606 0.000311 ***
Year                          -6.479e-02  6.174e-03 -10.494  < 2e-16 ***
NumberofLocations:WeekendTRUE -9.840e-03  7.529e-03  -1.307 0.191245    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.038 on 27173 degrees of freedom
Multiple R-squared:  0.06884,   Adjusted R-squared:  0.06871 
F-statistic: 502.3 on 4 and 27173 DF,  p-value: < 2.2e-16

Intepretación

  • El coeficiente NumberofLocations=-0.019 es el valor del número de locaciones para los No fines de semana
  • Para saber el efecto del fin de semana sumamos -.019-.010
    • En los fines de semana el efecto es -.029