Apoiadores do Novo e Eleitores de Amoedo em 2018: quem são e no que acreditam?

options(scipen = 1000)
library(sjPlot)
library(coefplot)
library(readxl)
dados <- read_excel("merge.xlsx")
dados$Novo <- as.factor(dados$Novo)
dados$turno2 <- as.factor(dados$turno2)
dados$turno2 <- relevel(dados$turno2, "N")
dados$lavajato_combatecorrupcao <- as.factor(dados$lavajato_combatecorrupcao)
dados$lavajato_combatecorrupcao <- relevel(dados$lavajato_combatecorrupcao, "NaoCombate")

Vídeo anterior = https://youtu.be/d7fFaHr4QI4 (28 cidades como unidade de análise - localidade - rural menos propenso)

Agora a unidade de análise é o indivíduo.

O objetivo aqui é tentar determinar em que um apoiador do partido Novo se diferencia dos brasileiros em geral

Base de dados: Eseb estudo pós-eleitoral brasileiro ocorrido logo após a eleição em 2018 ainda.

Se sente representado pelo partido Novo e/ou votou no Amoedo?

table(dados$Novo)
## 
##    0    1 
## 2456   50

Análise

Novo = declarou votar no Amoedo e/ou gostar do Novo (50 de 2506 da amostra)

analises previas - para verificar se há alguma relação, selecionamos algumas variáveis

1- variáveis sociais

escolaridade (em níveis)

by(dados$escolaridade, dados$Novo, mean)
## dados$Novo: 0
## [1] 4.769137
## ------------------------------------------------------------ 
## dados$Novo: 1
## [1] 6.24

6 (Colegial incompleto) / 4(Ginásio incompleto)

idade (em faixas)

by(dados$faixa_idade, dados$Novo, mean)
## dados$Novo: 0
## [1] 4.185261
## ------------------------------------------------------------ 
## dados$Novo: 1
## [1] 3.68

os apoiadores do Novo são um pouco mais jovens

sexo (Feminino)

table(dados$Feminino)
## 
##    0    1 
## 1190 1316
by(dados$Feminino, dados$Novo, mean)# quantos porcento
## dados$Novo: 0
## [1] 0.5260586
## ------------------------------------------------------------ 
## dados$Novo: 1
## [1] 0.48

Branco (auto declaração)

table(dados$Branco)
## 
##    0    1 
## 1733  773
by(dados$Branco, dados$Novo, mean)# quantos porcento
## dados$Novo: 0
## [1] 0.3074104
## ------------------------------------------------------------ 
## dados$Novo: 1
## [1] 0.36

localidade (Urbano?)

table(dados$localidade)
## 
##  RURAL URBANO 
##    161   2345
prop.table(table(dados$Novo, dados$localidade),1)# quantos porcento
##    
##          RURAL     URBANO
##   0 0.06473941 0.93526059
##   1 0.04000000 0.96000000

2- variáveis políticas

Voto segundo turno (Bolsonaro x Haddad/branco/nulo/naovotou)

table(dados$turno2)
## 
##         N Bolsonaro 
##      1483      1023
prop.table(table(dados$Novo, dados$turno2),1)# quantos porcento
##    
##             N Bolsonaro
##   0 0.5952769 0.4047231
##   1 0.4200000 0.5800000

AntiPt (Não gosta do PT x indiferente/gosta)

table(dados$AntiPT)
## 
##    0    1 
## 1595  911
by(dados$AntiPT, dados$Novo, mean)# quantos porcento
## dados$Novo: 0
## [1] 0.3570847
## ------------------------------------------------------------ 
## dados$Novo: 1
## [1] 0.68

Lava Jato combate a corrupção? (Combate x Não Combate)

table(dados$lavajato_combatecorrupcao)
## 
## NaoCombate    Combate 
##        940       1566
prop.table(table(dados$Novo, dados$lavajato_combatecorrupcao),1)# quantos porcento
##    
##     NaoCombate   Combate
##   0  0.3794788 0.6205212
##   1  0.1600000 0.8400000

um resumo das variáveis:

str(dados)
## tibble [2,506 x 9] (S3: tbl_df/tbl/data.frame)
##  $ faixa_idade              : num [1:2506] 4 2 2 4 6 5 2 3 3 3 ...
##  $ Feminino                 : num [1:2506] 1 0 1 0 0 1 1 0 1 0 ...
##  $ escolaridade             : num [1:2506] 5 5 6 3 0 0 4 8 8 6 ...
##  $ localidade               : chr [1:2506] "URBANO" "URBANO" "URBANO" "URBANO" ...
##  $ turno2                   : Factor w/ 2 levels "N","Bolsonaro": 2 2 2 2 2 2 2 2 2 1 ...
##  $ Novo                     : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
##  $ AntiPT                   : num [1:2506] 0 1 1 1 1 0 1 0 0 1 ...
##  $ Branco                   : num [1:2506] 0 0 0 0 0 0 0 0 0 0 ...
##  $ lavajato_combatecorrupcao: Factor w/ 2 levels "NaoCombate","Combate": 2 2 2 2 2 2 2 2 1 2 ...

Modelos variáveis sociais

escolaridade <- glm(Novo ~ escolaridade, data = dados,
               family=binomial(link=logit))
tab_model(escolaridade, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.00 ***
(0.00)
escolaridade 1.41 ***
(0.11)
Observations 2506
R2 Tjur 0.009
  • p<0.05   ** p<0.01   *** p<0.001
Feminino <- glm(Novo ~ Feminino, data = dados,
             family=binomial(link=logit))
tab_model(Feminino, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.02 ***
(0.00)
Feminino 0.83
(0.24)
Observations 2506
R2 Tjur 0.000
  • p<0.05   ** p<0.01   *** p<0.001
Branco <- glm(Novo ~ Branco, data = dados,
                family=binomial(link=logit))
tab_model(Branco, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.02 ***
(0.00)
Branco 1.27
(0.38)
Observations 2506
R2 Tjur 0.000
  • p<0.05   ** p<0.01   *** p<0.001
URBANO <- glm(Novo ~ localidade, data = dados,
             family=binomial(link=logit))
tab_model(URBANO, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.01 ***
(0.01)
localidade [URBANO] 1.66
(1.21)
Observations 2506
R2 Tjur 0.000
  • p<0.05   ** p<0.01   *** p<0.001

só idade e escolaridade foram significativos

demografia1 <- glm(Novo ~ escolaridade + faixa_idade, data = dados,
                   family=binomial(link=logit))
tab_model(demografia1, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.00 ***
(0.00)
escolaridade 1.40 ***
(0.12)
faixa_idade 0.90
(0.09)
Observations 2506
R2 Tjur 0.010
  • p<0.05   ** p<0.01   *** p<0.001

vamos testar com todos juntos

demografia2 <- glm(Novo ~ escolaridade + faixa_idade + Branco + Feminino + localidade, data = dados,
                      family=binomial(link=logit))
tab_model(demografia2, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.00 ***
(0.00)
escolaridade 1.40 ***
(0.12)
faixa_idade 0.90
(0.09)
Branco 1.09
(0.33)
Feminino 0.78
(0.22)
localidade [URBANO] 1.40
(1.03)
Observations 2506
R2 Tjur 0.010
  • p<0.05   ** p<0.01   *** p<0.001
coefplot(demografia2, intercept = FALSE)
## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

tab_model(escolaridade, demografia1, demografia2, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo Novo Novo
Predictors Odds Ratios Odds Ratios Odds Ratios
(Intercept) 0.00 ***
(0.00)
0.00 ***
(0.00)
0.00 ***
(0.00)
escolaridade 1.41 ***
(0.11)
1.40 ***
(0.12)
1.40 ***
(0.12)
faixa_idade 0.90
(0.09)
0.90
(0.09)
Branco 1.09
(0.33)
Feminino 0.78
(0.22)
localidade [URBANO] 1.40
(1.03)
Observations 2506 2506 2506
R2 Tjur 0.009 0.010 0.010
  • p<0.05   ** p<0.01   *** p<0.001

Variáveis Políticas

bolsonaro <- glm(Novo ~ turno2, data = dados,
                 family=binomial(link=logit))
tab_model(bolsonaro, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.01 ***
(0.00)
turno2 [Bolsonaro] 2.03 *
(0.59)
Observations 2506
R2 Tjur 0.002
  • p<0.05   ** p<0.01   *** p<0.001
antipt <- glm(Novo ~ AntiPT, data = dados,
              family=binomial(link=logit))
tab_model(antipt, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.01 ***
(0.00)
AntiPT 3.83 ***
(1.17)
Observations 2506
R2 Tjur 0.009
  • p<0.05   ** p<0.01   *** p<0.001
lavajato <- glm(Novo ~ lavajato_combatecorrupcao, data = dados,
              family=binomial(link=logit))
tab_model(lavajato, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.01 ***
(0.00)
lavajato_combatecorrupcao [Combate] 3.21 **
(1.25)
Observations 2506
R2 Tjur 0.004
  • p<0.05   ** p<0.01   *** p<0.001
politico <- glm(Novo ~ AntiPT + lavajato_combatecorrupcao + turno2, data = dados,
              family=binomial(link=logit))
tab_model(politico, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.01 ***
(0.00)
AntiPT 3.27 ***
(1.09)
lavajato_combatecorrupcao [Combate] 2.57 *
(1.02)
turno2 [Bolsonaro] 1.08
(0.34)
Observations 2506
R2 Tjur 0.011
  • p<0.05   ** p<0.01   *** p<0.001
coefplot(politico, intercept = FALSE)
## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

Tudo junto e como interpretar os números

completo <- glm(Novo ~ AntiPT + lavajato_combatecorrupcao + escolaridade, data = dados,
            family=binomial(link=logit))
tab_model(completo, show.ci = F, auto.label = T, show.se = T, collapse.se = T, 
          wrap.labels = 60, p.style = "stars")
  Novo
Predictors Odds Ratios
(Intercept) 0.00 ***
(0.00)
AntiPT 2.90 ***
(0.90)
lavajato_combatecorrupcao [Combate] 2.36 *
(0.93)
escolaridade 1.35 ***
(0.11)
Observations 2506
R2 Tjur 0.022
  • p<0.05   ** p<0.01   *** p<0.001

Fórmula = (odds-1)*100=prob%

AntiPt

(2.9-1)*100
## [1] 190

Ser AntiPT aumenta as chances de se gostar do Novo e/ou ter votado em Amoedo em 190%

Lava-Jato

(2.36-1)*100
## [1] 136

Achar que a Lava Jato combate a corrupção aumenta as chances de se gostar do Novo e/ou ter votado em Amoedo em 136%

escolaridade

(1.35-1)*100
## [1] 35

Um nível a mais de escolaridade aumenta(são nove) as chances de se gostar do Novo e/ou ter votado em Amoedo em 35%

coefplot(completo, intercept = FALSE)
## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.

## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.