Voto e renda · dados

Onde Lula caiu mais: territórios católicos ou evangélicos?

Objetivo: comparar regiões evangélicas e católicas e ver a alteração da votação em Lula entre 2022 e 2026.

Daniel Mariani · 8 de outubro de 2026 · script completo em R

Método: seis comparações sucessivas ("degraus"), cada uma adicionando um controle à anterior (UF, renda, voto de 2022, urbanização, idade e porte de cidade). Em cada degrau são reportados: a variação média do voto em Lula em cada grupo (1º turno, em pontos percentuais), o número de unidades de cada grupo em que o voto caiu e subiu, e a diferença entre os grupos (católicas − evangélicas).

Dados

Dois arquivos públicos deste repositório: municipios_eleicao.parquet (resultado oficial de presidente por município, somado da votação por seção do TSE, sem estimativa) e apond_completo.parquet (14,3 mil áreas de ponderação do Censo 2022, com religião, renda per capita, urbanização, idade e voto). A área de ponderação é a menor geografia em que o IBGE divulga religião, coletada no questionário da amostra; o voto por área é uma estimativa de vizinhança, descrita na metodologia. Nos degraus 1 e 2 (municípios), o voto é o oficial; dos degraus 3 em diante (áreas), é a estimativa.

library(arrow)
library(dplyr)
library(ggplot2)

municipios_of <- arrow::read_parquet(
  "https://dados-eleicoes.danielmariani.com.br/dados/municipios_eleicao.parquet")
apond <- arrow::read_parquet(
  "https://dados-eleicoes.danielmariani.com.br/dados/apond_completo.parquet")

A variável de interesse é delta = voto de Lula em 2026 − voto em 2022, 1º turno, em pontos percentuais (coluna delta_lula_t1). A religião municipal é a média das áreas de ponderação do município, ponderada pela população:

voto_mun <- municipios_of |>
  select(cd_mun, nm_mun, uf, pct_2022 = pct_lula_2022t1,
         pct_2026 = pct_lula_2026t1, delta = delta_lula_t1) |>
  filter(!is.na(delta))

religiao_mun <- apond |>
  filter(!is.na(pct_catolica)) |>
  group_by(cd_mun) |>
  summarise(pct_catolica = weighted.mean(pct_catolica, pop),
            pct_evangelica = weighted.mean(pct_evangelica, pop),
            pop = sum(pop), .groups = "drop")

municipios <- inner_join(voto_mun, religiao_mun, by = "cd_mun")

Definição dos grupos: "mais católicas" e "mais evangélicas" são os 20% de cidades (ou de áreas) com a maior fatia de cada grupo na população de 10 anos ou mais: 1.112 cidades de cada lado. Perfil médio dos grupos: 86,5% de católicos nas cidades mais católicas; 38,5% de evangélicos nas mais evangélicas (a maior fatia que o grupo atinge como média municipal).

municipios <- municipios |>
  mutate(grupo = case_when(
    ntile(pct_catolica, 5) == 5   ~ "mais católicas",
    ntile(pct_evangelica, 5) == 5 ~ "mais evangélicas",
    TRUE ~ NA))
grupos_mun <- filter(municipios, !is.na(grupo))

Degrau 1: comparação bruta entre cidades

Unidade: município. Controles: nenhum.

grupos_mun |>
  group_by(grupo) |>
  summarise(n = n(), caiu = sum(delta < 0), subiu = sum(delta > 0),
            delta = mean(delta))
#   grupo                n  caiu subiu  delta
# 1 mais católicas    1112  1103     9   -6,4
# 2 mais evangélicas  1112  1074    38   -5,5
variação médiacaiu emsubiu em
cidades mais católicas−6,4 p.p. 1.103 de 1.112 (99%)9
cidades mais evangélicas−5,5 p.p. 1.074 de 1.112 (97%)38

Diferença: Lula perdeu 0,8 ponto percentual mais nas cidades mais católicas. A queda ocorre em 97% das cidades evangélicas contra 99% das cidades católicas.

Variação do voto em Lula por cidade, 2022 → 2026

Cada ponto é uma cidade; variação entre os 1ºs turnos, em pontos percentuais.

Gráfico de pontos: quase todas as 2.224 cidades dos dois grupos à esquerda do zero; média de queda de 6,4 pontos nas católicas e 5,5 nas evangélicas

Fonte: TSE e IBGE (Censo 2022), neste repositório. Média simples entre cidades.

código do gráfico
ggplot(grupos_mun, aes(delta, grupo, colour = grupo)) +
  geom_vline(xintercept = 0, colour = "#999999") +
  geom_jitter(height = .22, size = .55, alpha = .28) +
  stat_summary(fun = mean, geom = "point", size = 4.2) +
  scale_colour_manual(values = c("mais católicas" = "#B08A3E",
                                 "mais evangélicas" = "#27568B"))

Degrau 2: controle de UF

Unidade: município. Controle adicionado: comparação restrita a cidades da mesma UF; a diferença é a média das diferenças por UF, ponderada pelo número de cidades.

d2 <- grupos_mun |>
  group_by(uf, grupo) |>
  summarise(delta = mean(delta), n = n(), .groups = "drop") |>
  tidyr::pivot_wider(names_from = grupo, values_from = c(delta, n)) |>
  filter(!is.na(`delta_mais católicas`),
         !is.na(`delta_mais evangélicas`)) |>
  mutate(gap = `delta_mais católicas` - `delta_mais evangélicas`)

weighted.mean(d2$gap, d2$n_cidades); sum(d2$gap < 0)
# -1,5 p.p. | católicas caíram mais em 17 das 18 UFs com os dois grupos

Diferença: Lula perdeu 1,5 ponto percentual mais nas cidades mais católicas considerando a UF, maior que a bruta. As cidades evangélicas se concentram em UFs de queda alta; sem o controle, essa composição reduzia a diferença medida. Em 17 das 18 UFs com cidades nos dois grupos, as católicas caíram mais.

Variação média por UF e grupo

Variação do voto em Lula 2022 → 2026 nas cidades mais católicas e mais evangélicas de cada UF. Só UFs com cidades nos dois grupos.

Gráfico de pontos conectados por UF: em 17 de 18 estados, o ponto das cidades católicas está mais à esquerda (queda maior) que o das evangélicas

Fonte: TSE e IBGE (Censo 2022), neste repositório.

Degrau 3: controle de renda

Unidade: área de ponderação (a renda domiciliar per capita não existe por município com o mesmo conceito; a coluna quintil_renda_br do arquivo traz o quinto de renda de cada área no Brasil). Controles: UF × quinto de renda; só comparam-se áreas da mesma célula.

aps <- apond |>
  filter(!is.na(pct_catolica), !is.na(delta_lula_t1),
         !is.na(renda_pc_media_sm)) |>
  mutate(grupo = case_when(
    ntile(pct_catolica, 5) == 5   ~ "mais católicas",
    ntile(pct_evangelica, 5) == 5 ~ "mais evangélicas",
    TRUE ~ NA)) |>
  filter(!is.na(grupo))

d3 <- aps |>
  group_by(uf, quintil_renda_br, grupo) |>
  summarise(delta = mean(delta_lula_t1), n = n(), .groups = "drop") |>
  tidyr::pivot_wider(names_from = grupo, values_from = c(delta, n)) |>
  filter(!is.na(`delta_mais católicas`),
         !is.na(`delta_mais evangélicas`)) |>
  mutate(gap = `delta_mais católicas` - `delta_mais evangélicas`,
         n_aps = `n_mais católicas` + `n_mais evangélicas`)

weighted.mean(d3$gap, d3$n_aps); sum(d3$gap < 0)
# -1,6 p.p. | católicas caíram mais em 43 das 57 células UF × renda
variação médiacaiu emsubiu em
áreas mais católicas−6,0 p.p. 2.603 de 2.666 (98%)63
áreas mais evangélicas−4,7 p.p. 1.912 de 2.020 (95%)108

Diferença: Lula perdeu 1,6 ponto percentual mais nas áreas mais católicas de mesma UF e renda. A queda ocorre em 95% das áreas evangélicas contra 98% das áreas católicas. A diferença é negativa em todos os quintos de renda; é menor no quinto mais pobre (−0,7) e maior nos intermediários (−2,1 no terceiro quinto).

Variação por quinto de renda e grupo

Variação do voto em Lula 2022 → 2026 por quinto de renda domiciliar per capita; médias das células UF × renda.

Barras negativas por quinto de renda: em todos os quintos a barra das áreas católicas desce mais que a das evangélicas; no quinto mais pobre, menos 4,0 contra menos 3,3; no terceiro, menos 7,6 contra menos 5,5

Fonte: TSE e IBGE (Censo 2022), neste repositório.

Degrau 4: controle do ponto de partida (voto de 2022)

Unidade: pares de áreas de ponderação. Motivo: os grupos tinham níveis diferentes de voto em Lula em 2022; quedas em pontos percentuais podem depender do nível inicial ("efeito-piso"). Controles: pares católica × evangélica da mesma UF, com renda per capita até ±20% e voto de Lula em 2022 até ±5 pontos de distância. Pareamento 1:1 sem reposição, do par mais parecido para o menos.

# todos os pares católica × evangélica da mesma UF que passam nos
# filtros recebidos; depois, pareamento ganancioso: cada área entra em
# no máximo um par, começando pelos pares mais parecidos
pareia <- function(aps, filtro) {
  candidatos <- inner_join(
      filter(aps, grupo == "mais católicas"),
      filter(aps, grupo == "mais evangélicas"),
      by = "uf", suffix = c("_cat", "_ev"),
      relationship = "many-to-many") |>
    filtro() |>
    mutate(dist = scale(renda_pc_media_sm_cat - renda_pc_media_sm_ev)^2 +
                  scale(pct_lula_2022t1_cat - pct_lula_2022t1_ev)^2 +
                  scale(pct_pop_urbana_cat - pct_pop_urbana_ev)^2) |>
    arrange(dist)
  usada <- new.env(); escolhidos <- logical(nrow(candidatos))
  for (i in seq_len(nrow(candidatos))) {
    a <- candidatos$apond_cat[i]; b <- candidatos$apond_ev[i]
    if (is.null(usada[[a]]) && is.null(usada[[b]])) {
      usada[[a]] <- TRUE; usada[[b]] <- TRUE; escolhidos[i] <- TRUE
    }
  }
  candidatos[escolhidos, ] |>
    mutate(dif = delta_lula_t1_cat - delta_lula_t1_ev)
}

p4 <- pareia(aps, \(d) filter(d,
  abs(log(renda_pc_media_sm_cat / renda_pc_media_sm_ev)) <= log(1.2),
  abs(pct_lula_2022t1_cat - pct_lula_2022t1_ev) <= 5))
# 699 pares, partindo do mesmo voto em 2022:
#   mais católicas    Δ -7,1 p.p. | caiu em 681 de 699 (97%), subiu em 18
#   mais evangélicas  Δ -5,3 p.p. | caiu em 682 de 699 (98%), subiu em 17
#   católica caiu mais em 513 dos 699 pares (73%) | diferença média -1,8 p.p.

Diferença: Lula perdeu 1,8 ponto percentual mais na área mais católica dos 699 pares que partiram do mesmo voto em 2022, a maior diferença da escada. A queda ocorre em 98% das áreas evangélicas contra 97% das católicas; a católica do par caiu mais em 73% dos pares. O nível de 2022 não explica a diferença de queda.

Degrau 5: controle de situação urbana/rural

Controles adicionados ao degrau 4: urbanização até ±15 pontos e mesmo lado da linha de 50% de população urbana (urbana com urbana, rural com rural).

p5 <- pareia(aps, \(d) filter(d,
  abs(log(renda_pc_media_sm_cat / renda_pc_media_sm_ev)) <= log(1.2),
  abs(pct_lula_2022t1_cat - pct_lula_2022t1_ev) <= 5,
  abs(pct_pop_urbana_cat - pct_pop_urbana_ev) <= 15,
  (pct_pop_urbana_cat >= 50) == (pct_pop_urbana_ev >= 50)))
# 480 pares:
#   mais católicas    Δ -7,0 p.p. | caiu em 468 de 480 (98%), subiu em 12
#   mais evangélicas  Δ -5,6 p.p. | caiu em 471 de 480 (98%), subiu em 9
#   católica caiu mais em 324 dos 480 pares (68%) | diferença média -1,3 p.p.

Diferença: Lula perdeu 1,3 ponto percentual mais na área mais católica dos 480 pares. A queda ocorre em 98% das áreas dos dois grupos; a católica do par caiu mais em 68% dos pares.

Degrau 6: controle de idade e porte de cidade

Controles adicionados: fatia de 60+ na população 15+ até ±5 pontos; municípios diferentes com população até 2× uma da outra.

pop_mun <- apond |> group_by(cd_mun) |> summarise(pop_mun = sum(pop))
aps <- left_join(aps, pop_mun, by = "cd_mun")

p6 <- pareia(aps, \(d) filter(d,
  cd_mun_cat != cd_mun_ev,
  pmax(pop_mun_cat, pop_mun_ev) / pmin(pop_mun_cat, pop_mun_ev) <= 2,
  abs(log(renda_pc_media_sm_cat / renda_pc_media_sm_ev)) <= log(1.2),
  abs(pct_lula_2022t1_cat - pct_lula_2022t1_ev) <= 5,
  abs(pct_pop_urbana_cat - pct_pop_urbana_ev) <= 15,
  (pct_pop_urbana_cat >= 50) == (pct_pop_urbana_ev >= 50),
  abs(pct_60mais_cat - pct_60mais_ev) <= 5))
# 285 pares:
#   mais católicas    Δ -7,4 p.p. | caiu em 276 de 285 (97%), subiu em 9
#   mais evangélicas  Δ -6,1 p.p. | caiu em 280 de 285 (98%), subiu em 5
#   católica caiu mais em 194 dos 285 pares (68%) | diferença média -1,4 p.p.

Diferença: Lula perdeu 1,4 ponto percentual mais na área mais católica dos 285 pares finais. A queda ocorre em 98% das áreas evangélicas contra 97% das católicas; a católica do par caiu mais em 68% dos pares. Verificação do balanceamento (médias católicas × evangélicas): voto de Lula em 2022, 47,1% × 46,5%; renda, 1,17 × 1,12 salário mínimo; urbanização, 73% × 73%; 60+, 23,7% × 22,9%.

Diferença da variação dentro dos 285 pares finais

Cada ponto é um par de áreas da mesma UF pareadas em renda, voto de 2022, urbanização, idade e porte de cidade. Valores negativos: a área católica caiu mais.

Pontos espalhados em torno do zero com média em menos 1,4 ponto percentual; em 68% dos pares a área católica caiu mais

Fonte: TSE e IBGE (Censo 2022), neste repositório.

Síntese

degraucontrolesn diferença (cat − ev)
1nenhum (cidades)2.224 cidades−0,8 p.p.
2UF18 UFs−1,5 p.p.
3UF × renda (áreas)57 células−1,6 p.p.
4+ voto de 2022 (pares)699 pares−1,8 p.p.
5+ urbano/rural480 pares−1,3 p.p.
6+ idade e porte285 pares−1,4 p.p.

Diferença de variação (católicas − evangélicas) por degrau

Pontos percentuais de queda a mais nos territórios mais católicos, sob cada conjunto de controles.

Barras horizontais: menos 0,8 ponto sem controle; menos 1,5 na mesma UF; menos 1,6 com renda; menos 1,8 nos pares com mesmo voto em 2022; menos 1,3 com tipo de área; menos 1,4 nos pares completos

Fonte: TSE e IBGE (Censo 2022), neste repositório. Degraus 1–2 comparam cidades; 3, células UF × renda; 4–6, pares de áreas de ponderação.

Resultados principais: (1) o voto em Lula caiu em 95% a 99% das unidades de todos os grupos, em todos os degraus; (2) a queda é sistematicamente maior nos territórios mais católicos, com diferença entre −0,8 e −1,8 ponto percentual; (3) a diferença não muda de sinal sob nenhum dos controles aplicados: UF, renda, nível de voto em 2022, urbanização, idade e porte de cidade.

Limitações

A análise compara territórios pela composição religiosa, não eleitores individuais (inferência ecológica): a queda maior em uma área 86% católica não identifica o voto de cada católico. Os grupos diferem em variáveis não incluídas nos pareamentos; as áreas evangélicas têm, por exemplo, mais moradores sem religião. A religião vem da amostra do Censo, com erro amostral maior em áreas pequenas. O que os seis degraus estabelecem: a queda extra nos territórios católicos não se explica por estado, renda, nível de 2022, urbanização, idade ou porte de cidade.

Reprodução

O script completo roda do início ao fim em R (pacotes arrow, dplyr, ggplot2) e refaz todos os números e gráficos deste texto a partir dos dois arquivos públicos. Dados e dicionário de variáveis: página de downloads. Decisões de medição: metodologia. Licença CC BY 4.0; citar Daniel Mariani (Folha de S.Paulo).