Estadística para el Análisis Político | Lección 13 Repaso - Regresión Lineal Múltiple

Marylia Cruz

Estadística Bivariada

  • La elección de tipo de prueba para el análisis bivariado depende del tipo de las variables.

¿Para qué sirven los modelos de regresión lineal?

Introducción

¿Cuál es la variable que van a explicar en sus trabajos grupales?

¿Cuáles son sus variables independientes?

Regresión lineal múltiple

  • Un modelo de regresión lineal tiene como variable dependiente una variable numérica o intervalar

  • Las variables explicativas (independientes) que son parte del modelo suelen ser numéricas o intervalares; sin embargo, es posible incorporar variables explicativas ordinales o categóricas Un modelo de regresión lineal puede ser bivariado o multivariado

Nota: El modelo de regresión lineal que se va a considerar aquí es el que se establece a partir del método de la recta de mínimos cuadrados

Modelo estadístico

Regresión lineal múltiple : Gráficas

Prueba Global

Estimadores/Coeficientes

R cuadrado

Una regresión lineal genera:

  • Un coeficiente de regresión (lineal) que estima el efecto de la variable independiente sobre la variable dependiente.

  • Una medida (R cuadrado) que indica en qué medida la variable independiente explica la variación en la variable dependiente

R cuadrado

  • Siempre y cuando se observe (o exista) una relación lineal, se puede calcular una ecuación lineal que predice los cambios en Y a partir de los cambios en X

  • Una regresión lineal a partir de la recta de mínimos cuadrados es aquella en la cual la ecuación que predice los cambios es la “mejor” línea en cuanto a la reducción de las distancias entre los valores observados y los valores que se predicen (suma de errores al cuadrado).

R cuadrado

Variables independientes

Variables independientes

Preguntas básicas

Ejemplo 1

Ejemplo 1: Diccionario de datos

Ejemplo 1: Construir el indicador

En R Studio: Construir el indicador

library(rio)
data=import("AcosoCallejero2019.sav")
names(data)
 [1] "SERIE"    "NVONRO"   "NSEGRUP"  "SEXO"     "GEDAD"    "EDAD"    
 [7] "P12A"     "P12B"     "P12C"     "P12D"     "P12E"     "P12F"    
[13] "P12G"     "P12H"     "NIVELEDU"
data$suma=data$P12A+data$P12B+data$P12C+data$P12D+data$P12E+data$P12F+data$P12G+data$P12H
summary(data$suma)
data$indicador=(data$suma/8)*100
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  0.000   0.000   0.000   1.465   3.000   8.000       1 

Ejercicios:

  1. Un(a) investigador(a) en Ciencias Sociales tiene la hipótesis que la incidencia de acoso callejero está vinculada con la edad, siendo que la edad del entrevistado podría explicar la incidencia del acoso callejero. Compruebe la hipótesis del investigador, utilizando la variable edad en años (no grupo de edad). Realice el gráfico respectivo. Interprete y elabore las conclusiones correspondientes.

  2. Ahora realice el mismo ejercio utilizando la variable grupos de edad.

Ejercicios:

  1. El investigador o la investigadora acude a revisar la literatura sobre la incidencia de acoso callejero y decide agregar más variables vinculadas a la incidencia de acoso callejero como la edad y el sexo. Compruebe la hipótesis del investigador. Interprete y elabore las conclusiones correspondientes. Realice el gráfico correspondiente.

  2. El investigador o la investigadora desea corroborrar que el nivel socioeconómico no influye en la incidencia de acoso callejero.

Ejercicios:

  1. El investigador o la investigadora desea corroborrar que el nivel educativo (Dos niveles: Secundaria o menos y Educación superior o más) no influye en la incidencia de acoso callejero.

Ejercicio 1

modelo1=lm(indicador ~ EDAD, data = data)
summary(modelo1)

Call:
lm(formula = indicador ~ EDAD, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-30.288 -17.748  -6.638  12.535  89.840 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 39.34547    2.55986  15.370   <2e-16 ***
EDAD        -0.50319    0.05687  -8.848   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 24.78 on 677 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.1036,    Adjusted R-squared:  0.1023 
F-statistic: 78.29 on 1 and 677 DF,  p-value: < 2.2e-16

Ejercicio 1 - Interpretación

Ejercicio 1 - Interpretación

Ejercicio 1 - Interpretación

Ejercicio 1 - Gráfico

Ejercicio 2

data$GEDAD=as.factor(data$GEDAD)
data$GEDAD=factor(data$GEDAD,
                levels = levels(data$GEDAD),
                labels = c("18a29","30a44","masde44"))
table(data$GEDAD)

  18a29   30a44 masde44 
    197     216     267 
library(fastDummies) #install.packages("fastDummies")
data=dummy_cols(data,  select_columns = c("GEDAD"))
names(data)[18:20]

Ejercicio 2

Dado que GEDAD es una variable politómica, la convierto en tres variables dicotómicas.

[1] "GEDAD_18a29"   "GEDAD_30a44"   "GEDAD_masde44"
table(data$GEDAD_18a29)
table(data$GEDAD_30a44)
table(data$GEDAD_masde44)

  0   1 
483 197 

  0   1 
464 216 

  0   1 
413 267 

Ejercicio 2 - Interpretación

GEDAD_masde44 es la variable de referencia, por ello no la coloco en el modelo. Quien decide que colocar que variable colocar como variable de referencia es el investigación o se brinda en la indicación.

modelo2=lm(indicador ~ GEDAD_18a29+GEDAD_30a44, data = data)
summary(modelo2)

Call:
lm(formula = indicador ~ GEDAD_18a29 + GEDAD_30a44, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-26.967 -21.570  -9.316  15.684  90.684 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)    9.316      1.535   6.070 2.14e-09 ***
GEDAD_18a29   17.651      2.356   7.493 2.12e-13 ***
GEDAD_30a44   12.253      2.298   5.332 1.33e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 25.08 on 676 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.0833,    Adjusted R-squared:  0.08059 
F-statistic: 30.72 on 2 and 676 DF,  p-value: 1.707e-13

Ejercicio 2 - Interpretación

Ejercicio 2 - Interpretación

Ejercicio 2 - Interpretación

Ejercicio 2 - Interpretación

Ejercicio 2 - Gráfico

Ejercicio 2 - Tabla

summ(modelo2)
Observations 679 (1 missing obs. deleted)
Dependent variable indicador
Type OLS linear regression
F(2,676) 30.72
0.08
Adj. R² 0.08
Est. S.E. t val. p
(Intercept) 9.32 1.53 6.07 0.00
GEDAD_18a29 17.65 2.36 7.49 0.00
GEDAD_30a44 12.25 2.30 5.33 0.00
Standard errors: OLS

Ejercicio 3

data$SEXO=as.factor(data$SEXO)
data$SEXO=factor(data$SEXO,
                levels = levels(data$SEXO),
                labels = c("Hombre","Mujer"))
library(fastDummies) #install.packages("fastDummies")
data=dummy_cols(data,  select_columns = c("SEXO"))
names(data)[21:22]
[1] "SEXO_Hombre" "SEXO_Mujer" 
modelo3=lm(indicador ~ EDAD+SEXO, data = data)
summary(modelo3)

Call:
lm(formula = indicador ~ EDAD + SEXO, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-39.026 -15.934  -5.977  10.451 100.494 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 28.37965    2.50560  11.326   <2e-16 ***
EDAD        -0.49783    0.05176  -9.618   <2e-16 ***
SEXOMujer   20.60331    1.73279  11.890   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 22.55 on 676 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2587,    Adjusted R-squared:  0.2565 
F-statistic: 117.9 on 2 and 676 DF,  p-value: < 2.2e-16

Ejercicio 3- Interpretación

Ejercicio 3- Interpretación

Ejercicio 3- Interpretación

Ejercicio 3- Interpretación

Ejercicio 3- Interpretación

El indice de acoso callejero estimado para una mujer de 18 años será de 40%. (Se dice 40% porque el indicador va de 0 a 100%).

IAC=28.37965+(-0.49783*18)+(20.60331*1)
IAC
[1] 40.02202

Ejercicio 3- Gráfico

library(jtools)
plot_coefs(modelo3)

Ejercicio 3 - Tabla

summ(modelo3)

Ejercicio 4

data$NSEGRUP=as.factor(data$NSEGRUP)
data$NSEGRUP=factor(data$NSEGRUP,
                levels = levels(data$NSEGRUP),
                labels = c("AyB","C","DyE"))
table(data$NSEGRUP)

AyB   C DyE 
163 330 187 
library(fastDummies) #install.packages("fastDummies")
data=dummy_cols(data,  select_columns = c("NSEGRUP"))
names(data)[23:25]
[1] "NSEGRUP_AyB" "NSEGRUP_C"   "NSEGRUP_DyE"
table(data$NSEGRUP_AyB)
table(data$NSEGRUP_C)
table(data$NSEGRUP_DyE)

  0   1 
517 163 

  0   1 
350 330 

  0   1 
493 187 

Ejercicio 4

modelo4=lm(indicador ~ NSEGRUP_AyB+NSEGRUP_C,data = data)
summary(modelo4)

Call:
lm(formula = indicador ~ NSEGRUP_AyB + NSEGRUP_C, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-20.17 -18.58 -17.25  17.33  82.75 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   18.583      1.914   9.710   <2e-16 ***
NSEGRUP_AyB    1.586      2.804   0.566    0.572    
NSEGRUP_C     -1.334      2.397  -0.556    0.578    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 26.17 on 676 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.002042,  Adjusted R-squared:  -0.0009107 
F-statistic: 0.6916 on 2 and 676 DF,  p-value: 0.5011

Ejercicio 5

data$NIVELEDU=as.factor(data$NIVELEDU)
data <- data %>%
  mutate(edu = case_when(
  NIVELEDU == 1 ~ "Secundaria o menos",
  NIVELEDU  == 2 ~ "Secundaria o menos",
 TRUE ~ "Estudios superiores"))
table(data$edu)

EstudiosSuperiores   Secundariaomenos 
               309                371 
library(fastDummies) #install.packages("fastDummies")
data=dummy_cols(data,  select_columns = c("edu"))
names(data)[27:28]
[1] "edu_EstudiosSuperiores" "edu_Secundariaomenos"  

Ejercicio 5


Call:
lm(formula = indicador ~ edu_EstudiosSuperiores, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-19.68 -17.18 -17.18  17.82  82.82 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)              17.183      1.357   12.66   <2e-16 ***
edu_EstudiosSuperiores    2.500      2.016    1.24    0.215    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 26.15 on 677 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.002268,  Adjusted R-squared:  0.0007938 
F-statistic: 1.539 on 1 and 677 DF,  p-value: 0.2152