Este projeto busca analisar diferentes variáveis que determinam um maior engajamento com o compromisso democrático. Para tanto, será analisado as variaveis da Eseb 2022 por meio de regressões lineares. O presente estudo demonstra que fatores como gênero e raça possuem relevância na reprovação ou aprovação da democracia.
# pacotes gerais
pacman::p_load(rio, tidyverse, janitor, scales)
# regressão linear
library(modelsummary)
## `modelsummary` 2.0.0 now uses `tinytable` as its default table-drawing
## backend. Learn more at: https://vincentarelbundock.github.io/tinytable/
##
## Revert to `kableExtra` for one session:
##
## options(modelsummary_factory_default = 'kableExtra')
## options(modelsummary_factory_latex = 'kableExtra')
## options(modelsummary_factory_html = 'kableExtra')
##
## Silence this message forever:
##
## config_modelsummary(startup_message = FALSE)
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(marginaleffects)
Sobre a base eseb:
O Estudo Eleitoral Brasileiro (ESEB), survey nacional pós-eleitoral de cunho acadêmico, é realizado pelo CESOP desde 2002, sob a coordenação da Profa. Dra. Rachel Meneguello. O ESEB é um projeto vinculado ao Comparative Study of Electoral Systems Project (CSES), coordenado pela Universidade de Michigan (www.cses.org) e que conta com a participação de dezenas de instituições de vários países. O projeto que embasa o CSES tem como premissa geral a ideia de que os contextos sócio-políticos e, em específico, os arranjos institucionais que regem as dinâmicas eleitorais, afetam a natureza e a qualidade da escolha democrática.
eseb22 <- import('eseb_2022.sav')
Está base contem 177 variáveis com 2001 observações. Isso acarreta na dificuldade inicial de analisar a base por meio de funções como summary, glimpse e head. Devido a isso, existe um documento pdf que explica todas as variáveis e o que representa cada resposta. Todas as manipulações de dados serão feitas a partir disso.
Seleciono as variaveis e renomeio ao mesmo tempo. Além disso, uso a função glimpse para visualizar as variaveis e o tipo de dado agregado.
## selecione as variaveis q04a, sexo, raca,
## idade, renda e escolaridade.
eseb_edit <- eseb22 %>%
select(democracia = Q04a, sexo = D02, raca = D12a, idade = D01A_IDADE, escolaridade = D03)
Todas as variáveis (democracia, sexo, raça, idade) são numéricas. Porém, fica claro que o fato de ser numérico é para facilitar a tabulação dos dados, necessitando corrigir as variáveis
glimpse(eseb_edit)
## Rows: 2,001
## Columns: 5
## $ democracia <dbl> 1, 1, 1, 1, 1, 4, 1, 4, 2, 1, 2, 1, 1, 1, 4, 1, 2, 1, 97,…
## $ sexo <dbl> 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, …
## $ raca <dbl> 1, 2, 2, 2, 1, 1, 5, 3, 3, 3, 3, 1, 2, 4, 2, 3, 2, 2, 3, …
## $ idade <dbl> 61, 58, 50, 64, 40, 23, 75, 40, 52, 60, 44, 44, 46, 39, 3…
## $ escolaridade <dbl> 9, 9, 7, 8, 5, 6, 2, 10, 4, 7, 8, 7, 9, 9, 7, 5, 7, 7, 7,…
eseb_edit %>%
head(5)
## democracia sexo raca idade escolaridade
## 1 1 1 1 61 9
## 2 1 2 2 58 9
## 3 1 2 2 50 7
## 4 1 2 2 64 8
## 5 1 2 1 40 5
A variável raça possui multiplas variáveis categoricas para analisar na regressao. Portanto, será resumida entre brancos em não brancos para facilitar a analise.
# na base o valor 3 corresponde a raça branca,
# 97 e 98 significa nao sabe e nao respondeu, logo, transformo em NA pois nao interessa
# o restante é nao branco
eseb_edit <- eseb_edit %>%
mutate(raca2 = case_when(raca == 3 ~ 'branco',
raca %in% c(97, 98) ~ NA,
TRUE ~ 'nao branco'))
# visualizando se a variavel nova deu certo
tabyl(eseb_edit$raca2)
## eseb_edit$raca2 n percent valid_percent
## branco 678 0.3388306 0.3429439
## nao branco 1299 0.6491754 0.6570561
## <NA> 24 0.0119940 NA
As variaveis utilizadas foram:
Sexo (1 homem, 2 mulher)
Raça (Branco/Nao Branco)
Idade = variável contínua
Democracia
m1 <- lm(democracia ~ factor(sexo) + factor(raca2) + idade + escolaridade, data = eseb_edit)
# usando o pacote stargazer para visualizar a regressão
stargazer(m1, type = 'text',
title = "Análise de regressão linear múltipla",
dep.var.labels = "Democracia",
covariate.labels = c("Sexo (Factor) Mulher", "Raça (Factor) Não Branco", "Idade"),
omit.stat = c("f", "ser"), # Omit some statistics like F-statistic and standard error of regression
digits = 3) # Customize number of decimal places
##
## Análise de regressão linear múltipla
## ====================================================
## Dependent variable:
## ---------------------------
## Democracia
## ----------------------------------------------------
## Sexo (Factor) Mulher 4.866***
## (0.925)
##
## Raça (Factor) Não Branco -0.038
## (0.980)
##
## Idade 0.052*
## (0.031)
##
## escolaridade -1.126***
## (0.160)
##
## Constant 9.166***
## (2.117)
##
## ----------------------------------------------------
## Observations 1,977
## R2 0.044
## Adjusted R2 0.042
## ====================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Ao analisar a primeira regressão, fica visível que ser mulher (1) aumenta em média 0.258 a chance da pessoa ser a favor da democracia. Além disso, pessoas mais velhas tendem também serem mais a favor da democracia e pessoas mais escolarizadas tendem a serem menos democráticas. Por fim, a questão raça não demonstrou significancia estatística.
A variável democracia possuem números elevados (97,98) que nao representam nada para a análise estatística vigente. Isso porque 97 representa quem nao respondeu e 98 quem nao sabe,
# visualizando o 97 e 98
library(janitor)
tabyl(eseb_edit$democracia)
## eseb_edit$democracia n percent
## 1 1016 0.50774613
## 2 420 0.20989505
## 3 168 0.08395802
## 4 165 0.08245877
## 5 129 0.06446777
## 97 99 0.04947526
## 98 4 0.00199900
# filtrando tudo o que for diferente de 97 e 98
eseb_edit <- eseb_edit %>%
filter(!(democracia %in% c(97, 98)))
tabyl(eseb_edit$democracia)
## eseb_edit$democracia n percent
## 1 1016 0.53530032
## 2 420 0.22128556
## 3 168 0.08851423
## 4 165 0.08693361
## 5 129 0.06796628
Nessa segunda regressão, foi corrigida a variavel democracia removendo os valores insignificantes para analise. Consequentemente, a questão raça ganhou significancia estatísitca, como demonstra a tabela abaixo.
Na análise, ser não branco aumenta em media 0.277 o apoio ao governo da maioria. Além disso ser mulher aumenta em média 0.258 o apoio democrático e idade possui uma pequena significancia estatística a favor de pessoas mais velhas menos a favor de totalitarismo. Por fim, pessoas mais escolarizadas tendem a serem também menos democráticas.
m2 <- lm(democracia ~ factor(sexo) + factor(raca2) + idade + escolaridade, data = eseb_edit)
stargazer(m2, type = 'text')
##
## ===================================================
## Dependent variable:
## ---------------------------
## democracia
## ---------------------------------------------------
## factor(sexo)2 0.263***
## (0.057)
##
## factor(raca2)nao branco 0.200***
## (0.060)
##
## idade -0.001
## (0.002)
##
## escolaridade -0.060***
## (0.010)
##
## Constant 2.103***
## (0.130)
##
## ---------------------------------------------------
## Observations 1,876
## R2 0.038
## Adjusted R2 0.036
## Residual Std. Error 1.232 (df = 1871)
## F Statistic 18.424*** (df = 4; 1871)
## ===================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
A partir da análise, fica claro que o apoio ao governo democrático é influenciado por fatores como genero, raça e escolaridade. Entretanto, ressalta-se que a base Eseb é muito rica para analises sociais, sendo plenamente possível ampliar o campo de abrangencia para outras variáveis igualmente relevantes: nivel educacional, confiança nas instituicoes, entre outros. Sendo assim, o presente estudo é uma preliminar da importancia da regressão em efetuar análises de significancias estatísticas.