Introducción

En la sección anterior vimos los aspectos básicos del modelo logístico para analizar la relación entre una variable dependiente binaria y una variable independiente.

En esta sección se seguirá replicando los análisis del capítulo “Redes sociales y actitudes políticas” del reporte El Pulso de la Democracia de la ronda 2018/19. En ese capítulo se analiza una medición de apoyo a la democracia.

Sobre la base de datos

Los datos que vamos a usar deben citarse de la siguiente manera: Fuente: Barómetro de las Américas por el Proyecto de Opinión Pública de América Latina (LAPOP), wwww.LapopSurveys.org. Pueden descargar los datos de manera libre aquí.

Se recomienda limpiar el Environment antes de iniciar esta sección. En este documento nuevamente se carga una base de datos en formato RData. Este formato es eficiente en términos de espacio de almacenamiento. Esta base de datos se encuentra alojada en el repositorio”materials_edu” de la cuenta de LAPOP en GitHub. Mediante la librería rio y el comando import se puede importar esta base de datos desde este repositorio, usando el siguiente código.

library(rio)
lapop18 <- import("https://raw.github.com/lapop-central/materials_edu/main/lapop18.RData")
lapop18 <- subset(lapop18, pais<=35)

Determinantes del uso de redes sociales

En la sección sobre redes sociales, se presenta los resultados de un modelo de regresión logística en el Gráfico 3.4. Como dice el reporte, este gráfico “muestra los resultados de una regresión logística que modela el uso de redes sociales en las medidas del lugar de residencia (urbano versus rural), género (mujer vs. hombre), edad, educación y nivel de riqueza” (p. 59).

Como indica el reporte, “la variable dependiente, usuario de redes sociales, se basa en las respuestas a las tres preguntas sobre tener cuenta de Facebook, Twitter y Whatsapp. Esta medida dicotómica distingue entre las personas que son usuarios de cuentas en una o varias de estas plataformas, comparado con quienes no interactúan con ninguna cuenta en redes sociales” (p. 59). Además, como indica la nota, “quienes tienen una cuenta y dicen nunca acceder al contenido de cualquiera de estas plataformas se consideran no usuarios” (p. 64).

En la sección sobre estadística descriptiva se presenta el código para crear a los usuario de cada red social usando el comando ifelse.

lapop18$fb_user <- ifelse(lapop18$smedia1==1 & lapop18$smedia2<=4, 1, 0)
lapop18$tw_user <- ifelse(lapop18$smedia4==1 & lapop18$smedia5<=4, 1, 0)
lapop18$wa_user <- ifelse(lapop18$smedia7==1 & lapop18$smedia8<=4, 1, 0)

Sobre la base de estas variables, se crea una variable de usuario de cualquier red social. Esta variable es dicotómica y toma el valor 1 si el entrevistado reporta ser usuario de alguna red social evaluada (Facebook o Twitter o WhatsApp).

lapop18$user = ifelse(lapop18$fb_user==1 | lapop18$wa_user==1 | lapop18$tw_user ==1, 1, 0)
table(lapop18$user)
## 
##     0     1 
##  8057 18973

El Gráfico 3.4 muestra los determinantes asociados al uso de redes sociales. Estas variables son:

  • Nivel de riqueza: variable “quintall” en la base de datos.

  • Años de educación: variable “ed” en la base de datos.

  • Edad: variable “q2” en la base de datos.

  • Mujer: variable “mujer” en la base de datos.

  • Área urbana: variable “ur” en la base de datos.

La nota 16 indica que “la edad y la educación se miden en años, recodificadas de 0 a 1, donde 0 indica a los más jóvenes o el nivel más bajo de educación, y 1 los más adultos o el nivel más alto de educación. La riqueza es una variable original, recodificada de 0 a 1, donde 0 indica el menor nivel de riqueza, y 1 el nivel más alto de riqueza. El lugar de residencia se codifica de tal forma que 1 indica la zona urbana y 0 la zona rural. El género se codifica de forma que 1 es mujer y 0 es hombre” (p. 64).

Se procede a recodificar las variables “quintall”, “ed” y “q2” en variables que varíen entre 0 y 1, llamadas “riqueza”, “educ” y “edad”. La variable “mujer” y “urban”, disponibles en la base de datos, son variables dicotómicas que varían en los valores 0 y 1, por lo que no se tienen que recodificar.

lapop18$riqueza = (lapop18$quintall - 1)/4
lapop18$educ = (lapop18$ed)/18
lapop18$edad = (lapop18$q2 - 16)/83
summary(lapop18$riqueza)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.2500  0.5000  0.4935  0.7500  1.0000     423
summary(lapop18$educ)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.3889  0.6111  0.5519  0.6667  1.0000     472
summary(lapop18$edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.1205  0.2530  0.2891  0.4217  1.0000      16

Con el comando summary se comprueba que las variables varíen entre 0 y 1. Se debe notar que estas variables tienen valores perdidos “NA’s” que no serán incluidos en los cálculos.

Modelo de regresión logística

Para evaluar los factores asociados al uso de redes sociales se puede calcular un modelo de regresión. En este caso, a diferencia del modelo de regresión lineal, la variable dependiente no es numérica, sino que se trata de una variable dicotómica, con valores 0, para indicar a los no usuarios, y 1 para identificar a los usuarios de redes sociales.

Con este tipo de variable dependiente no es apropiado usar un modelo de regresión lineal. Las razones para esto son múltiples. Un modelo lineal para aproximar la relación entre una variable dependiente dicotómica y una independiente numérica podría dar valores predichos mayores que 1 o menores que 0, por lo que no es una buena aproximación para calcular probabilidades.

Por el contrario, un modelo de regresión logística restringe los resultados entre 0 y 1, por lo que se puede interpretar como una probabilidad. En nuestro ejemplo, se calcula la probabilidad de ser usuario de redes sociales para diferentes valores de las variables independientes.

Otras razones para no usar un modelo de regresión lineal son más técnicas y tienen que ver con los residuos. Si se usara un modelo de regresión lineal para aproximar la relación entre una variable dependiente dicotómica y una independiente numérica se tendría residuos no normalmente distribuidos y hererocedásticos

El modelo se calcula con el comando glm donde se indica la variable Y y luego las variables independientes. Cada variable independiente se suma al modelo. El modelo incluye efectos fijos por país. En la sección sobre regresión lineal múltiple se explicó el uso de efectos fijos por país para una regresión lineal, es decir, cuando la variable dependiente es numérica. Aquí se usará el mismo comando factor() para incluir variables dummy de cada país, tomando a México (país 1) como referencia.

Este modelo de guarda en un objeto “modelo1” el que se puede describir con el comando summary.

modelo1 <- glm(user ~ riqueza + educ + edad + mujer + urban + factor(pais), family = binomial, data=lapop18)
summary(modelo1)
## 
## Call:
## glm(formula = user ~ riqueza + educ + edad + mujer + urban + 
##     factor(pais), family = binomial, data = lapop18)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.4629  -0.4583   0.2897   0.5852   2.9097  
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)    -0.76385    0.09468  -8.068 7.15e-16 ***
## riqueza         2.03825    0.05708  35.710  < 2e-16 ***
## educ            2.86594    0.09167  31.265  < 2e-16 ***
## edad           -5.69441    0.10458 -54.448  < 2e-16 ***
## mujer           0.14776    0.03556   4.155 3.25e-05 ***
## urban           0.74510    0.04060  18.353  < 2e-16 ***
## factor(pais)2  -0.20677    0.09583  -2.158 0.030965 *  
## factor(pais)3  15.88183   85.89147   0.185 0.853303    
## factor(pais)4  -0.26064    0.09604  -2.714 0.006649 ** 
## factor(pais)5  -0.54242    0.09522  -5.696 1.22e-08 ***
## factor(pais)6   1.92058    0.11207  17.137  < 2e-16 ***
## factor(pais)7  -0.44665    0.09503  -4.700 2.60e-06 ***
## factor(pais)8   0.51202    0.09770   5.241 1.60e-07 ***
## factor(pais)9   0.34890    0.10163   3.433 0.000597 ***
## factor(pais)10  0.09251    0.09715   0.952 0.340992    
## factor(pais)11 -0.06467    0.09814  -0.659 0.509967    
## factor(pais)12  0.88679    0.10191   8.702  < 2e-16 ***
## factor(pais)13  1.00887    0.10400   9.701  < 2e-16 ***
## factor(pais)14  1.89743    0.10781  17.600  < 2e-16 ***
## factor(pais)15  1.11293    0.10544  10.555  < 2e-16 ***
## factor(pais)17  1.41948    0.11000  12.905  < 2e-16 ***
## factor(pais)21  0.80326    0.10380   7.739 1.00e-14 ***
## factor(pais)23  0.54686    0.10213   5.354 8.58e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 31852  on 26274  degrees of freedom
## Residual deviance: 20156  on 26252  degrees of freedom
##   (1767 observations deleted due to missingness)
## AIC: 20202
## 
## Number of Fisher Scoring iterations: 15

Los resultados muestran los coeficientes, los errores estándar, el estadístico Z y el p-value asociado. Con estos datos se puede extraer conclusiones acerca de la dirección de la relación entre cada variable independiente y la variable dependiente. Por ejemplo, la relación entre riqueza y la probabilidad de ser usuario de redes sociales es directa, a medida que aumenta la riqueza aumenta las probabilidades de ser usuario. La relación entre edad y la probabilidad de ser usuario de redes sociales es negativa, a medida que aumenta la edad disminuyen las probabilidades de ser usuario de redes sociales. En ambos casos, dado que el p-value es menor a 0.05, se tienen relaciones estadísticamente significativas.

Los coeficientes de la regresión se interpretan como el cambio en el log odds de la variable dependiente por cada incremento de una unidad de la variable independiente. Por ejemplo, por cada año adicional en la edad, el log odd de ser usuario de una red social (versus no ser usuario) disminuye en 5.69.

Otra manera de presentar estos coeficientes es transformarlos con la función exponencial. De esta manera los resultados se pueden interpretar como aumentos en la probabilidad en un factor de acuerdo al resultado.

Con el código siguiente se realiza esta operación para las principales variables independientes, excluyendo a las variables dummy por país.

exp(coef(modelo1)[1:6])
##  (Intercept)      riqueza         educ         edad        mujer        urban 
##  0.465868370  7.677171277 17.565547484  0.003364729  1.159238630  2.106646383

De esta manera se puede interpretar que un aumento de una unidad en la variable riqueza aumenta la probabilidad de ser usuario de una red social en un factor de 7.7. Como la variable riqueza fue recodificada para que varíe entre 0 y 1, un aumento de una unidad es el máximo aumento posible.

Para el caso de las mujeres, se puede concluir que las mujeres tienen un 15.9% más de probabilidades de ser usuarias de una red social que los hombres.

Para presentar los resultados de una manera más ordenada, se pueden usar varias librerías y comandos. En esta sección usamos la librería jtools y el comando summs. Este comando nos brinda además estadísticos para evaluar el ajuste del modelo. Por ejemplo, el estadístico de \(\chi^2\) evalúa el modelo multivariado versus el modelo nulo. Como se obtiene un estadístico grande y un p-value menor a 0.05, se concluye que el modelo se ajusta a los datos.

Otro estadístico es el Pseudo-\(R^2\), que aunque no se puede interpretar como el coeficiente de determinación de una regresión lineal, da una idea de la capacidad explicativa del modelo.

#library(stargazer)
#stargazer(modelo1[1:6], align=T, type = 'text')
library(jtools)
summ(modelo1)
## MODEL INFO:
## Observations: 26275 (1767 missing obs. deleted)
## Dependent Variable: user
## Type: Generalized linear model
##   Family: binomial 
##   Link function: logit 
## 
## MODEL FIT:
## χ²(22) = 11696.30, p = 0.00
## Pseudo-R² (Cragg-Uhler) = 0.51
## Pseudo-R² (McFadden) = 0.37
## AIC = 20201.95, BIC = 20390.01 
## 
## Standard errors: MLE
## ----------------------------------------------------
##                         Est.    S.E.   z val.      p
## -------------------- ------- ------- -------- ------
## (Intercept)            -0.76    0.09    -8.07   0.00
## riqueza                 2.04    0.06    35.71   0.00
## educ                    2.87    0.09    31.27   0.00
## edad                   -5.69    0.10   -54.45   0.00
## mujer                   0.15    0.04     4.16   0.00
## urban                   0.75    0.04    18.35   0.00
## factor(pais)2          -0.21    0.10    -2.16   0.03
## factor(pais)3          15.88   85.89     0.18   0.85
## factor(pais)4          -0.26    0.10    -2.71   0.01
## factor(pais)5          -0.54    0.10    -5.70   0.00
## factor(pais)6           1.92    0.11    17.14   0.00
## factor(pais)7          -0.45    0.10    -4.70   0.00
## factor(pais)8           0.51    0.10     5.24   0.00
## factor(pais)9           0.35    0.10     3.43   0.00
## factor(pais)10          0.09    0.10     0.95   0.34
## factor(pais)11         -0.06    0.10    -0.66   0.51
## factor(pais)12          0.89    0.10     8.70   0.00
## factor(pais)13          1.01    0.10     9.70   0.00
## factor(pais)14          1.90    0.11    17.60   0.00
## factor(pais)15          1.11    0.11    10.56   0.00
## factor(pais)17          1.42    0.11    12.90   0.00
## factor(pais)21          0.80    0.10     7.74   0.00
## factor(pais)23          0.55    0.10     5.35   0.00
## ----------------------------------------------------

El Gráfico 3.4 muestra los coeficientes de cada variable y el intervalo de confianza al 95% de este estimado. Se incluye una línea vertical en el punto 0. Si un intervalo de confianza cruza esta línea vertical, se puede decir que no tiene una relación estadísticamente significativa con la variable dependiente de apoyo al sistema. Los intervalos de confianza que no cruzan esta línea y que se encuentran a la derecha (izquierda) de esta línea tienen una relación positiva (negativa) con el apoyo al sistema, es decir, cuando aumenta esta variable, el apoyo al sistema promedio aumenta (disminuye). En este ejemplo, las cinco variables son estadísticamente significativas y muestran tienen una relación positiva con el apoyo al sistema. Para aproximar un gráfico similar al mostrado en el reporte, se puede usar la librería jtools y el comando plot_summs. Se selecciona solo las variables independientes de relevancia.

library(jtools)
plot_summs(modelo1, coefs=c("Nivel de riqueza"="riqueza", "Años de educación"="educ", 
                            "Edad"="edad", "Mujer"="mujer", "Área urbana"="urban"))
## Registered S3 methods overwritten by 'broom':
##   method            from  
##   tidy.glht         jtools
##   tidy.summary.glht jtools
## Loading required namespace: broom.mixed
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred

El gráfico producido es similar y sigue la misma tendencia que el Gráfico 3.4 presentado en el informe. Sin embargo, no presenta los mismos resultados pues, como indica el reporte, “los puntos en el Gráfico 3.4 son los cambios estimados en la probabilidad de que la variable dependiente tome un valor de”1” (usa redes sociales), dado un cambio del valor mínimo al máximo de la variable independiente” (p. 59). En este gráfico producido en esta sección se grafica el coeficiente de la regresión logística.

Resumen

En esta sección hemos usado un modelo de regresión ligística para modelar la relación de variables independientes con una variable dependiente dicotómica. En particular, se ha presentado un modelo con cinco predictores del uso de redes sociales. Este modelo se ha presentado de manera estándar en una tabla de resultados y mediante un gráfico similar al Gráfico 3.4 del reporte.

Incluyendo el efecto de diseño

Los cálculos realizados no incluyen el efecto de diseño muestral. Para hacer esto se debe considerar el factor de expansión. Se hizo una introducción al uso del factor de expansión aquí. En este parte usaremos la librería survey.

Usaremos el comando svydesign (similar al comando svyset en STATA). Con este comando se crea un nuevo objeto llamado “lapop.design”, que guarda la información de las variables contenidas en el dataframe, incluyendo en los cálculos el factor de expansión. Por tanto, si luego se creara una nueva variable, se tendría que calcular nuevamente esté comando para que este objeto “lapop.design” incluya esta nueva variable.

library(survey)
lapop.design<-svydesign(ids = ~upm, strata = ~estratopri, weights = ~weight1500, nest=TRUE, data=lapop18)

La librería survey incluye el comando svyglm que permite calcular un modelo de regresión logística. Las mismas variables usadas en el modelo 1 se pueden incluir en este comando. Se tiene que especificar que se quiere calcular un modelo binomial con la especificación family=quasibinomial. También se tiene que especificar el diseño que se utiliza y el tratamiento de los valores perdidos. Este cálculo se guarda en un objeto “modelo2”. Se usa el comando summ de la librería jtools para describir el modelo.

modelo2 <- svyglm(user ~ riqueza + educ + edad + mujer + urban + factor(pais), family=quasibinomial, design=lapop.design, na.action = na.omit)
summ(modelo2)
## MODEL INFO:
## Observations: 26275
## Dependent Variable: user
## Type: Analysis of complex survey design 
##  Family: quasibinomial 
##  Link function: logit 
## 
## MODEL FIT:
## Pseudo-R² (Cragg-Uhler) = 0.51
## Pseudo-R² (McFadden) = 0.37
## AIC =  NA 
## 
## ---------------------------------------------------
##                         Est.   S.E.   t val.      p
## -------------------- ------- ------ -------- ------
## (Intercept)            -0.76   0.10    -7.37   0.00
## riqueza                 2.03   0.06    33.27   0.00
## educ                    2.86   0.09    30.20   0.00
## edad                   -5.69   0.11   -53.54   0.00
## mujer                   0.15   0.04     4.33   0.00
## urban                   0.75   0.05    15.81   0.00
## factor(pais)2          -0.21   0.11    -1.80   0.07
## factor(pais)3          15.89   0.15   103.41   0.00
## factor(pais)4          -0.26   0.09    -2.75   0.01
## factor(pais)5          -0.54   0.11    -5.03   0.00
## factor(pais)6           1.92   0.14    13.65   0.00
## factor(pais)7          -0.45   0.13    -3.56   0.00
## factor(pais)8           0.51   0.11     4.78   0.00
## factor(pais)9           0.35   0.11     3.27   0.00
## factor(pais)10          0.09   0.11     0.88   0.38
## factor(pais)11         -0.06   0.11    -0.59   0.55
## factor(pais)12          0.89   0.10     8.56   0.00
## factor(pais)13          1.01   0.11     8.81   0.00
## factor(pais)14          1.90   0.12    16.04   0.00
## factor(pais)15          1.16   0.13     9.27   0.00
## factor(pais)17          1.42   0.12    11.55   0.00
## factor(pais)21          0.80   0.12     6.93   0.00
## factor(pais)23          0.55   0.11     4.82   0.00
## ---------------------------------------------------
## 
## Estimated dispersion parameter = 1.01

De la misma manera que con el modelo 1, estos resultados también se pueden graficar usando el comando plot_summs, seleccionando las variables que se quieren mostrar.

plot_summs(modelo2, coefs=c("Nivel de riqueza"="riqueza", "Años de educación"="educ", 
                            "Edad"="edad", "Mujer"="mujer", "Área urbana"="urban"))

De la misma manera que con los resultados que no incluyen el efecto de diseño, este gráfico es similar al reportado en el informe, aunque no es exactamente igual.

LS0tCnRpdGxlOiAiUmVncmVzacOzbiBsb2fDrXN0aWNhIGNvbiBsb3MgZGF0b3MgZGVsIEJhcsOzbWV0cm8gZGUgbGFzIEFtw6lyaWNhcyIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29sbGFwc2VkOiBmYWxzZQogICAgbnVtYmVyX3NlY3Rpb25zOiBmYWxzZQogICAgdG9jX2RlcHRoOiAxCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICB0aGVtZTogZmxhdGx5CiAgICBkZl9wcmludDogcGFnZWQKICAgIHNlbGZfY29udGFpbmVkOiBubwogICAga2VlcF9tZDogeWVzCmVkaXRvcl9vcHRpb25zOiAKICBtYXJrZG93bjogCiAgICB3cmFwOiBzZW50ZW5jZQotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKIyBJbnRyb2R1Y2Npw7NuCgpFbiBsYSBzZWNjacOzbiBhbnRlcmlvciB2aW1vcyBsb3MgYXNwZWN0b3MgYsOhc2ljb3MgZGVsIG1vZGVsbyBsb2fDrXN0aWNvIHBhcmEgYW5hbGl6YXIgbGEgcmVsYWNpw7NuIGVudHJlIHVuYSB2YXJpYWJsZSBkZXBlbmRpZW50ZSBiaW5hcmlhIHkgdW5hIHZhcmlhYmxlIGluZGVwZW5kaWVudGUuCgpFbiBlc3RhIHNlY2Npw7NuIHNlIHNlZ3VpcsOhIHJlcGxpY2FuZG8gbG9zIGFuw6FsaXNpcyBkZWwgY2Fww610dWxvICJSZWRlcyBzb2NpYWxlcyB5IGFjdGl0dWRlcyBwb2zDrXRpY2FzIiBkZWwgcmVwb3J0ZSBbRWwgUHVsc28gZGUgbGEgRGVtb2NyYWNpYV0oaHR0cHM6Ly93d3cudmFuZGVyYmlsdC5lZHUvbGFwb3AvYWIyMDE4LzIwMTgtMTlfQW1lcmljYXNCYXJvbWV0ZXJfUmVnaW9uYWxfUmVwb3J0X1NwYW5pc2hfV18wMy4yNy4yMC5wZGYpIGRlIGxhIHJvbmRhIDIwMTgvMTkuCkVuIGVzZSBjYXDDrXR1bG8gc2UgYW5hbGl6YSB1bmEgbWVkaWNpw7NuIGRlIGFwb3lvIGEgbGEgZGVtb2NyYWNpYS4KCiMgU29icmUgbGEgYmFzZSBkZSBkYXRvcwoKTG9zIGRhdG9zIHF1ZSB2YW1vcyBhIHVzYXIgZGViZW4gY2l0YXJzZSBkZSBsYSBzaWd1aWVudGUgbWFuZXJhOiBGdWVudGU6IEJhcsOzbWV0cm8gZGUgbGFzIEFtw6lyaWNhcyBwb3IgZWwgUHJveWVjdG8gZGUgT3BpbmnDs24gUMO6YmxpY2EgZGUgQW3DqXJpY2EgTGF0aW5hIChMQVBPUCksIHd3d3cuTGFwb3BTdXJ2ZXlzLm9yZy4KUHVlZGVuIGRlc2NhcmdhciBsb3MgZGF0b3MgZGUgbWFuZXJhIGxpYnJlIFthcXXDrV0oaHR0cDovL2RhdGFzZXRzLmFtZXJpY2FzYmFyb21ldGVyLm9yZy9kYXRhYmFzZS9sb2dpbi5waHApLgoKU2UgcmVjb21pZW5kYSBsaW1waWFyIGVsIEVudmlyb25tZW50IGFudGVzIGRlIGluaWNpYXIgZXN0YSBzZWNjacOzbi4KRW4gZXN0ZSBkb2N1bWVudG8gbnVldmFtZW50ZSBzZSBjYXJnYSB1bmEgYmFzZSBkZSBkYXRvcyBlbiBmb3JtYXRvIFJEYXRhLgpFc3RlIGZvcm1hdG8gZXMgZWZpY2llbnRlIGVuIHTDqXJtaW5vcyBkZSBlc3BhY2lvIGRlIGFsbWFjZW5hbWllbnRvLgpFc3RhIGJhc2UgZGUgZGF0b3Mgc2UgZW5jdWVudHJhIGFsb2phZGEgZW4gZWwgcmVwb3NpdG9yaW8ibWF0ZXJpYWxzX2VkdSIgZGUgbGEgY3VlbnRhIGRlIExBUE9QIGVuIEdpdEh1Yi4KTWVkaWFudGUgbGEgbGlicmVyw61hIGByaW9gIHkgZWwgY29tYW5kbyBgaW1wb3J0YCBzZSBwdWVkZSBpbXBvcnRhciBlc3RhIGJhc2UgZGUgZGF0b3MgZGVzZGUgZXN0ZSByZXBvc2l0b3JpbywgdXNhbmRvIGVsIHNpZ3VpZW50ZSBjw7NkaWdvLgoKYGBge3IgYmFzZSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbGlicmFyeShyaW8pCmxhcG9wMTggPC0gaW1wb3J0KCJodHRwczovL3Jhdy5naXRodWIuY29tL2xhcG9wLWNlbnRyYWwvbWF0ZXJpYWxzX2VkdS9tYWluL2xhcG9wMTguUkRhdGEiKQpsYXBvcDE4IDwtIHN1YnNldChsYXBvcDE4LCBwYWlzPD0zNSkKYGBgCgojIERldGVybWluYW50ZXMgZGVsIHVzbyBkZSByZWRlcyBzb2NpYWxlcwoKRW4gbGEgc2VjY2nDs24gc29icmUgcmVkZXMgc29jaWFsZXMsIHNlIHByZXNlbnRhIGxvcyByZXN1bHRhZG9zIGRlIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGxvZ8Otc3RpY2EgZW4gZWwgR3LDoWZpY28gMy40LgpDb21vIGRpY2UgZWwgcmVwb3J0ZSwgZXN0ZSBncsOhZmljbyAibXVlc3RyYSBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgcmVncmVzacOzbiBsb2fDrXN0aWNhIHF1ZSBtb2RlbGEgZWwgdXNvIGRlIHJlZGVzIHNvY2lhbGVzIGVuIGxhcyBtZWRpZGFzIGRlbCBsdWdhciBkZSByZXNpZGVuY2lhICh1cmJhbm8gdmVyc3VzIHJ1cmFsKSwgZ8OpbmVybyAobXVqZXIgdnMuIGhvbWJyZSksIGVkYWQsIGVkdWNhY2nDs24geSBuaXZlbCBkZSByaXF1ZXphIiAocC4gNTkpLgoKIVtdKEdyYWYzLjQucG5nKXt3aWR0aD0iNDc5In0KCkNvbW8gaW5kaWNhIGVsIHJlcG9ydGUsICJsYSB2YXJpYWJsZSBkZXBlbmRpZW50ZSwgdXN1YXJpbyBkZSByZWRlcyBzb2NpYWxlcywgc2UgYmFzYSBlbiBsYXMgcmVzcHVlc3RhcyBhIGxhcyB0cmVzIHByZWd1bnRhcyBzb2JyZSB0ZW5lciBjdWVudGEgZGUgRmFjZWJvb2ssIFR3aXR0ZXIgeSBXaGF0c2FwcC4gRXN0YSBtZWRpZGEgZGljb3TDs21pY2EgZGlzdGluZ3VlIGVudHJlIGxhcyBwZXJzb25hcyBxdWUgc29uIHVzdWFyaW9zIGRlIGN1ZW50YXMgZW4gdW5hIG8gdmFyaWFzIGRlIGVzdGFzIHBsYXRhZm9ybWFzLCBjb21wYXJhZG8gY29uIHF1aWVuZXMgbm8gaW50ZXJhY3TDumFuIGNvbiBuaW5ndW5hIGN1ZW50YSBlbiByZWRlcyBzb2NpYWxlcyIgKHAuIDU5KS4KQWRlbcOhcywgY29tbyBpbmRpY2EgbGEgbm90YSwgInF1aWVuZXMgdGllbmVuIHVuYSBjdWVudGEgeSBkaWNlbiBudW5jYSBhY2NlZGVyIGFsIGNvbnRlbmlkbyBkZSBjdWFscXVpZXJhIGRlIGVzdGFzIHBsYXRhZm9ybWFzIHNlIGNvbnNpZGVyYW4gbm8gdXN1YXJpb3MiIChwLiA2NCkuCgpFbiBsYSBzZWNjacOzbiBzb2JyZSBbZXN0YWTDrXN0aWNhIGRlc2NyaXB0aXZhXShodHRwczovL2FydHVyb21hbGRvbmFkby5naXRodWIuaW8vQmFyb21ldHJvRWR1X1dlYi9EZXNjcmlwdGl2b3MuaHRtbCkgc2UgcHJlc2VudGEgZWwgY8OzZGlnbyBwYXJhIGNyZWFyIGEgbG9zIHVzdWFyaW8gZGUgY2FkYSByZWQgc29jaWFsIHVzYW5kbyBlbCBjb21hbmRvIGBpZmVsc2VgLgoKYGBge3IgdXN1YXJpb3NyZWRlc30KbGFwb3AxOCRmYl91c2VyIDwtIGlmZWxzZShsYXBvcDE4JHNtZWRpYTE9PTEgJiBsYXBvcDE4JHNtZWRpYTI8PTQsIDEsIDApCmxhcG9wMTgkdHdfdXNlciA8LSBpZmVsc2UobGFwb3AxOCRzbWVkaWE0PT0xICYgbGFwb3AxOCRzbWVkaWE1PD00LCAxLCAwKQpsYXBvcDE4JHdhX3VzZXIgPC0gaWZlbHNlKGxhcG9wMTgkc21lZGlhNz09MSAmIGxhcG9wMTgkc21lZGlhODw9NCwgMSwgMCkKYGBgCgpTb2JyZSBsYSBiYXNlIGRlIGVzdGFzIHZhcmlhYmxlcywgc2UgY3JlYSB1bmEgdmFyaWFibGUgZGUgdXN1YXJpbyBkZSBjdWFscXVpZXIgcmVkIHNvY2lhbC4KRXN0YSB2YXJpYWJsZSBlcyBkaWNvdMOzbWljYSB5IHRvbWEgZWwgdmFsb3IgMSBzaSBlbCBlbnRyZXZpc3RhZG8gcmVwb3J0YSBzZXIgdXN1YXJpbyBkZSBhbGd1bmEgcmVkIHNvY2lhbCBldmFsdWFkYSAoRmFjZWJvb2sgbyBUd2l0dGVyIG8gV2hhdHNBcHApLgoKYGBge3IgdXN1YXJpb30KbGFwb3AxOCR1c2VyID0gaWZlbHNlKGxhcG9wMTgkZmJfdXNlcj09MSB8IGxhcG9wMTgkd2FfdXNlcj09MSB8IGxhcG9wMTgkdHdfdXNlciA9PTEsIDEsIDApCnRhYmxlKGxhcG9wMTgkdXNlcikKYGBgCgpFbCBHcsOhZmljbyAzLjQgbXVlc3RyYSBsb3MgZGV0ZXJtaW5hbnRlcyBhc29jaWFkb3MgYWwgdXNvIGRlIHJlZGVzIHNvY2lhbGVzLgpFc3RhcyB2YXJpYWJsZXMgc29uOgoKLSAgIE5pdmVsIGRlIHJpcXVlemE6IHZhcmlhYmxlICJxdWludGFsbCIgZW4gbGEgYmFzZSBkZSBkYXRvcy4KCi0gICBBw7FvcyBkZSBlZHVjYWNpw7NuOiB2YXJpYWJsZSAiZWQiIGVuIGxhIGJhc2UgZGUgZGF0b3MuCgotICAgRWRhZDogdmFyaWFibGUgInEyIiBlbiBsYSBiYXNlIGRlIGRhdG9zLgoKLSAgIE11amVyOiB2YXJpYWJsZSAibXVqZXIiIGVuIGxhIGJhc2UgZGUgZGF0b3MuCgotICAgw4FyZWEgdXJiYW5hOiB2YXJpYWJsZSAidXIiIGVuIGxhIGJhc2UgZGUgZGF0b3MuCgpMYSBub3RhIDE2IGluZGljYSBxdWUgImxhIGVkYWQgeSBsYSBlZHVjYWNpw7NuIHNlIG1pZGVuIGVuIGHDsW9zLCByZWNvZGlmaWNhZGFzIGRlIDAgYSAxLCBkb25kZSAwIGluZGljYSBhIGxvcyBtw6FzIGrDs3ZlbmVzIG8gZWwgbml2ZWwgbcOhcyBiYWpvIGRlIGVkdWNhY2nDs24sIHkgMSBsb3MgbcOhcyBhZHVsdG9zIG8gZWwgbml2ZWwgbcOhcyBhbHRvIGRlIGVkdWNhY2nDs24uIExhIHJpcXVlemEgZXMgdW5hIHZhcmlhYmxlIG9yaWdpbmFsLCByZWNvZGlmaWNhZGEgZGUgMCBhIDEsIGRvbmRlIDAgaW5kaWNhIGVsIG1lbm9yIG5pdmVsIGRlIHJpcXVlemEsIHkgMSBlbCBuaXZlbCBtw6FzIGFsdG8gZGUgcmlxdWV6YS4gRWwgbHVnYXIgZGUgcmVzaWRlbmNpYSBzZSBjb2RpZmljYSBkZSB0YWwgZm9ybWEgcXVlIDEgaW5kaWNhIGxhIHpvbmEgdXJiYW5hIHkgMCBsYSB6b25hIHJ1cmFsLiBFbCBnw6luZXJvIHNlIGNvZGlmaWNhIGRlIGZvcm1hIHF1ZSAxIGVzIG11amVyIHkgMCBlcyBob21icmUiIChwLiA2NCkuCgpTZSBwcm9jZWRlIGEgcmVjb2RpZmljYXIgbGFzIHZhcmlhYmxlcyAicXVpbnRhbGwiLCAiZWQiIHkgInEyIiBlbiB2YXJpYWJsZXMgcXVlIHZhcsOtZW4gZW50cmUgMCB5IDEsIGxsYW1hZGFzICJyaXF1ZXphIiwgImVkdWMiIHkgImVkYWQiLgpMYSB2YXJpYWJsZSAibXVqZXIiIHkgInVyYmFuIiwgZGlzcG9uaWJsZXMgZW4gbGEgYmFzZSBkZSBkYXRvcywgc29uIHZhcmlhYmxlcyBkaWNvdMOzbWljYXMgcXVlIHZhcsOtYW4gZW4gbG9zIHZhbG9yZXMgMCB5IDEsIHBvciBsbyBxdWUgbm8gc2UgdGllbmVuIHF1ZSByZWNvZGlmaWNhci4KCmBgYHtyIHJlY29kaWZpY2FyfQpsYXBvcDE4JHJpcXVlemEgPSAobGFwb3AxOCRxdWludGFsbCAtIDEpLzQKbGFwb3AxOCRlZHVjID0gKGxhcG9wMTgkZWQpLzE4CmxhcG9wMTgkZWRhZCA9IChsYXBvcDE4JHEyIC0gMTYpLzgzCnN1bW1hcnkobGFwb3AxOCRyaXF1ZXphKQpzdW1tYXJ5KGxhcG9wMTgkZWR1YykKc3VtbWFyeShsYXBvcDE4JGVkYWQpCmBgYAoKQ29uIGVsIGNvbWFuZG8gYHN1bW1hcnlgIHNlIGNvbXBydWViYSBxdWUgbGFzIHZhcmlhYmxlcyB2YXLDrWVuIGVudHJlIDAgeSAxLgpTZSBkZWJlIG5vdGFyIHF1ZSBlc3RhcyB2YXJpYWJsZXMgdGllbmVuIHZhbG9yZXMgcGVyZGlkb3MgIk5BJ3MiIHF1ZSBubyBzZXLDoW4gaW5jbHVpZG9zIGVuIGxvcyBjw6FsY3Vsb3MuCgojIE1vZGVsbyBkZSByZWdyZXNpw7NuIGxvZ8Otc3RpY2EKClBhcmEgZXZhbHVhciBsb3MgZmFjdG9yZXMgYXNvY2lhZG9zIGFsIHVzbyBkZSByZWRlcyBzb2NpYWxlcyBzZSBwdWVkZSBjYWxjdWxhciB1biBtb2RlbG8gZGUgcmVncmVzacOzbi4KRW4gZXN0ZSBjYXNvLCBhIGRpZmVyZW5jaWEgZGVsIG1vZGVsbyBkZSByZWdyZXNpw7NuIGxpbmVhbCwgbGEgdmFyaWFibGUgZGVwZW5kaWVudGUgbm8gZXMgbnVtw6lyaWNhLCBzaW5vIHF1ZSBzZSB0cmF0YSBkZSB1bmEgdmFyaWFibGUgZGljb3TDs21pY2EsIGNvbiB2YWxvcmVzIDAsIHBhcmEgaW5kaWNhciBhIGxvcyBubyB1c3VhcmlvcywgeSAxIHBhcmEgaWRlbnRpZmljYXIgYSBsb3MgdXN1YXJpb3MgZGUgcmVkZXMgc29jaWFsZXMuCgpDb24gZXN0ZSB0aXBvIGRlIHZhcmlhYmxlIGRlcGVuZGllbnRlIG5vIGVzIGFwcm9waWFkbyB1c2FyIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGxpbmVhbC4KTGFzIHJhem9uZXMgcGFyYSBlc3RvIHNvbiBtw7psdGlwbGVzLgpVbiBtb2RlbG8gbGluZWFsIHBhcmEgYXByb3hpbWFyIGxhIHJlbGFjacOzbiBlbnRyZSB1bmEgdmFyaWFibGUgZGVwZW5kaWVudGUgZGljb3TDs21pY2EgeSB1bmEgaW5kZXBlbmRpZW50ZSBudW3DqXJpY2EgcG9kcsOtYSBkYXIgdmFsb3JlcyBwcmVkaWNob3MgbWF5b3JlcyBxdWUgMSBvIG1lbm9yZXMgcXVlIDAsIHBvciBsbyBxdWUgbm8gZXMgdW5hIGJ1ZW5hIGFwcm94aW1hY2nDs24gcGFyYSBjYWxjdWxhciBwcm9iYWJpbGlkYWRlcy4KClBvciBlbCBjb250cmFyaW8sIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGxvZ8Otc3RpY2EgcmVzdHJpbmdlIGxvcyByZXN1bHRhZG9zIGVudHJlIDAgeSAxLCBwb3IgbG8gcXVlIHNlIHB1ZWRlIGludGVycHJldGFyIGNvbW8gdW5hIHByb2JhYmlsaWRhZC4KRW4gbnVlc3RybyBlamVtcGxvLCBzZSBjYWxjdWxhIGxhIHByb2JhYmlsaWRhZCBkZSBzZXIgdXN1YXJpbyBkZSByZWRlcyBzb2NpYWxlcyBwYXJhIGRpZmVyZW50ZXMgdmFsb3JlcyBkZSBsYXMgdmFyaWFibGVzIGluZGVwZW5kaWVudGVzLgoKT3RyYXMgcmF6b25lcyBwYXJhIG5vIHVzYXIgdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gbGluZWFsIHNvbiBtw6FzIHTDqWNuaWNhcyB5IHRpZW5lbiBxdWUgdmVyIGNvbiBsb3MgcmVzaWR1b3MuClNpIHNlIHVzYXJhIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGxpbmVhbCBwYXJhIGFwcm94aW1hciBsYSByZWxhY2nDs24gZW50cmUgdW5hIHZhcmlhYmxlIGRlcGVuZGllbnRlIGRpY290w7NtaWNhIHkgdW5hIGluZGVwZW5kaWVudGUgbnVtw6lyaWNhIHNlIHRlbmRyw61hIHJlc2lkdW9zIG5vIG5vcm1hbG1lbnRlIGRpc3RyaWJ1aWRvcyB5IGhlcmVyb2NlZMOhc3RpY29zCgpFbCBtb2RlbG8gc2UgY2FsY3VsYSBjb24gZWwgY29tYW5kbyBgZ2xtYCBkb25kZSBzZSBpbmRpY2EgbGEgdmFyaWFibGUgWSB5IGx1ZWdvIGxhcyB2YXJpYWJsZXMgaW5kZXBlbmRpZW50ZXMuCkNhZGEgdmFyaWFibGUgaW5kZXBlbmRpZW50ZSBzZSBzdW1hIGFsIG1vZGVsby4KRWwgbW9kZWxvIGluY2x1eWUgZWZlY3RvcyBmaWpvcyBwb3IgcGHDrXMuCkVuIGxhIHNlY2Npw7NuIHNvYnJlIFtyZWdyZXNpw7NuIGxpbmVhbCBtw7psdGlwbGVdKGh0dHBzOi8vYXJ0dXJvbWFsZG9uYWRvLmdpdGh1Yi5pby9CYXJvbWV0cm9FZHVfV2ViL3JlZ3Jlc2lvbjIuaHRtbCNJbmNsdXllbmRvX3ZhcmlhYmxlc19kZV9jb250cm9sKSBzZSBleHBsaWPDsyBlbCB1c28gZGUgZWZlY3RvcyBmaWpvcyBwb3IgcGHDrXMgcGFyYSB1bmEgcmVncmVzacOzbiBsaW5lYWwsIGVzIGRlY2lyLCBjdWFuZG8gbGEgdmFyaWFibGUgZGVwZW5kaWVudGUgZXMgbnVtw6lyaWNhLgpBcXXDrSBzZSB1c2Fyw6EgZWwgbWlzbW8gY29tYW5kbyBgZmFjdG9yKClgIHBhcmEgaW5jbHVpciB2YXJpYWJsZXMgZHVtbXkgZGUgY2FkYSBwYcOtcywgdG9tYW5kbyBhIE3DqXhpY28gKHBhw61zIDEpIGNvbW8gcmVmZXJlbmNpYS4KCkVzdGUgbW9kZWxvIGRlIGd1YXJkYSBlbiB1biBvYmpldG8gIm1vZGVsbzEiIGVsIHF1ZSBzZSBwdWVkZSBkZXNjcmliaXIgY29uIGVsIGNvbWFuZG8gYHN1bW1hcnlgLgoKYGBge3IgbW9kZWxvfQptb2RlbG8xIDwtIGdsbSh1c2VyIH4gcmlxdWV6YSArIGVkdWMgKyBlZGFkICsgbXVqZXIgKyB1cmJhbiArIGZhY3RvcihwYWlzKSwgZmFtaWx5ID0gYmlub21pYWwsIGRhdGE9bGFwb3AxOCkKc3VtbWFyeShtb2RlbG8xKQpgYGAKCkxvcyByZXN1bHRhZG9zIG11ZXN0cmFuIGxvcyBjb2VmaWNpZW50ZXMsIGxvcyBlcnJvcmVzIGVzdMOhbmRhciwgZWwgZXN0YWTDrXN0aWNvIFogeSBlbCBwLXZhbHVlIGFzb2NpYWRvLgpDb24gZXN0b3MgZGF0b3Mgc2UgcHVlZGUgZXh0cmFlciBjb25jbHVzaW9uZXMgYWNlcmNhIGRlIGxhIGRpcmVjY2nDs24gZGUgbGEgcmVsYWNpw7NuIGVudHJlIGNhZGEgdmFyaWFibGUgaW5kZXBlbmRpZW50ZSB5IGxhIHZhcmlhYmxlIGRlcGVuZGllbnRlLgpQb3IgZWplbXBsbywgbGEgcmVsYWNpw7NuIGVudHJlIHJpcXVlemEgeSBsYSBwcm9iYWJpbGlkYWQgZGUgc2VyIHVzdWFyaW8gZGUgcmVkZXMgc29jaWFsZXMgZXMgZGlyZWN0YSwgYSBtZWRpZGEgcXVlIGF1bWVudGEgbGEgcmlxdWV6YSBhdW1lbnRhIGxhcyBwcm9iYWJpbGlkYWRlcyBkZSBzZXIgdXN1YXJpby4KTGEgcmVsYWNpw7NuIGVudHJlIGVkYWQgeSBsYSBwcm9iYWJpbGlkYWQgZGUgc2VyIHVzdWFyaW8gZGUgcmVkZXMgc29jaWFsZXMgZXMgbmVnYXRpdmEsIGEgbWVkaWRhIHF1ZSBhdW1lbnRhIGxhIGVkYWQgZGlzbWludXllbiBsYXMgcHJvYmFiaWxpZGFkZXMgZGUgc2VyIHVzdWFyaW8gZGUgcmVkZXMgc29jaWFsZXMuCkVuIGFtYm9zIGNhc29zLCBkYWRvIHF1ZSBlbCBwLXZhbHVlIGVzIG1lbm9yIGEgMC4wNSwgc2UgdGllbmVuIHJlbGFjaW9uZXMgZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YXMuCgpMb3MgY29lZmljaWVudGVzIGRlIGxhIHJlZ3Jlc2nDs24gc2UgaW50ZXJwcmV0YW4gY29tbyBlbCBjYW1iaW8gZW4gZWwgbG9nIG9kZHMgZGUgbGEgdmFyaWFibGUgZGVwZW5kaWVudGUgcG9yIGNhZGEgaW5jcmVtZW50byBkZSB1bmEgdW5pZGFkIGRlIGxhIHZhcmlhYmxlIGluZGVwZW5kaWVudGUuClBvciBlamVtcGxvLCBwb3IgY2FkYSBhw7FvIGFkaWNpb25hbCBlbiBsYSBlZGFkLCBlbCBsb2cgb2RkIGRlIHNlciB1c3VhcmlvIGRlIHVuYSByZWQgc29jaWFsICh2ZXJzdXMgbm8gc2VyIHVzdWFyaW8pIGRpc21pbnV5ZSBlbiA1LjY5LgoKT3RyYSBtYW5lcmEgZGUgcHJlc2VudGFyIGVzdG9zIGNvZWZpY2llbnRlcyBlcyB0cmFuc2Zvcm1hcmxvcyBjb24gbGEgZnVuY2nDs24gZXhwb25lbmNpYWwuCkRlIGVzdGEgbWFuZXJhIGxvcyByZXN1bHRhZG9zIHNlIHB1ZWRlbiBpbnRlcnByZXRhciBjb21vIGF1bWVudG9zIGVuIGxhIHByb2JhYmlsaWRhZCBlbiB1biBmYWN0b3IgZGUgYWN1ZXJkbyBhbCByZXN1bHRhZG8uCgpDb24gZWwgY8OzZGlnbyBzaWd1aWVudGUgc2UgcmVhbGl6YSBlc3RhIG9wZXJhY2nDs24gcGFyYSBsYXMgcHJpbmNpcGFsZXMgdmFyaWFibGVzIGluZGVwZW5kaWVudGVzLCBleGNsdXllbmRvIGEgbGFzIHZhcmlhYmxlcyBkdW1teSBwb3IgcGHDrXMuCgpgYGB7ciBvZGRzfQpleHAoY29lZihtb2RlbG8xKVsxOjZdKQpgYGAKCkRlIGVzdGEgbWFuZXJhIHNlIHB1ZWRlIGludGVycHJldGFyIHF1ZSB1biBhdW1lbnRvIGRlIHVuYSB1bmlkYWQgZW4gbGEgdmFyaWFibGUgcmlxdWV6YSBhdW1lbnRhIGxhIHByb2JhYmlsaWRhZCBkZSBzZXIgdXN1YXJpbyBkZSB1bmEgcmVkIHNvY2lhbCBlbiB1biBmYWN0b3IgZGUgNy43LgpDb21vIGxhIHZhcmlhYmxlIHJpcXVlemEgZnVlIHJlY29kaWZpY2FkYSBwYXJhIHF1ZSB2YXLDrWUgZW50cmUgMCB5IDEsIHVuIGF1bWVudG8gZGUgdW5hIHVuaWRhZCBlcyBlbCBtw6F4aW1vIGF1bWVudG8gcG9zaWJsZS4KClBhcmEgZWwgY2FzbyBkZSBsYXMgbXVqZXJlcywgc2UgcHVlZGUgY29uY2x1aXIgcXVlIGxhcyBtdWplcmVzIHRpZW5lbiB1biAxNS45JSBtw6FzIGRlIHByb2JhYmlsaWRhZGVzIGRlIHNlciB1c3VhcmlhcyBkZSB1bmEgcmVkIHNvY2lhbCBxdWUgbG9zIGhvbWJyZXMuCgpQYXJhIHByZXNlbnRhciBsb3MgcmVzdWx0YWRvcyBkZSB1bmEgbWFuZXJhIG3DoXMgb3JkZW5hZGEsIHNlIHB1ZWRlbiB1c2FyIHZhcmlhcyBsaWJyZXLDrWFzIHkgY29tYW5kb3MuCkVuIGVzdGEgc2VjY2nDs24gdXNhbW9zIGxhIGxpYnJlcsOtYSBganRvb2xzYCB5IGVsIGNvbWFuZG8gYHN1bW1zYC4KRXN0ZSBjb21hbmRvIG5vcyBicmluZGEgYWRlbcOhcyBlc3RhZMOtc3RpY29zIHBhcmEgZXZhbHVhciBlbCBhanVzdGUgZGVsIG1vZGVsby4KUG9yIGVqZW1wbG8sIGVsIGVzdGFkw61zdGljbyBkZSAkXGNoaV4yJCBldmFsw7phIGVsIG1vZGVsbyBtdWx0aXZhcmlhZG8gdmVyc3VzIGVsIG1vZGVsbyBudWxvLgpDb21vIHNlIG9idGllbmUgdW4gZXN0YWTDrXN0aWNvIGdyYW5kZSB5IHVuIHAtdmFsdWUgbWVub3IgYSAwLjA1LCBzZSBjb25jbHV5ZSBxdWUgZWwgbW9kZWxvIHNlIGFqdXN0YSBhIGxvcyBkYXRvcy4KCk90cm8gZXN0YWTDrXN0aWNvIGVzIGVsIFBzZXVkby0kUl4yJCwgcXVlIGF1bnF1ZSBubyBzZSBwdWVkZSBpbnRlcnByZXRhciBjb21vIGVsIGNvZWZpY2llbnRlIGRlIGRldGVybWluYWNpw7NuIGRlIHVuYSByZWdyZXNpw7NuIGxpbmVhbCwgZGEgdW5hIGlkZWEgZGUgbGEgY2FwYWNpZGFkIGV4cGxpY2F0aXZhIGRlbCBtb2RlbG8uCgpgYGB7ciB0YWJsYX0KI2xpYnJhcnkoc3RhcmdhemVyKQojc3RhcmdhemVyKG1vZGVsbzFbMTo2XSwgYWxpZ249VCwgdHlwZSA9ICd0ZXh0JykKbGlicmFyeShqdG9vbHMpCnN1bW0obW9kZWxvMSkKYGBgCgpFbCBHcsOhZmljbyAzLjQgbXVlc3RyYSBsb3MgY29lZmljaWVudGVzIGRlIGNhZGEgdmFyaWFibGUgeSBlbCBpbnRlcnZhbG8gZGUgY29uZmlhbnphIGFsIDk1JSBkZSBlc3RlIGVzdGltYWRvLgpTZSBpbmNsdXllIHVuYSBsw61uZWEgdmVydGljYWwgZW4gZWwgcHVudG8gMC4KU2kgdW4gaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBjcnV6YSBlc3RhIGzDrW5lYSB2ZXJ0aWNhbCwgc2UgcHVlZGUgZGVjaXIgcXVlIG5vIHRpZW5lIHVuYSByZWxhY2nDs24gZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YSBjb24gbGEgdmFyaWFibGUgZGVwZW5kaWVudGUgZGUgYXBveW8gYWwgc2lzdGVtYS4KTG9zIGludGVydmFsb3MgZGUgY29uZmlhbnphIHF1ZSBubyBjcnV6YW4gZXN0YSBsw61uZWEgeSBxdWUgc2UgZW5jdWVudHJhbiBhIGxhIGRlcmVjaGEgKGl6cXVpZXJkYSkgZGUgZXN0YSBsw61uZWEgdGllbmVuIHVuYSByZWxhY2nDs24gcG9zaXRpdmEgKG5lZ2F0aXZhKSBjb24gZWwgYXBveW8gYWwgc2lzdGVtYSwgZXMgZGVjaXIsIGN1YW5kbyBhdW1lbnRhIGVzdGEgdmFyaWFibGUsIGVsIGFwb3lvIGFsIHNpc3RlbWEgcHJvbWVkaW8gYXVtZW50YSAoZGlzbWludXllKS4KRW4gZXN0ZSBlamVtcGxvLCBsYXMgY2luY28gdmFyaWFibGVzIHNvbiBlc3RhZMOtc3RpY2FtZW50ZSBzaWduaWZpY2F0aXZhcyB5IG11ZXN0cmFuIHRpZW5lbiB1bmEgcmVsYWNpw7NuIHBvc2l0aXZhIGNvbiBlbCBhcG95byBhbCBzaXN0ZW1hLgpQYXJhIGFwcm94aW1hciB1biBncsOhZmljbyBzaW1pbGFyIGFsIG1vc3RyYWRvIGVuIGVsIHJlcG9ydGUsIHNlIHB1ZWRlIHVzYXIgbGEgbGlicmVyw61hIGBqdG9vbHNgIHkgZWwgY29tYW5kbyBgcGxvdF9zdW1tc2AuClNlIHNlbGVjY2lvbmEgc29sbyBsYXMgdmFyaWFibGVzIGluZGVwZW5kaWVudGVzIGRlIHJlbGV2YW5jaWEuCgpgYGB7ciBncmFmaWNvfQpsaWJyYXJ5KGp0b29scykKcGxvdF9zdW1tcyhtb2RlbG8xLCBjb2Vmcz1jKCJOaXZlbCBkZSByaXF1ZXphIj0icmlxdWV6YSIsICJBw7FvcyBkZSBlZHVjYWNpw7NuIj0iZWR1YyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVkYWQiPSJlZGFkIiwgIk11amVyIj0ibXVqZXIiLCAiw4FyZWEgdXJiYW5hIj0idXJiYW4iKSkKYGBgCgpFbCBncsOhZmljbyBwcm9kdWNpZG8gZXMgc2ltaWxhciB5IHNpZ3VlIGxhIG1pc21hIHRlbmRlbmNpYSBxdWUgZWwgR3LDoWZpY28gMy40IHByZXNlbnRhZG8gZW4gZWwgaW5mb3JtZS4KU2luIGVtYmFyZ28sIG5vIHByZXNlbnRhIGxvcyBtaXNtb3MgcmVzdWx0YWRvcyBwdWVzLCBjb21vIGluZGljYSBlbCByZXBvcnRlLCAibG9zIHB1bnRvcyBlbiBlbCBHcsOhZmljbyAzLjQgc29uIGxvcyBjYW1iaW9zIGVzdGltYWRvcyBlbiBsYSBwcm9iYWJpbGlkYWQgZGUgcXVlIGxhIHZhcmlhYmxlIGRlcGVuZGllbnRlIHRvbWUgdW4gdmFsb3IgZGUgIjEiICh1c2EgcmVkZXMgc29jaWFsZXMpLCBkYWRvIHVuIGNhbWJpbyBkZWwgdmFsb3IgbcOtbmltbyBhbCBtw6F4aW1vIGRlIGxhIHZhcmlhYmxlIGluZGVwZW5kaWVudGUiIChwLiA1OSkuCkVuIGVzdGUgZ3LDoWZpY28gcHJvZHVjaWRvIGVuIGVzdGEgc2VjY2nDs24gc2UgZ3JhZmljYSBlbCBjb2VmaWNpZW50ZSBkZSBsYSByZWdyZXNpw7NuIGxvZ8Otc3RpY2EuCgojIFJlc3VtZW4KCkVuIGVzdGEgc2VjY2nDs24gaGVtb3MgdXNhZG8gdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gbGlnw61zdGljYSBwYXJhIG1vZGVsYXIgbGEgcmVsYWNpw7NuIGRlIHZhcmlhYmxlcyBpbmRlcGVuZGllbnRlcyBjb24gdW5hIHZhcmlhYmxlIGRlcGVuZGllbnRlIGRpY290w7NtaWNhLgpFbiBwYXJ0aWN1bGFyLCBzZSBoYSBwcmVzZW50YWRvIHVuIG1vZGVsbyBjb24gY2luY28gcHJlZGljdG9yZXMgZGVsIHVzbyBkZSByZWRlcyBzb2NpYWxlcy4KRXN0ZSBtb2RlbG8gc2UgaGEgcHJlc2VudGFkbyBkZSBtYW5lcmEgZXN0w6FuZGFyIGVuIHVuYSB0YWJsYSBkZSByZXN1bHRhZG9zIHkgbWVkaWFudGUgdW4gZ3LDoWZpY28gc2ltaWxhciBhbCBHcsOhZmljbyAzLjQgZGVsIHJlcG9ydGUuCgojIEluY2x1eWVuZG8gZWwgZWZlY3RvIGRlIGRpc2XDsW8KCkxvcyBjw6FsY3Vsb3MgcmVhbGl6YWRvcyBubyBpbmNsdXllbiBlbCBlZmVjdG8gZGUgZGlzZcOxbyBtdWVzdHJhbC4KUGFyYSBoYWNlciBlc3RvIHNlIGRlYmUgY29uc2lkZXJhciBlbCBmYWN0b3IgZGUgZXhwYW5zacOzbi4KU2UgaGl6byB1bmEgaW50cm9kdWNjacOzbiBhbCB1c28gZGVsIGZhY3RvciBkZSBleHBhbnNpw7NuIFthcXXDrV0oaHR0cHM6Ly9hcnR1cm9tYWxkb25hZG8uZ2l0aHViLmlvL0Jhcm9tZXRyb0VkdV9XZWIvRXhwYW5zaW9uLmh0bWwpLgpFbiBlc3RlIHBhcnRlIHVzYXJlbW9zIGxhIGxpYnJlcsOtYSBgc3VydmV5YC4KClVzYXJlbW9zIGVsIGNvbWFuZG8gYHN2eWRlc2lnbmAgKHNpbWlsYXIgYWwgY29tYW5kbyBzdnlzZXQgZW4gU1RBVEEpLgpDb24gZXN0ZSBjb21hbmRvIHNlIGNyZWEgdW4gbnVldm8gb2JqZXRvIGxsYW1hZG8gImxhcG9wLmRlc2lnbiIsIHF1ZSBndWFyZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGxhcyB2YXJpYWJsZXMgY29udGVuaWRhcyBlbiBlbCBkYXRhZnJhbWUsIGluY2x1eWVuZG8gZW4gbG9zIGPDoWxjdWxvcyBlbCBmYWN0b3IgZGUgZXhwYW5zacOzbi4KUG9yIHRhbnRvLCBzaSBsdWVnbyBzZSBjcmVhcmEgdW5hIG51ZXZhIHZhcmlhYmxlLCBzZSB0ZW5kcsOtYSBxdWUgY2FsY3VsYXIgbnVldmFtZW50ZSBlc3TDqSBjb21hbmRvIHBhcmEgcXVlIGVzdGUgb2JqZXRvICJsYXBvcC5kZXNpZ24iIGluY2x1eWEgZXN0YSBudWV2YSB2YXJpYWJsZS4KCmBgYHtyIGRpc2VubywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbGlicmFyeShzdXJ2ZXkpCmxhcG9wLmRlc2lnbjwtc3Z5ZGVzaWduKGlkcyA9IH51cG0sIHN0cmF0YSA9IH5lc3RyYXRvcHJpLCB3ZWlnaHRzID0gfndlaWdodDE1MDAsIG5lc3Q9VFJVRSwgZGF0YT1sYXBvcDE4KQpgYGAKCkxhIGxpYnJlcsOtYSBgc3VydmV5YCBpbmNsdXllIGVsIGNvbWFuZG8gYHN2eWdsbWAgcXVlIHBlcm1pdGUgY2FsY3VsYXIgdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gbG9nw61zdGljYS4KTGFzIG1pc21hcyB2YXJpYWJsZXMgdXNhZGFzIGVuIGVsIG1vZGVsbyAxIHNlIHB1ZWRlbiBpbmNsdWlyIGVuIGVzdGUgY29tYW5kby4KU2UgdGllbmUgcXVlIGVzcGVjaWZpY2FyIHF1ZSBzZSBxdWllcmUgY2FsY3VsYXIgdW4gbW9kZWxvIGJpbm9taWFsIGNvbiBsYSBlc3BlY2lmaWNhY2nDs24gYGZhbWlseT1xdWFzaWJpbm9taWFsYC4KVGFtYmnDqW4gc2UgdGllbmUgcXVlIGVzcGVjaWZpY2FyIGVsIGRpc2XDsW8gcXVlIHNlIHV0aWxpemEgeSBlbCB0cmF0YW1pZW50byBkZSBsb3MgdmFsb3JlcyBwZXJkaWRvcy4KRXN0ZSBjw6FsY3VsbyBzZSBndWFyZGEgZW4gdW4gb2JqZXRvICJtb2RlbG8yIi4KU2UgdXNhIGVsIGNvbWFuZG8gYHN1bW1gIGRlIGxhIGxpYnJlcsOtYSBganRvb2xzYCBwYXJhIGRlc2NyaWJpciBlbCBtb2RlbG8uCgpgYGB7ciBtb2RlbG93LCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQptb2RlbG8yIDwtIHN2eWdsbSh1c2VyIH4gcmlxdWV6YSArIGVkdWMgKyBlZGFkICsgbXVqZXIgKyB1cmJhbiArIGZhY3RvcihwYWlzKSwgZmFtaWx5PXF1YXNpYmlub21pYWwsIGRlc2lnbj1sYXBvcC5kZXNpZ24sIG5hLmFjdGlvbiA9IG5hLm9taXQpCnN1bW0obW9kZWxvMikKYGBgCgpEZSBsYSBtaXNtYSBtYW5lcmEgcXVlIGNvbiBlbCBtb2RlbG8gMSwgZXN0b3MgcmVzdWx0YWRvcyB0YW1iacOpbiBzZSBwdWVkZW4gZ3JhZmljYXIgdXNhbmRvIGVsIGNvbWFuZG8gYHBsb3Rfc3VtbXNgLCBzZWxlY2Npb25hbmRvIGxhcyB2YXJpYWJsZXMgcXVlIHNlIHF1aWVyZW4gbW9zdHJhci4KCmBgYHtyIGdyYWZpY293fQpwbG90X3N1bW1zKG1vZGVsbzIsIGNvZWZzPWMoIk5pdmVsIGRlIHJpcXVlemEiPSJyaXF1ZXphIiwgIkHDsW9zIGRlIGVkdWNhY2nDs24iPSJlZHVjIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWRhZCI9ImVkYWQiLCAiTXVqZXIiPSJtdWplciIsICLDgXJlYSB1cmJhbmEiPSJ1cmJhbiIpKQpgYGAKCkRlIGxhIG1pc21hIG1hbmVyYSBxdWUgY29uIGxvcyByZXN1bHRhZG9zIHF1ZSBubyBpbmNsdXllbiBlbCBlZmVjdG8gZGUgZGlzZcOxbywgZXN0ZSBncsOhZmljbyBlcyBzaW1pbGFyIGFsIHJlcG9ydGFkbyBlbiBlbCBpbmZvcm1lLCBhdW5xdWUgbm8gZXMgZXhhY3RhbWVudGUgaWd1YWwuCg==