Regresión logística

0. Objetivos del práctico

Este práctico tiene por objetivo presentar cómo crear modelos de regresión logística - con y sin consideración de diseño muestral - en R, con predictores categóricos y cuantitativos; cómo exponenciar los coeficientes para facilitar su interpretación; y, por último, herramientas de visualización de los modelos generados (sobre todo con texreg). Por supuesto, seguimos en el proceso de análisis de datos

1. Recursos del práctico

Este práctico fue elaborado con datos de la Encuesta Suplementaria de Ingresos (ESI) en su versión 2020. Cuando trabajen con algún set de datos, nunca olviden revisar la documentación metodológica anexa, así como el libro de códigos correspondiente.

Los datos ya fueron procesados anteriormente, a modo de concentrar el práctico en la creación de los modelos. Así, por ejemplo, los predictores categóricos ya fueron transformados en variables de tipo factor. Pueden revisar el script proc.R ubicado en la carpeta R, para profundizar en el tratamiento de los datos.

2. Librerías a utilizar

En este práctico utilizaremos seis paquetes

  1. pacman: este facilita y agiliza la lectura de los paquetes a utilizar en R;

  2. tidyverse: colección de paquetes;

  3. srvyr: para crear el objeto encuesta;

  4. survey: para crear modelos incorporando el diseño muestral;

  5. sjPlot: para presentar tablas y gráficos con los modelos creados;

  6. remotes: para instalar texreg desde GitHub;

  7. texreg: para crear tablas en formato publicable.

Pasos del procesamiento

1. Cargar librerías

Como en las prácticas anteriores, empleamos la función p_load de la librería pacman. También utilizamos la función install_github() de remotes para poder instalar la librería texreg

remotes::install_github("leifeld/texreg", force = T)
## 
## * checking for file 'C:\Users\dafne\AppData\Local\Temp\RtmpaoqnDt\remotes4ec2e6490b\leifeld-texreg-a80fce7/DESCRIPTION' ... OK
## * preparing 'texreg':
## * checking DESCRIPTION meta-information ... OK
## * installing the package to process help pages
## * saving partial Rd database
## * checking for LF line-endings in source and make files and shell scripts
## * checking for empty or unneeded directories
## * building 'texreg_1.38.6.tar.gz'
## 
pacman::p_load(sjPlot, 
               tidyverse, 
               srvyr,
               survey,
               remotes,
               texreg)

2. Cargar datos

Como se señaló anteriormente, en este práctico se trabajará con los datos de la Encuesta Suplementaria de Ingresos (ESI) en su versión 2020. Esta se encuentra en la carpeta “input/data”, en formato .rds, habiendo sido procesada anteriormente. Por ello, empleamos la función readRDS() de la librería base de R.

datos <- readRDS(url("https://github.com/learn-R/10.2-class/raw/main/input/data/data_proc.rds"))

Podemos darnos cuenta de que el set de datos presenta 26.821 observaciones (o filas), y 7 variables (o columnas), que incluyen a las variables ing_t_t,, edad, sexo, est_conyugal, ciuo08, fact_cal_esi y ing_medio. Esta última discrimina si el sujeto presenta ingresos mayores o iguales (1) a la media de ing_t_t o no (0). Para mayor detalle, revisar el script proc.R ubicado en la carpeta R, para profundizar en el tratamiento de los datos.

3. Explorar datos

A continuación, usaremos la función view_df() del paquete sjPlot, que presenta un resumen de las variables contenidas en el set de datos, que nos permitirá identificar la etiqueta de cada variable y de cada una de sus alternativas de respuesta.

sjPlot::view_df(datos,
                encoding = 'latin9')
Data frame: datos
IDNameLabelValuesValue Labels
1 ing_t_t Total ingresos del trabajo range: 0.0-18045761.6
2 edad Edad de la persona range: 15-93
3 sexo Sexo Hombre
Mujer
4 est_conyugal Con pareja
Sin pareja
5 ciuo08 b1. Grupo ocupacional según CIUO 08 - 1 dígito Directores, gerentes y administradores
Profesionales, científicos e intelectuales
Técnicos y profesionales de nivel medio
Personal de apoyo administrativo
Trabajadores de los servicios y vendedores de comercios y mercados
Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros
Artesanos y operarios de oficios
Operadores de instalaciones, maquinas y ensambladores
Ocupaciones elementales
Otros no identificados
Sin clasificación
6 fact_cal_esi Factor de expansión ESI con nueva calibración,
proyecciones de población
range: 6.7-7070.1
7 ing_medio ¿Mayor que el ingreso medio? 0
1

Podemos ver que tenemos tres variables cuantitativas (ing_t_t, edad y fact_cal_esi), y cuatro variables categóricas (sexo, est_conyugal, ciuo08 e ing_medio). Estas últimas tienen 2, 2, 10 y 2 categorías, respectivamente.

4. Creación del modelo de regresión logística binaria

La regresión logística binaria

Recordemos que, en el caso de la regresión logística, el resultado predicho es el logit (logatirmos de los odds), siendo los odds una razón de probabilidades (chances). Para llegar hasta la regresión logística, debemos pasar por los odds y los odds-ratio (proporción de chances).

Las odds son la probabilidad de que algo ocurra (por ejemplo, tener un ingreso mayor o igual a la media) dividido por la probabilidad de que no ocurra:

\begin{equation} \ Odds = p/1-p \end{equation}

Odds de 1 significan chances iguales, mientras que odds inferiores a 1 son negativas, y mayores a 1, positivas.

Las Odds ratio (OR), por su parte, reflejan la asociación entre las chances de dos variables dicotómicas:

\begin{equation} \ OR = p_1/(1-p_1)/p_0/(1-p_0) \end{equation}

Las OR permiten, entonces, presentar en un único número la relación entre dos variables categóricas. Por ello, es una versión del β para variables dependientes categóricas. Una de las transformaciones que permite estimar una regresión con variables dependientes dicotómicas es el logit, logaritmo de los odds

\begin{equation} \ Logit = ln(Odd) = ln(p/1-p) \end{equation}

Luego, la fórmula para un modelo de regresión logística binaria simple es

\begin{equation} \ E(Y) = P = exp(b_{0} + b_{1}X) / 1 + exp(b_{0} + b_{1}X) \end{equation}

Donde

  • \(E(Y)\) es el valor estimado/predicho de \(Y\)
  • \(P\) es la probabilidad predicha
  • \(b_{0}\) es el intercepto
  • \(b_{1}\) es el coeficiente de regresión que, en este caso, presenta valores en log-odds

Y para la regresión logística binaria múltiple

\begin{equation} \ E(Y) = P = exp(b_{0} + b_{1}X_{1} + b_{n}X_{n}) / 1 + exp(b_{0} + b_{1}X_{1} + b_{n}X_{n}) \end{equation}

Donde

  • \(E(Y)\) es el valor estimado/predicho de \(Y\)
  • \(P\) es la probabilidad predicha
  • \(b_{0}\) es el intercepto
  • \(b_{1}\) es el coeficiente de regresión del primer predictor que, en este caso, presenta valores en log-odds
  • \(b_{n}\) es el coeficiente de regresión del predictor n que, en este caso, presenta valores en log-odds

a) Modelo nulo

Una vez realizado lo anterior, es momento de generar nuestro modelo de regresión logística. Emplearemos la función glm() del paquete base de R, especificando el argumento family como "binomial". Lo primero es especificar las variables con las cuales construiremos el modelo: antes de la virgulilla (~) escribiremos nuestra variable dependiente (en este caso, ing_medio), y luego, las variables independientes separadas con un signo más (+). Para crear el modelo nulo, en lugar de variables predictoras, especificamos un 1. En síntesis, las diferencias entre crear un modelo de regresión lineal (como se revisó en el práctico anterior) son:

  • Se utiliza la función glm() en lugar de lm()
  • Se especifica el argumento family = 'binomial'
modelo0 <- glm(ing_medio ~ 1,
              data = datos, 
              weights = fact_cal_esi,
              family = binomial(link = "logit"))

Examinemos el modelo creado:

summary(modelo0)
## 
## Call:
## glm(formula = ing_medio ~ 1, family = binomial(link = "logit"), 
##     data = datos, weights = fact_cal_esi)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -625.3     0.0     0.0     0.0     0.0  
## 
## Coefficients:
##                     Estimate       Std. Error     z value            Pr(>|z|)
## (Intercept) 1615045593563038            23644 68307515464 <0.0000000000000002
##                
## (Intercept) ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance:   8361355  on 26820  degrees of freedom
## Residual deviance: 124161070  on 26820  degrees of freedom
## AIC: 124159719
## 
## Number of Fisher Scoring iterations: 6

Como podemos ver, se ha creado en nuestro entorno (Environment) un objeto llamado modelo0_sin, que consta de una lista con 30 elementos.

b) Modelo con predictores numéricos

No obstante, el modelo nulo no es interpretable. Incorporemos edad, predictor numérico, y revisemos el modelo estimado

modelo1 <- glm(ing_medio ~ edad,
              data = datos, 
              family = binomial(link = "logit"))

summary(modelo1)
## 
## Call:
## glm(formula = ing_medio ~ edad, family = binomial(link = "logit"), 
##     data = datos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.7254   0.7211   0.7409   0.7576   0.8079  
## 
## Coefficients:
##              Estimate Std. Error z value             Pr(>|z|)    
## (Intercept)  1.287250   0.048275   26.66 < 0.0000000000000002 ***
## edad        -0.003642   0.001026   -3.55             0.000385 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 29882  on 26820  degrees of freedom
## Residual deviance: 29869  on 26819  degrees of freedom
## AIC: 29873
## 
## Number of Fisher Scoring iterations: 4

c) Modelo con predictores categóricos

Asimismo, gran parte de las veces queremos utilizar variables categóricas (como el sexo, la ocupación o el estado conyugal de las personas) como variables predictoras:

modelo2 <- glm(ing_medio ~ sexo,
              data = datos, 
              family = binomial(link = "logit"))

summary(modelo2)
## 
## Call:
## glm(formula = ing_medio ~ sexo, family = binomial(link = "logit"), 
##     data = datos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.7766   0.6799   0.6799   0.8397   0.8397  
## 
## Coefficients:
##             Estimate Std. Error z value            Pr(>|z|)    
## (Intercept)  1.34711    0.01996   67.48 <0.0000000000000002 ***
## sexoMujer   -0.48607    0.02855  -17.03 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 29882  on 26820  degrees of freedom
## Residual deviance: 29592  on 26819  degrees of freedom
## AIC: 29596
## 
## Number of Fisher Scoring iterations: 4

d) Modelo completo

¡Incorporemos todas las variables que seleccionamos!

modelo3 <- glm(ing_medio ~ edad + sexo + ciuo08 + est_conyugal,
              data = datos, 
              family = binomial(link = "logit"))

summary(modelo3)
## 
## Call:
## glm(formula = ing_medio ~ edad + sexo + ciuo08 + est_conyugal, 
##     family = binomial(link = "logit"), data = datos)
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -2.59360   0.00095   0.50005   0.82422   1.34623  
## 
## Coefficients:
##                                                                                      Estimate
## (Intercept)                                                                          3.184303
## edad                                                                                 0.002147
## sexoMujer                                                                           -0.756990
## ciuo08Profesionales, científicos e intelectuales                                    -0.040840
## ciuo08Técnicos y profesionales de nivel medio                                       -0.344910
## ciuo08Personal de apoyo administrativo                                              -0.439180
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            -1.989663
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.695957
## ciuo08Artesanos y operarios de oficios                                              -2.346364
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         -1.273414
## ciuo08Ocupaciones elementales                                                       -2.208624
## ciuo08Otros no identificados                                                        11.524044
## ciuo08Sin clasificación                                                             -2.460523
## est_conyugalSin pareja                                                              -0.167130
##                                                                                     Std. Error
## (Intercept)                                                                           0.165321
## edad                                                                                  0.001101
## sexoMujer                                                                             0.033434
## ciuo08Profesionales, científicos e intelectuales                                      0.168604
## ciuo08Técnicos y profesionales de nivel medio                                         0.166762
## ciuo08Personal de apoyo administrativo                                                0.179496
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados              0.156859
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros   0.165042
## ciuo08Artesanos y operarios de oficios                                                0.158416
## ciuo08Operadores de instalaciones, maquinas y ensambladores                           0.166563
## ciuo08Ocupaciones elementales                                                         0.156421
## ciuo08Otros no identificados                                                         70.479870
## ciuo08Sin clasificación                                                               0.490312
## est_conyugalSin pareja                                                                0.039472
##                                                                                     z value
## (Intercept)                                                                          19.261
## edad                                                                                  1.949
## sexoMujer                                                                           -22.642
## ciuo08Profesionales, científicos e intelectuales                                     -0.242
## ciuo08Técnicos y profesionales de nivel medio                                        -2.068
## ciuo08Personal de apoyo administrativo                                               -2.447
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            -12.684
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -16.335
## ciuo08Artesanos y operarios de oficios                                              -14.811
## ciuo08Operadores de instalaciones, maquinas y ensambladores                          -7.645
## ciuo08Ocupaciones elementales                                                       -14.120
## ciuo08Otros no identificados                                                          0.164
## ciuo08Sin clasificación                                                              -5.018
## est_conyugalSin pareja                                                               -4.234
##                                                                                                 Pr(>|z|)
## (Intercept)                                                                         < 0.0000000000000002
## edad                                                                                              0.0513
## sexoMujer                                                                           < 0.0000000000000002
## ciuo08Profesionales, científicos e intelectuales                                                  0.8086
## ciuo08Técnicos y profesionales de nivel medio                                                     0.0386
## ciuo08Personal de apoyo administrativo                                                            0.0144
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            < 0.0000000000000002
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros < 0.0000000000000002
## ciuo08Artesanos y operarios de oficios                                              < 0.0000000000000002
## ciuo08Operadores de instalaciones, maquinas y ensambladores                           0.0000000000000209
## ciuo08Ocupaciones elementales                                                       < 0.0000000000000002
## ciuo08Otros no identificados                                                                      0.8701
## ciuo08Sin clasificación                                                               0.0000005213460582
## est_conyugalSin pareja                                                                0.0000229391302821
##                                                                                        
## (Intercept)                                                                         ***
## edad                                                                                .  
## sexoMujer                                                                           ***
## ciuo08Profesionales, científicos e intelectuales                                       
## ciuo08Técnicos y profesionales de nivel medio                                       *  
## ciuo08Personal de apoyo administrativo                                              *  
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            ***
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros ***
## ciuo08Artesanos y operarios de oficios                                              ***
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         ***
## ciuo08Ocupaciones elementales                                                       ***
## ciuo08Otros no identificados                                                           
## ciuo08Sin clasificación                                                             ***
## est_conyugalSin pareja                                                              ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 29882  on 26820  degrees of freedom
## Residual deviance: 26541  on 26807  degrees of freedom
## AIC: 26569
## 
## Number of Fisher Scoring iterations: 13

e) Incorporando el diseño muestral

No obstante, como se revisó en el práctico anterior, es fundamental utilizar los ponderadores para estimar de forma más precisa, al incorporar el diseño muestral en el modelamiento. En aras de ello, especificamos fact_cal_esi (nuestro ponderador) en el argumento weights =

modelo3_dis <- glm(ing_medio ~ edad + sexo + ciuo08 + est_conyugal,
              data = datos, 
              weights = fact_cal_esi,
              family = binomial(link = "logit"))

summary(modelo3_dis)
## 
## Call:
## glm(formula = ing_medio ~ edad + sexo + ciuo08 + est_conyugal, 
##     family = binomial(link = "logit"), data = datos, weights = fact_cal_esi)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -625.3     0.0     0.0     0.0   571.7  
## 
## Coefficients:
##                                                                                             Estimate
## (Intercept)                                                                          734490901694669
## edad                                                                                   1396302676615
## sexoMujer                                                                           -977967704379870
## ciuo08Profesionales, científicos e intelectuales                                     -54746519092886
## ciuo08Técnicos y profesionales de nivel medio                                        696469468409673
## ciuo08Personal de apoyo administrativo                                               432112479093228
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            1765629792332694
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -364742422184976
## ciuo08Artesanos y operarios de oficios                                              1343303108100302
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         -143012874087013
## ciuo08Ocupaciones elementales                                                        975377515779369
## ciuo08Otros no identificados                                                         531401274444271
## ciuo08Sin clasificación                                                             1382778698593716
## est_conyugalSin pareja                                                               -79208396226639
##                                                                                           Std. Error
## (Intercept)                                                                                   152111
## edad                                                                                            1863
## sexoMujer                                                                                      51328
## ciuo08Profesionales, científicos e intelectuales                                              136122
## ciuo08Técnicos y profesionales de nivel medio                                                 139620
## ciuo08Personal de apoyo administrativo                                                        157031
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados                      133142
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros           195056
## ciuo08Artesanos y operarios de oficios                                                        139181
## ciuo08Operadores de instalaciones, maquinas y ensambladores                                   148683
## ciuo08Ocupaciones elementales                                                                 133676
## ciuo08Otros no identificados                                                                  369810
## ciuo08Sin clasificación                                                                       747979
## est_conyugalSin pareja                                                                         58047
##                                                                                          z value
## (Intercept)                                                                           4828655221
## edad                                                                                   749631359
## sexoMujer                                                                           -19053496735
## ciuo08Profesionales, científicos e intelectuales                                      -402186339
## ciuo08Técnicos y profesionales de nivel medio                                         4988340807
## ciuo08Personal de apoyo administrativo                                                2751772874
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados             13261260571
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros  -1869940506
## ciuo08Artesanos y operarios de oficios                                                9651508941
## ciuo08Operadores de instalaciones, maquinas y ensambladores                           -961866725
## ciuo08Ocupaciones elementales                                                         7296603904
## ciuo08Otros no identificados                                                          1436959492
## ciuo08Sin clasificación                                                               1848685437
## est_conyugalSin pareja                                                               -1364553727
##                                                                                                Pr(>|z|)
## (Intercept)                                                                         <0.0000000000000002
## edad                                                                                <0.0000000000000002
## sexoMujer                                                                           <0.0000000000000002
## ciuo08Profesionales, científicos e intelectuales                                    <0.0000000000000002
## ciuo08Técnicos y profesionales de nivel medio                                       <0.0000000000000002
## ciuo08Personal de apoyo administrativo                                              <0.0000000000000002
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            <0.0000000000000002
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros <0.0000000000000002
## ciuo08Artesanos y operarios de oficios                                              <0.0000000000000002
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         <0.0000000000000002
## ciuo08Ocupaciones elementales                                                       <0.0000000000000002
## ciuo08Otros no identificados                                                        <0.0000000000000002
## ciuo08Sin clasificación                                                             <0.0000000000000002
## est_conyugalSin pareja                                                              <0.0000000000000002
##                                                                                        
## (Intercept)                                                                         ***
## edad                                                                                ***
## sexoMujer                                                                           ***
## ciuo08Profesionales, científicos e intelectuales                                    ***
## ciuo08Técnicos y profesionales de nivel medio                                       ***
## ciuo08Personal de apoyo administrativo                                              ***
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            ***
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros ***
## ciuo08Artesanos y operarios de oficios                                              ***
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         ***
## ciuo08Ocupaciones elementales                                                       ***
## ciuo08Otros no identificados                                                        ***
## ciuo08Sin clasificación                                                             ***
## est_conyugalSin pareja                                                              ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance:   8361355  on 26820  degrees of freedom
## Residual deviance: 172389943  on 26807  degrees of freedom
## AIC: 172388965
## 
## Number of Fisher Scoring iterations: 25

Sin embargo, como podemos darnos cuenta, el output que generamos incorporando este argumento resulta problemático, y difiere en demasía del modelo que no contempla los ponderadores en su estimación. ¿Qué podemos hacer? ¡pues recurriremos a una librería ya conocida! Nos referimos a srvyr, que nos permitirá crear un objeto encuesta

esi_design <- as_survey_design(datos, 
                               ids = 1, 
                               weights = fact_cal_esi)

¿srvyr también tiene una función para crear modelos de regresión logística? Lamentablemente no. No obstante, y tal como se revisó en el práctico anterior, la librería ``surveyincluye la funciónsvyglm(), que permite estimar modelos de diversas características, considerando el **diseño muestral** de los datos. Esto se especifica con el argumento design =, donde debemos especificar el objeto encuesta con que nos hallamos trabajando (es el símil de data =englm()`).

modelo3_survey <- svyglm(ing_medio ~ edad + sexo + ciuo08 + est_conyugal,
                         family = binomial(link = "logit"),
                         design = esi_design)

summary(modelo3_survey)
## 
## Call:
## svyglm(formula = ing_medio ~ edad + sexo + ciuo08 + est_conyugal, 
##     design = esi_design, family = binomial(link = "logit"))
## 
## Survey design:
## Called via srvyr
## 
## Coefficients:
##                                                                                      Estimate
## (Intercept)                                                                          3.299012
## edad                                                                                 0.003268
## sexoMujer                                                                           -0.697013
## ciuo08Profesionales, científicos e intelectuales                                    -0.433479
## ciuo08Técnicos y profesionales de nivel medio                                       -0.611823
## ciuo08Personal de apoyo administrativo                                              -0.786611
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            -2.191474
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.844311
## ciuo08Artesanos y operarios de oficios                                              -2.488899
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         -1.434649
## ciuo08Ocupaciones elementales                                                       -2.226708
## ciuo08Otros no identificados                                                        11.317728
## ciuo08Sin clasificación                                                             -2.074388
## est_conyugalSin pareja                                                              -0.120082
##                                                                                     Std. Error
## (Intercept)                                                                           0.220901
## edad                                                                                  0.001796
## sexoMujer                                                                             0.053237
## ciuo08Profesionales, científicos e intelectuales                                      0.230493
## ciuo08Técnicos y profesionales de nivel medio                                         0.225032
## ciuo08Personal de apoyo administrativo                                                0.244913
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados              0.210180
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros   0.221381
## ciuo08Artesanos y operarios de oficios                                                0.212019
## ciuo08Operadores de instalaciones, maquinas y ensambladores                           0.224929
## ciuo08Ocupaciones elementales                                                         0.208978
## ciuo08Otros no identificados                                                          0.235485
## ciuo08Sin clasificación                                                               0.646857
## est_conyugalSin pareja                                                                0.062022
##                                                                                     t value
## (Intercept)                                                                          14.934
## edad                                                                                  1.820
## sexoMujer                                                                           -13.093
## ciuo08Profesionales, científicos e intelectuales                                     -1.881
## ciuo08Técnicos y profesionales de nivel medio                                        -2.719
## ciuo08Personal de apoyo administrativo                                               -3.212
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            -10.427
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -12.848
## ciuo08Artesanos y operarios de oficios                                              -11.739
## ciuo08Operadores de instalaciones, maquinas y ensambladores                          -6.378
## ciuo08Ocupaciones elementales                                                       -10.655
## ciuo08Otros no identificados                                                         48.061
## ciuo08Sin clasificación                                                              -3.207
## est_conyugalSin pareja                                                               -1.936
##                                                                                                 Pr(>|t|)
## (Intercept)                                                                         < 0.0000000000000002
## edad                                                                                             0.06883
## sexoMujer                                                                           < 0.0000000000000002
## ciuo08Profesionales, científicos e intelectuales                                                 0.06003
## ciuo08Técnicos y profesionales de nivel medio                                                    0.00656
## ciuo08Personal de apoyo administrativo                                                           0.00132
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            < 0.0000000000000002
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros < 0.0000000000000002
## ciuo08Artesanos y operarios de oficios                                              < 0.0000000000000002
## ciuo08Operadores de instalaciones, maquinas y ensambladores                               0.000000000182
## ciuo08Ocupaciones elementales                                                       < 0.0000000000000002
## ciuo08Otros no identificados                                                        < 0.0000000000000002
## ciuo08Sin clasificación                                                                          0.00134
## est_conyugalSin pareja                                                                           0.05287
##                                                                                        
## (Intercept)                                                                         ***
## edad                                                                                .  
## sexoMujer                                                                           ***
## ciuo08Profesionales, científicos e intelectuales                                    .  
## ciuo08Técnicos y profesionales de nivel medio                                       ** 
## ciuo08Personal de apoyo administrativo                                              ** 
## ciuo08Trabajadores de los servicios y vendedores de comercios y mercados            ***
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros ***
## ciuo08Artesanos y operarios de oficios                                              ***
## ciuo08Operadores de instalaciones, maquinas y ensambladores                         ***
## ciuo08Ocupaciones elementales                                                       ***
## ciuo08Otros no identificados                                                        ***
## ciuo08Sin clasificación                                                             ** 
## est_conyugalSin pareja                                                              .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1.023958)
## 
## Number of Fisher Scoring iterations: 13

5. Extracción de elementos

La extracción de elementos en modelos de regresión logística no difiere de la extracción de elementos de modelos de regresión lineal (ni de cualquier lista).

Coeficientes:

modelo3$coefficients
##                                                                         (Intercept) 
##                                                                         3.184303390 
##                                                                                edad 
##                                                                         0.002146798 
##                                                                           sexoMujer 
##                                                                        -0.756990374 
##                                    ciuo08Profesionales, científicos e intelectuales 
##                                                                        -0.040840086 
##                                       ciuo08Técnicos y profesionales de nivel medio 
##                                                                        -0.344910420 
##                                              ciuo08Personal de apoyo administrativo 
##                                                                        -0.439180226 
##            ciuo08Trabajadores de los servicios y vendedores de comercios y mercados 
##                                                                        -1.989663484 
## ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros 
##                                                                        -2.695957420 
##                                              ciuo08Artesanos y operarios de oficios 
##                                                                        -2.346363767 
##                         ciuo08Operadores de instalaciones, maquinas y ensambladores 
##                                                                        -1.273413838 
##                                                       ciuo08Ocupaciones elementales 
##                                                                        -2.208623846 
##                                                        ciuo08Otros no identificados 
##                                                                        11.524043703 
##                                                             ciuo08Sin clasificación 
##                                                                        -2.460523471 
##                                                              est_conyugalSin pareja 
##                                                                        -0.167129643

Sexto coeficiente (considerando el intercepto como primero):

modelo3$coefficients[6]
## ciuo08Personal de apoyo administrativo 
##                             -0.4391802

Coeficiente de estado conyugal (sin pareja):

modelo3$coefficients["est_conyugalSin pareja"]
## est_conyugalSin pareja 
##             -0.1671296

También podemos extraer elementos de los modelos creados con svyglm(); por ejemplo:

Devianza

summary(modelo3_survey)$deviance
## [1] 25003.52

Criterio de Información de Akaike (AIC)

summary(modelo3_survey)$aic
## [1] 23784.76

Podemos utilizar, tal como en el práctico anterior, sjPlot::get_model_data() para extraer los valores predichos

get_model_data(modelo3_survey, 
               type = "pred")
## $edad
## # Predicted probabilities of ¿Mayor que el ingreso medio?
## 
## edad | Predicted | group_col |       95% CI
## -------------------------------------------
##   10 |      0.97 |      edad | [0.95, 0.98]
##   20 |      0.97 |      edad | [0.95, 0.98]
##   30 |      0.97 |      edad | [0.95, 0.98]
##   40 |      0.97 |      edad | [0.95, 0.98]
##   60 |      0.97 |      edad | [0.96, 0.98]
##   70 |      0.97 |      edad | [0.96, 0.98]
##   80 |      0.97 |      edad | [0.96, 0.98]
##  100 |      0.97 |      edad | [0.96, 0.98]
## 
## Adjusted for:
## *         sexo =                                 Hombre
## *       ciuo08 = Directores, gerentes y administradores
## * est_conyugal =                             Con pareja
## 
## $sexo
## # Predicted probabilities of ¿Mayor que el ingreso medio?
## 
## sexo | Predicted | group_col |       95% CI
## -------------------------------------------
##    1 |      0.97 |      sexo | [0.95, 0.98]
##    2 |      0.94 |      sexo | [0.91, 0.96]
## 
## Adjusted for:
## *         edad =                                  42.13
## *       ciuo08 = Directores, gerentes y administradores
## * est_conyugal =                             Con pareja
## 
## $ciuo08
## # Predicted probabilities of ¿Mayor que el ingreso medio?
## 
## ciuo08 | Predicted | group_col |       95% CI
## ---------------------------------------------
##      1 |      0.97 |    ciuo08 | [0.95, 0.98]
##      2 |      0.95 |    ciuo08 | [0.94, 0.96]
##      4 |      0.93 |    ciuo08 | [0.91, 0.95]
##      5 |      0.78 |    ciuo08 | [0.75, 0.80]
##      6 |      0.64 |    ciuo08 | [0.60, 0.69]
##      7 |      0.72 |    ciuo08 | [0.69, 0.75]
##      8 |      0.88 |    ciuo08 | [0.86, 0.90]
##     11 |      0.80 |    ciuo08 | [0.54, 0.93]
## 
## Adjusted for:
## *         edad =      42.13
## *         sexo =     Hombre
## * est_conyugal = Con pareja
## 
## $est_conyugal
## # Predicted probabilities of ¿Mayor que el ingreso medio?
## 
## est_conyugal | Predicted |    group_col |       95% CI
## ------------------------------------------------------
##            1 |      0.97 | est_conyugal | [0.95, 0.98]
##            2 |      0.96 | est_conyugal | [0.95, 0.98]
## 
## Adjusted for:
## *   edad =                                  42.13
## *   sexo =                                 Hombre
## * ciuo08 = Directores, gerentes y administradores

Exponenciación de coeficientes

Como bien sabemos, los log-odds son difícilmente interpretables. Para subsanar ello, podemos exponenciar los logaritmos de las chances que figuran en los coeficientes de nuestros modelos de regresión logística, recurriendo a la función exp(). Esto permitirá que nuestro coeficientes pasen de estar en log-odds a Odds-ratio, cuya interpretación es mucho más sencilla. Probemos con el coeficiente para las personas cuyo estatus conyugal es Sin pareja

exp(modelo3_survey$coefficients["est_conyugalSin pareja"])
## est_conyugalSin pareja 
##              0.8868479

Luego, podemos crear los OR en nuestro modelo:

modelo3_survey$or <- exp(modelo3_survey$coefficients)

¡Comprobemos!

modelo3_survey$or["est_conyugalSin pareja"]
## est_conyugalSin pareja 
##              0.8868479
modelo3_survey$coefficients["est_conyugalSin pareja"]
## est_conyugalSin pareja 
##             -0.1200818

6. Presentación del modelo creado

a) Tablas

En este práctico revisaremos dos maneras de presentar nuestros modelos. La primera sigue la línea de la práctica anterior, empleando sjPlot::tab_model(). La segunda es algo mas sofisticada: utilizaremos la librería texreg para presentar nuestros modelos, incorporando elementos adicionales a los coeficientes, como lo pueden ser las medidas de ajuste.

Con sjPlot::tab_model()

Seguimos la misma idea del práctico anterior:

sjPlot::tab_model(modelo0, 
                  show.ci=FALSE,
                  df.method = 'wald', #Para realizar más rápidamente el cálculo de los intervalos de confianza
                  encoding = "UTF-8") 
  ¿Mayor que el ingreso
medio?
Predictors Odds Ratios p
(Intercept) Inf <0.001
Observations 26821
R2 Tjur 0.000

Podemos incorporar más de un modelo de regresión a la tabla. Esto es muy útil para comparar los diversos modelos que creamos

sjPlot::tab_model(list(modelo0, modelo1, modelo2), # los modelos estimados
                  show.ci=FALSE, # no mostrar intervalo de confianza (por defecto lo hace)
                  p.style = "stars", # asteriscos de significación estadística
                  df.method = 'wald',
                  dv.labels = c("Modelo 1", "Modelo 2", "Modelo 3"), # etiquetas de modelos o variables dep.
                  string.pred = "Predictores", string.est = "β", # nombre predictores y símbolo beta en tabla
                  encoding =  "UTF-8")
  Modelo 1 Modelo 2 Modelo 3
Predictores ß ß ß
(Intercept) Inf *** 3.62 *** 3.85 ***
Edad de la persona 1.00 ***
Sexo: Mujer 0.62 ***
Observations 26821 26821 26821
R2 Tjur 0.000 0.001 0.011
* p<0.05   ** p<0.01   *** p<0.001

No obstante, hay algo que resulta un poco problemático: el output de tab_model() cuando presentamos modelos de regresión logística, por defecto, presenta los coeficientes en log-Odds (logaritmo de las chances). Estos valores son difícilmente interpretables. Sin embargo ¡existe una solución! Si especificamos el argumento transform = "exp", el output de la tabla estará en formato Odds ratio (OR), lo cual permite interpretar los coeficientes de manera sencilla.

sjPlot::tab_model(modelo3, # modelo con todas las variables
                  show.ci=FALSE, # no mostrar intervalo de confianza (por defecto lo hace)
                  transform = 'exp', # exponenciamos los coeficientes
                  p.style = "stars", # asteriscos de significación estadística
                  df.method = 'wald', #Para realizar más rápidamente el cálculo de los intervalos de confianza
                  dv.labels = "Modelo con todas las variables", # etiquetas de modelos o variables dep.
                  string.pred = "Predictores", string.est = "β", # nombre predictores y símbolo beta en tabla
                  encoding =  "latin9")
  Modelo con todas las variables
Predictores ß
(Intercept) 24.15 ***
Edad de la persona 1.00
Sexo: Mujer 0.47 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Profesionales,
científicos e
intelectuales
0.96
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Técnicos y profesionales
de nivel medio
0.71 *
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Personal de apoyo
administrativo
0.64 *
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Trabajadores de los
servicios y vendedores de
comercios y mercados
0.14 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Agricultores y
trabajadores calificados
agropecuarios, forestales
y pesqueros
0.07 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Artesanos y operarios de
oficios
0.10 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Operadores de
instalaciones, maquinas y
ensambladores
0.28 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Ocupaciones elementales
0.11 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Otros no identificados
101118.03
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Sin clasificación
0.09 ***
est_conyugal: Sin pareja 0.85 ***
Observations 26821
R2 Tjur 0.118
* p<0.05   ** p<0.01   *** p<0.001

¡Ahora podemos interpretar los coeficientes de manera sencilla, para cada categoría de respuesta!

¿Y si queremos integrar el diseño muestral?

sjPlot::tab_model(modelo3_survey, # modelo con todas las variables
                  show.ci=FALSE, # no mostrar intervalo de confianza (por defecto lo hace)
                  transform = 'exp', # exponenciamos los coeficientes
                  p.style = "stars", # asteriscos de significación estadística
                  df.method = 'wald',#Para realizar más rápidamente el cálculo de los intervalos de confianza
                  dv.labels = "Modelo con todas las variables", # etiquetas de modelos o variables dep.
                  string.pred = "Predictores", string.est = "β", # nombre predictores y símbolo beta en tabla
                  encoding =  "UTF-8")
  Modelo con todas las variables
Predictores ß
(Intercept) 27.09 ***
Edad de la persona 1.00
Sexo: Mujer 0.50 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Profesionales,
científicos e
intelectuales
0.65
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Técnicos y profesionales
de nivel medio
0.54 **
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Personal de apoyo
administrativo
0.46 **
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Trabajadores de los
servicios y vendedores de
comercios y mercados
0.11 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Agricultores y
trabajadores calificados
agropecuarios, forestales
y pesqueros
0.06 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Artesanos y operarios de
oficios
0.08 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Operadores de
instalaciones, maquinas y
ensambladores
0.24 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Ocupaciones elementales
0.11 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Otros no identificados
82267.21 ***
b1. Grupo ocupacional
según CIUO 08 - 1 dígito:
Sin clasificación
0.13 **
est_conyugal: Sin pareja 0.89
Observations 26821
R2 / R2 adjusted 0.102 / 0.101
* p<0.05   ** p<0.01   *** p<0.001

Con texreg

La segunda forma de presentar nuestro modelo de en formato tabla es con texreg. Hay diversas funciones:

  • screenreg(): muestra la tabla en la consola de R.
  • htmlreg(): produce una tabla en formato html. Es la que utilizaremos en este práctico.
  • texreg(): produce una tabla en formato LaTex para documentos en PDF.

Si no especificamos ningún argumento, htmlreg() presenta de forma directa una tabla publicable, con sus respectivas medidas de ajuste. Algo fundamental es especificar results='asis' en las opciones del chunk pues, de lo contrario, la tabla no aparecerá en el documento renderizado.

htmlreg(modelo3, doctype = F)
Statistical models
  Model 1
(Intercept) 3.18***
  (0.17)
edad 0.00
  (0.00)
sexoMujer -0.76***
  (0.03)
ciuo08Profesionales, científicos e intelectuales -0.04
  (0.17)
ciuo08Técnicos y profesionales de nivel medio -0.34*
  (0.17)
ciuo08Personal de apoyo administrativo -0.44*
  (0.18)
ciuo08Trabajadores de los servicios y vendedores de comercios y mercados -1.99***
  (0.16)
ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.70***
  (0.17)
ciuo08Artesanos y operarios de oficios -2.35***
  (0.16)
ciuo08Operadores de instalaciones, maquinas y ensambladores -1.27***
  (0.17)
ciuo08Ocupaciones elementales -2.21***
  (0.16)
ciuo08Otros no identificados 11.52
  (70.48)
ciuo08Sin clasificación -2.46***
  (0.49)
est_conyugalSin pareja -0.17***
  (0.04)
AIC 26569.19
BIC 26683.95
Log Likelihood -13270.60
Deviance 26541.19
Num. obs. 26821
***p < 0.001; **p < 0.01; *p < 0.05

¡Podemos incluir más de un modelo!

htmlreg(l = list(modelo3, modelo3_survey))
Statistical models
  Model 1 Model 2
(Intercept) 3.18*** 3.30***
  (0.17) (0.22)
edad 0.00 0.00
  (0.00) (0.00)
sexoMujer -0.76*** -0.70***
  (0.03) (0.05)
ciuo08Profesionales, científicos e intelectuales -0.04 -0.43
  (0.17) (0.23)
ciuo08Técnicos y profesionales de nivel medio -0.34* -0.61**
  (0.17) (0.23)
ciuo08Personal de apoyo administrativo -0.44* -0.79**
  (0.18) (0.24)
ciuo08Trabajadores de los servicios y vendedores de comercios y mercados -1.99*** -2.19***
  (0.16) (0.21)
ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.70*** -2.84***
  (0.17) (0.22)
ciuo08Artesanos y operarios de oficios -2.35*** -2.49***
  (0.16) (0.21)
ciuo08Operadores de instalaciones, maquinas y ensambladores -1.27*** -1.43***
  (0.17) (0.22)
ciuo08Ocupaciones elementales -2.21*** -2.23***
  (0.16) (0.21)
ciuo08Otros no identificados 11.52 11.32***
  (70.48) (0.24)
ciuo08Sin clasificación -2.46*** -2.07**
  (0.49) (0.65)
est_conyugalSin pareja -0.17*** -0.12
  (0.04) (0.06)
AIC 26569.19  
BIC 26683.95  
Log Likelihood -13270.60  
Deviance 26541.19 25003.52
Num. obs. 26821 26821
Dispersion   1.02
***p < 0.001; **p < 0.01; *p < 0.05

A diferencia de tab_model(), htmlreg() arroja, por defecto, los coeficientes en log-odds. Podemos realizar la transformación a OR de la siguiente manera, recurriendo a la función extract() de texreg

or <- texreg::extract(modelo3_survey) #Extraemos info del modelo 
or@coef <- exp(or@coef) #Exponenciamos los coeficientes

Y ahora construimos la tabla

htmlreg(l = list(modelo3_survey, or))
Statistical models
  Model 1 Model 2
(Intercept) 3.30*** 27.09***
  (0.22) (0.22)
edad 0.00 1.00
  (0.00) (0.00)
sexoMujer -0.70*** 0.50***
  (0.05) (0.05)
ciuo08Profesionales, científicos e intelectuales -0.43 0.65
  (0.23) (0.23)
ciuo08Técnicos y profesionales de nivel medio -0.61** 0.54**
  (0.23) (0.23)
ciuo08Personal de apoyo administrativo -0.79** 0.46**
  (0.24) (0.24)
ciuo08Trabajadores de los servicios y vendedores de comercios y mercados -2.19*** 0.11***
  (0.21) (0.21)
ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.84*** 0.06***
  (0.22) (0.22)
ciuo08Artesanos y operarios de oficios -2.49*** 0.08***
  (0.21) (0.21)
ciuo08Operadores de instalaciones, maquinas y ensambladores -1.43*** 0.24***
  (0.22) (0.22)
ciuo08Ocupaciones elementales -2.23*** 0.11***
  (0.21) (0.21)
ciuo08Otros no identificados 11.32*** 82267.21***
  (0.24) (0.24)
ciuo08Sin clasificación -2.07** 0.13**
  (0.65) (0.65)
est_conyugalSin pareja -0.12 0.89
  (0.06) (0.06)
Deviance 25003.52 25003.52
Dispersion 1.02 1.02
Num. obs. 26821 26821
***p < 0.001; **p < 0.01; *p < 0.05

¡Personalicemos la tabla! Hay diversos argumentos (especificados a continuación) que permiten incorporar diversos elementos a la tabla, como pueden ser los intervalos de confianza para cada uno de los coeficientes, titular cada uno de los modelos presentados, agregar notas al pie de la tabla, entre otros. Si les interesa profundizar en la personalización de estas tablas, pueden dirigirse a la documentación de la función.

htmlreg(l = list(modelo3_survey, or), 
          doctype = F, #No incluimos doctype
          caption = "Leyenda", #Leyenda de la tabla 
          caption.above = T, # Presentar la leyenda en la sección superior. Si = FALSE (predeterminado), la leyenda se sitúa bajo la tabla
          custom.model.names = c("Modelo 3", "Modelo 3 (OR)"), #Personalizar los títulos de la tabla 
          ci.force = c(TRUE,TRUE), #Presentar intervalos de confianza
          override.coef = list(coef(modelo3_survey), or@coef), #Sobreescribir los coeficientes a partir de los coeficientes de los modelos
          custom.note = "$^{***}$ p < 0.001; $^{**}$ p < 0.01; $^{*}$ p < 0.05 <br> Errores estándar entre paréntesis. <br> **Nota**: La significancia estadística de los coeficientes en unidades de Odds ratio está calculada en base a los valores $t$, <br> los cuales a su vez se calculan en base a $log(Odds)/SE$") #Incorporamos una nota al pie de la tabla
Leyenda
  Modelo 3 Modelo 3 (OR)
(Intercept) 3.30* 27.09*
  [ 2.87; 3.73] [ 26.65; 27.52]
edad 0.00 1.00*
  [-0.00; 0.01] [ 1.00; 1.01]
sexoMujer -0.70* 0.50*
  [-0.80; -0.59] [ 0.39; 0.60]
ciuo08Profesionales, científicos e intelectuales -0.43 0.65*
  [-0.89; 0.02] [ 0.20; 1.10]
ciuo08Técnicos y profesionales de nivel medio -0.61* 0.54*
  [-1.05; -0.17] [ 0.10; 0.98]
ciuo08Personal de apoyo administrativo -0.79* 0.46
  [-1.27; -0.31] [ -0.02; 0.94]
ciuo08Trabajadores de los servicios y vendedores de comercios y mercados -2.19* 0.11
  [-2.60; -1.78] [ -0.30; 0.52]
ciuo08Agricultores y trabajadores calificados agropecuarios, forestales y pesqueros -2.84* 0.06
  [-3.28; -2.41] [ -0.38; 0.49]
ciuo08Artesanos y operarios de oficios -2.49* 0.08
  [-2.90; -2.07] [ -0.33; 0.50]
ciuo08Operadores de instalaciones, maquinas y ensambladores -1.43* 0.24
  [-1.88; -0.99] [ -0.20; 0.68]
ciuo08Ocupaciones elementales -2.23* 0.11
  [-2.64; -1.82] [ -0.30; 0.52]
ciuo08Otros no identificados 11.32* 82267.21*
  [10.86; 11.78] [82266.75; 82267.67]
ciuo08Sin clasificación -2.07* 0.13
  [-3.34; -0.81] [ -1.14; 1.39]
est_conyugalSin pareja -0.12 0.89*
  [-0.24; 0.00] [ 0.77; 1.01]
Deviance 25003.52 25003.52
Dispersion 1.02 1.02
Num. obs. 26821 26821
$^{***}$ p < 0.001; `\(^{**}\)` p < 0.01; `\(^{*}\)` p < 0.05
Errores estándar entre paréntesis.
**Nota**: La significancia estadística de los coeficientes en unidades de Odds ratio está calculada en base a los valores `\(t\)`,
los cuales a su vez se calculan en base a `\(log(Odds)/SE\)`

b) Gráficos

(Una vez más) tal como en el práctico anterior, utilizaremos la librería sjPlot para graficar nuestros modelos. En particular, su función plot_model() nos permitirá presentar los modelos de manera gráfica. Esta vez, no obstante, el output por defecto es en Odds ratio. `

sjPlot::plot_model(modelo3, 
                   show.p = T,
                   show.values =  T,
                   ci.lvl = 0.95, 
                   title = "Estimación de predictores",
                   vline.color = "green")

7. Resumen

En este práctico aprendimos a

  • Crear modelos de regresión logística binomial
  • Calcular tales modelos incorporando el diseño muestral
  • Representar gráficamente los modelos con tablas y gráficos
  • Personalizar tales tablas y gráficos

8. Recursos

Previous
Next