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
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 ...
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|||
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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.
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 |
|
|
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.