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).
![](Graf3.4.png)
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
![](logit_files/figure-html/grafico-1.png)
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"))
![](logit_files/figure-html/graficow-1.png)
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==