Gênero, Raça e o Custo da Vitória: Uma Análise Estatística do Financiamento de Campanhas Femininas em Pernambuco no ano de 2024

Introdução

Declaração do Problema

Foram necessários 109 anos desde a Proclamação da República para que o Brasil elegesse sua primeira presidenta. No plano municipal, a realidade não é diferente: embora as mulheres constituam mais de 52% do eleitorado nacional e a maior parte da população do estado de Pernambuco, a representação política feminina nos cargos de poder executivo e legislativo permanece historicamente desproporcional. O sufrágio universal garantiu às mulheres o direito de votar, mas votar e ser votada continuam sendo experiências estruturalmente desiguais.

A grande questão que este projeto busca responder é: até que ponto o financiamento de campanha e o perfil sociodemográfico, sobretudo a raça, determinam a eleição de uma candidata no estado de Pernambuco? A distribuição justa dos fundos públicos de campanha não é apenas uma questão legal, mas um pilar essencial para a garantia de uma democracia de fato representativa.

Abordagem do Problema

Para investigar este problema, realizaremos a fusão e o tratamento de duas grandes bases de dados fornecidas pelo Tribunal Superior Eleitoral (TSE) referentes ao pleito de 2024:

  • Dados cadastrais dos candidatos: contendo o perfil sociodemográfico (idade, cor/raça, grau de instrução, ocupação) e o resultado final da apuração.

  • Dados de receitas recebidas por candidatura: detalhando a origem de cada centavo que financiou as campanhas (Fundo Especial de Financiamento de Campanha, Fundo Partidário, doações de pessoas físicas e recursos próprios).

  • A metodologia empregará análise estatística descritiva, cruzamento de chaves primárias e engenharia de atributos para identificar disparidades estruturais entre candidatas eleitas e não eleitas.

Técnicas Aplicadas

O projeto apresentará uma abordagem baseada em Engenharia de Atributos (Feature Engineering). E serão criadas métricas customizadas de financiamento, tais como:

  • Dependência de Recursos Públicos: Razão entre fundos públicos recebidos (Eleitoral + Partidário) e a receita total de campanha.

  • Eficiência Financeira: Quantidade de recursos financeiros investidos por voto conquistado (para candidatas eleitas vs. não eleitas).

  • Recorte Interseccional: Cruzamento sistemático de variáveis de Gênero com Raça/Cor (CD_COR_RACA) para verificar se a barreira de financiamento é acentuada para mulheres negras em Pernambuco.

Benefícios para os Clientes de Análise

Os resultados desta análise servirão como um guia estratégico para:

  1. Partidos Políticos: Avaliar a eficiência e justiça na distribuição dos seus fundos afirmativos.

  2. Organizações de Advocacy e ONGs: Subsidiar campanhas de incentivo com base em dados concretos sobre onde as maiores barreiras financeiras residem.

  3. Futuras Candidatas: Compreender o comportamento e as demandas orçamentárias de uma campanha vitoriosa em Pernambuco.

Pacotes requeridos

Para assegurar a reprodutibilidade deste relatório, os seguintes pacotes e dependências do ecossistema R:

Instalação automatizada das dependências necessárias

# Lista de pacotes necessários para a replicação
pacotes_necessarios <- c("data.table", "tidyverse", "janitor", "plotly", "DT", "kableExtra")

# Verifica quais pacotes listados ainda não estão instalados na máquina do leitor
novos_pacotes <- pacotes_necessarios[!(pacotes_necessarios %in% installed.packages()[,"Package"])]

# Instala automaticamente os pacotes ausentes definindo o repositório em nuvem
if(length(novos_pacotes)) {
  install.packages(novos_pacotes, repos = "https://cloud.r-project.org")
}

# Carrega todas as bibliotecas de forma antecipada na sessão atual do R
library(data.table)
library(tidyverse)
library(janitor)
library(plotly)
library(DT)
library(kableExtra)

Pacotes e suas utilizações

  1. data.table: Essencial para uma leitura mais rápida de arquivos massivos em formato CSV (como os do TSE), minimizando gargalos de memória.

  2. tidyverse: O principal kit de ferramentas para ciência de dados em R, que engloba o dplyr para manipulação, tidyr para pivotagem, stringr para manipulação de textos e ggplot2 para visualização de dados.

  3. janitor: Usado para limpar os nomes das colunas importadas do TSE, convertendo-os de forma automática para o padrão snake_case (letras minúsculas e sem acentos).

  4. plotly: Biblioteca responsável por converter gráficos estáticos em componentes interativos que permitem a exploração dinâmica dos dados via cursor.

  5. DT: Fornece uma interface em R para a biblioteca JavaScript DataTables, permitindo a exibição de matrizes de dados por meio de tabelas dinâmicas, ordenáveis e com filtros de busca.

  6. kableExtra: Extensão do pacote knitr para formatação avançada de tabelas estáticas em HTML, permitindo personalizar estilos, adicionar notas de rodapé e controlar o layout das tabelas geradas com kable().

Preparação de Dados

Fontes Originais e Repositórios

Os dados utilizados neste projeto são de natureza pública e institucional, extraídos diretamente do Portal de Dados Abertos do Tribunal Superior Eleitoral (TSE). Para viabilizar a replicação desta análise, os conjuntos de dados originais do pleito municipal de 2024 podem ser acessados nos seguintes hiperlinks oficiais:

Escopo, Propósito e Peculiaridades da Base Bruta

O propósito original da coleta desses dados pela Justiça Eleitoral é garantir a transparência pública, a conformidade jurídica dos partidos e a fiscalização social contra o abuso de poder econômico nas eleições. No entanto, por se tratar de um repositório administrativo que unifica registros de todo o território nacional, a base bruta apresenta características complexas e não normalizadas:

  • Dimensão Massiva: A base de prestação de contas nacional possui quase 2 milhões de linhas de transações financeiras e 104 colunas informacionais.
  • Codificação e Dialeto: Os arquivos originais utilizam codificação de caracteres em Latin-1 (ISO-8859-1) e trazem separadores de campos em ponto e vírgula (;), o que frequentemente gera quebras de codificação se importados com funções padrão de leitura do R.
  • Valores Ausentes e Ruídos: Dados ausentes ou não preenchidos não estão registrados como NA, mas sim mascarados como strings de texto (ex: "#NULO", "-1" ou espaços em branco). Além disso, os valores monetários (VR_RECEITA) vêm no formato de texto brasileiro (ex: "1.500,50" com vírgula decimal), exigindo conversão numérica explícita antes de qualquer soma matemática.

Pipeline de Importação, Filtragem e Limpeza de Dados

O processo lógico de ETL (Extração, Transformação e Limpeza) abaixo foi desenhado para contornar os gargalos da base. O script executa as seguintes operações:

  1. Identifica se as bases locais estão presentes para processamento real; caso contrário, ativa um simulador de contingência realista para fins de demonstração.

  2. Filtra o escopo geográfico para o estado de Pernambuco (sg_uf == "PE") e o gênero para feminino (cd_genero == 4).

  3. Limpa e padroniza as strings de Raça/Cor e converte a situação do turno em uma variável binária clara (Eleita vs. Não Eleita).

  4. Converte os valores financeiros de texto para formato decimal numérico e agrega os totais de receitas por candidata (sq_candidato).

  5. Realiza a mesclagem das bases (Left Join) para consolidar o perfil sociodemográfico com a saúde financeira da campanha.

# Definição dos nomes dos arquivos locais esperados
arquivo_candidatos <- "consulta_cand_2024_PE.csv"
arquivo_receitas   <- "receitas_candidatos_2024_PE.csv"

if (file.exists(arquivo_candidatos) & file.exists(arquivo_receitas)) {
  
  # --- PROCESSAMENTO ---
  # Leitura rápida definindo separador e encoding correto
  raw_cand <- fread(arquivo_candidatos, encoding = "Latin-1", sep = ";") %>% clean_names()
  raw_receitas <- fread(arquivo_receitas, encoding = "Latin-1", sep = ";") %>% clean_names()
  
  # Filtragem e limpeza do perfil das candidatas de Pernambuco
  candidatas_pe <- raw_cand %>% 
    filter(sg_uf == "PE", cd_genero == 4) %>%
    mutate(
      situacao_turno = case_when(
        cd_sit_tot_turno %in% c(1, 2, 3) ~ "Eleita",
        TRUE ~ "Não Eleita"
      ),
      cor_raca = case_when(
        cd_cor_raca == 1 ~ "Sem Declaração",
        cd_cor_raca == 2 ~ "Branca",
        cd_cor_raca == 3 ~ "Preta",
        cd_cor_raca == 4 ~ "Parda",
        cd_cor_raca == 5 ~ "Amarela",
        cd_cor_raca == 6 ~ "Indígena",
        TRUE ~ "Outros"
      )
    )
  
  # LOCALIZADOR INTELIGENTE DE COLUNAS 
  colunas_receitas <- colnames(raw_receitas)
  col_fonte <- "ds_fonte_receita" # Padrão do TSE
  
  if (!col_fonte %in% colunas_receitas) {
    # Fallbacks se o TSE mudar o padrão da coluna
    col_fonte <- grep("fonte_receita|origem_receita", colunas_receitas, value = TRUE)[1]
    if (is.na(col_fonte)) col_fonte <- "ds_origem_receita"
  }
  
  # Cria uma coluna unificada temporária para evitar erros no pipeline dplyr
  raw_receitas$fonte_local <- raw_receitas[[col_fonte]]
  
  # Limpeza financeira e agregação de receitas por candidatura (sq_candidato)
  receitas_agregadas <- raw_receitas %>%
    mutate(
      # Força a conversão do padrão monetário brasileiro (vírgula) para decimal numérico (ponto)
      valor_limpo = as.numeric(gsub(",", ".", vr_receita)),
      # Converte para minúsculas e remove acentos para busca por texto robusto
      fonte_limpa = iconv(tolower(fonte_local), to = "ASCII//TRANSLIT")
    ) %>%
    group_by(sq_candidato) %>%
    summarise(
      receita_total = sum(valor_limpo, na.rm = TRUE),
      # Soma usando buscas flexíveis de termos (evita quebrar por variações de nomenclatura)
      fundo_eleitoral = sum(valor_limpo[grepl("especial|eleitoral", fonte_limpa)], na.rm = TRUE),
      fundo_partidario = sum(valor_limpo[grepl("partid", fonte_limpa)], na.rm = TRUE)
    ) %>%
    mutate(
      # Criação da variável de dependência de fundos públicos
      dep_fundo_publico = (fundo_eleitoral + fundo_partidario) / (receita_total + 0.01)
    )
  
  # Cruzamento estrutural das duas tabelas através da chave unificadora (sq_candidato)
  df_analise <- left_join(candidatas_pe, receitas_agregadas, by = "sq_candidato") %>% 
    mutate(
      receita_total = coalesce(receita_total, 0),
      dep_fundo_publico = coalesce(dep_fundo_publico, 0)
    )
  
}

Dimensão e Período dos Dados

Os dados cobrem o pleito municipal de outubro de 2024, referente às eleições para prefeito, vice-prefeito e vereador em todos os 184 municípios de Pernambuco. A base de candidaturas original conta com 51 variáveis por registro, enquanto a base de receitas possui 104 colunas de transações financeiras. Após a filtragem para candidatas do sexo feminino em PE e o left join entre as duas bases, o dataset analítico final retém 5512 registros e as variáveis de interesse detalhadas abaixo.

Amostra do Dataset Final

Após todas as etapas de limpeza e cruzamento, o dataset analítico apresenta a seguinte estrutura:

library(kableExtra)

df_analise %>%
  select(nm_candidato, cor_raca, situacao_turno, receita_total, dep_fundo_publico) %>%
  head(10) %>%
  knitr::kable(
    col.names = c("Nome da Candidata", "Raça/Cor", "Situação", "Receita Total (R$)", "Dep. Fundo Público"),
    digits = 2
  ) %>%
  kable_styling(full_width = TRUE) %>%
  footnote(
    general = "Tabela 1: Amostra do dataset final após limpeza e cruzamento das bases (10 primeiras linhas)",
    general_title = "",
    footnote_as_chunk = TRUE
  )
Nome da Candidata Raça/Cor Situação Receita Total (R$) Dep. Fundo Público
LICIA DA SILVA MACIEL Sem Declaração Eleita 0.0 0.00
LEONIA MARIA DA SILVA Sem Declaração Não Eleita 930.0 1.00
LUCIENE SOARES DA SILVA COSTA Preta Não Eleita 50.0 0.00
ELIANE MARIA MARQUES DA SILVA LUZ Preta Não Eleita 2590.0 0.39
MARIA DE FÁTIMA MARQUES RUFINO Sem Declaração Não Eleita 600.0 1.00
MARIA JOSÉ DA SILVA Preta Não Eleita 1008.0 1.00
MARIA MEDEIROS DOS ANJOS Preta Não Eleita 0.0 0.00
MARIA DE LOURDES ALVES SILVA Sem Declaração Não Eleita 3300.0 0.61
LUZINEIDE VIANA DA SILVA Sem Declaração Não Eleita 1540.8 0.00
NAYARA DE SIQUEIRA VANDERLEI Sem Declaração Não Eleita 0.0 0.00
Tabela 1: Amostra do dataset final após limpeza e cruzamento das bases (10 primeiras linhas)

Resumo das Variáveis de Interesse

O dataset final consolida cinco variáveis centrais para esta análise. A tabela abaixo apresenta um resumo estatístico das variáveis quantitativas e a distribuição das categóricas:

library(knitr)
library(kableExtra)

resumo_quant <- data.frame(
  Variavel = c("Candidatas (total)", "Eleitas", "Taxa de Eleição (%)",
               "Receita Média", "Receita Mediana", "Receita Máxima",
               "Dep. Média Fundo Público"),
  Valor = c(
    format(nrow(df_analise), big.mark = "."),
    format(sum(df_analise$situacao_turno == "Eleita"), big.mark = "."),
    paste0(round(mean(df_analise$situacao_turno == "Eleita") * 100, 1), "%"),
    paste0("R$ ", format(round(mean(df_analise$receita_total), 2), big.mark = ".", decimal.mark = ",")),
    paste0("R$ ", format(round(median(df_analise$receita_total), 2), big.mark = ".", decimal.mark = ",")),
    paste0("R$ ", format(round(max(df_analise$receita_total), 2), big.mark = ".", decimal.mark = ",")),
    paste0(round(mean(df_analise$dep_fundo_publico) * 100, 1), "%")
  )
)

kable(resumo_quant, col.names = c("Variável", "resultado"), align = c("l", "r")) %>%
  kable_styling(full_width = TRUE)
Variável resultado
Candidatas (total) 5.512
Eleitas 414
Taxa de Eleição (%) 7.5%
Receita Média R$ 11.816,19
Receita Mediana R$ 1.121,1
Receita Máxima R$ 2.105.606
Dep. Média Fundo Público 38.9%

Tabela 2: Resumo das variáveis de interesse do dataset final

A receita mediana de campanha é expressivamente inferior à média, evidenciando uma distribuição assimétrica com cauda longa: a maioria das candidatas arrecada valores modestos, enquanto uma minoria concentra recursos muito acima da média. A variável dep_fundo_publico captura a proporção da receita proveniente de fundos públicos (eleitoral + partidário), servindo como proxy para o grau de autonomia financeira de cada candidatura.

Análise Exploratória dos Dados

Perfil Sociodemográfico das Candidatas

Para compreender a composição do ecossistema político de candidatas em Pernambuco, o gráfico abaixo apresenta a distribuição univariada da autodeclaração de raça e cor. Essa visualização permite identificar quais grupos demográficos possuem maior representatividade factual no início das campanhas, ou seja, quem efetivamente chega às urnas como candidata.

# Geração do gráfico estatístico univariado (ggplot2)
g1 <- ggplot(df_analise, aes(x = fct_infreq(as.factor(cor_raca)))) +
  geom_bar(fill = "#90EE90", color = "black", alpha = 0.85) +
  geom_text(stat = 'count', aes(label = after_stat(count)), vjust = -0.5, fontface = "bold", size = 2) +
  labs(
    title = "Distribuição de Candidatas por Raça/Cor em Pernambuco",
    subtitle = "Eleições Municipais 2024 (Dados Reais TSE)",
    x = "Autodeclaração de Raça/Cor",
    y = "Quantidade Absoluta de Candidatas"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 10, hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray30"),
    panel.grid.major.x = element_blank(),
    axis.text.x = element_text(face = "bold")
  )

# Renderiza o gráfico de barras na tela
g1
Figura 1: Distribuição por Autodeclaração de Raça/Cor das Candidatas (PE - 2024)

Figura 1: Distribuição por Autodeclaração de Raça/Cor das Candidatas (PE - 2024)

Nota metodológica: A análise qualitativa dos registros classificados como “Amarela” (n=54) revelou nomes sem indicativo de origem asiática, sugerindo erros sistemáticos de preenchimento no formulário do TSE. Esse achado, somado ao volume expressivo do grupo “Sem Declaração” e ao número estatisticamente improvável de candidatas pardas em Pernambuco, aponta para fragilidades estruturais no sistema de autodeclaração racial eleitoral brasileiro.

Contrariando a percepção de que mulheres brancas dominam a arena política, os dados reais do TSE revelam que as candidatas pretas lideram com ampla margem o ecossistema de disputas em Pernambuco. Esse resultado reflete a composição demográfica do estado (majoritariamente negro), mas também evidencia um fenômeno crítico: candidatar-se não é o mesmo que ser eleita. O volume expressivo de candidaturas pretas será confrontado, nas seções seguintes, com o volume de financiamento e a taxa real de sucesso eleitoral.

Igualmente relevante é o segundo grupo em destaque: as candidatas classificadas como “Sem Declaração”. Esse grupo, quase tão numeroso quanto o de candidatas brancas, representa um apagão nos dados eleitorais. A ausência de autodeclaração de raça não é neutra — ela pode indicar desde desconhecimento sobre o campo no formulário do TSE até uma estratégia consciente de invisibilidade racial para evitar discriminação. Em ambos os casos, esses dados ausentes comprometem a capacidade do Estado e da sociedade civil de monitorar a equidade racial nas eleições.

Taxa de Sucesso Eleitoral por Raça/Cor

Antes de avançar para o financiamento, a tabela abaixo antecipa uma das perguntas centrais desta análise: candidatar-se em maior número se traduz em eleger-se em maior número? A resposta, como os dados revelam, é não.

library(dplyr)
library(DT)

tabela_sucesso <- df_analise %>%
  group_by(cor_raca) %>%
  summarise(
    `Total de Candidatas` = n(),
    `Total de Eleitas`    = sum(situacao_turno == "Eleita"),
    `Taxa de Eleição (%)`  = round(sum(situacao_turno == "Eleita") / n() * 100, 1)
  ) %>%
  arrange(desc(`Taxa de Eleição (%)`)) %>%
  rename(`Raça/Cor` = cor_raca)

datatable(
  tabela_sucesso,
  caption = "Tabela 3: Taxa de conversão eleitoral por grupo racial — PE 2024",
  options = list(pageLength = 10, dom = 't'),
  rownames = FALSE
)

A coluna Taxa de Eleição (%) é o indicador mais honesto de equidade do sistema. Ela responde à pergunta: de cada 100 candidatas de um determinado grupo racial, quantas de fato vencem? Grupos com alta candidatura e baixa taxa de eleição estão sendo sistematicamente sub-representados, independentemente de seu volume de participação.

Conexão legislativa: A Lei 9.504/97 e suas emendas obrigam os partidos a reservarem no mínimo 30% das candidaturas para mulheres. No entanto, a legislação eleitoral brasileira não estabelece nenhuma cota ou meta racial para candidaturas. Esse vazio legal é precisamente o gap que esta análise evidencia: enquanto o gênero possui proteção normativa mínima, a raça permanece invisível na arquitetura jurídica do sistema eleitoral e os dados do TSE tornam as consequências dessa omissão mensuráveis.

Relação entre Financiamento de Campanha e Sucesso Eleitoral

O gráfico bivariado abaixo cruza o volume de receita total arrecadada (eixo Y) com o resultado recebido nas urnas (eixo X) utilizando o motor do plotly. A escala logarítmica no eixo Y é necessária porque a distribuição de receitas eleitorais possui uma cauda muito longa: a maioria das candidatas arrecada valores modestos, enquanto uma minoria concentra recursos expressivos.

# Filtra candidatas com receita
df_grafico2 <- df_analise %>% filter(receita_total > 0)

# Construção do gráfico bivariado
g2 <- ggplot(df_grafico2, aes(
  x = situacao_turno, 
  y = receita_total, 
  fill = situacao_turno
)) +
  geom_jitter(aes(color = situacao_turno), alpha = 0.4, width = 0.2, size = 1.8) +
  geom_boxplot(alpha = 0.7, outlier.shape = NA, width = 0.4, color = "black") +
  scale_y_log10(labels = scales::label_dollar(prefix = "R$ ", big.mark = ".", decimal.mark = ",")) +
  scale_fill_manual(values = c("Eleita" = "#2ca02c", "Não Eleita" = "#d62728")) +
  scale_color_manual(values = c("Eleita" = "#1f77b4", "Não Eleita" = "#7f7f7f")) +
  labs(
    title = "Volume Financeiro Arrecadado vs. Resultado Eleitoral",
    x = "Resultado nas Urnas",
    y = "Receita de Campanha (Escala Logarítmica)"
  ) +
  theme_light() +
  theme(
    plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
    legend.position = "none"
  )

# Transforma em interativo exibindo os dados dos eixos automaticamente
ggplotly(g2)

Figura 2: Relação entre Volume Financeiro Arrecadado e Sucesso Eleitoral (PE - 2024)

A separação entre as distribuições das candidatas eleitas e não eleitas é visualmente clara e estatisticamente expressiva. A mediana de receita das candidatas eleitas supera em múltiplas ordens de magnitude a das não eleitas, uma diferença que, na escala logarítmica utilizada, representa distâncias imensas em valores absolutos. Isso confirma a hipótese central deste projeto: o financiamento de campanha não é apenas um facilitador, mas uma condição estrutural para a vitória eleitoral feminina em Pernambuco. Candidatas sem acesso a recursos suficientes enfrentam, na prática, uma barreira quase intransponível, independentemente de sua competência, trajetória ou proposta política.


Intersecção entre Raça, Financiamento e Sucesso Eleitoral

Para testar a hipótese de desigualdade na distribuição de recursos, o gráfico abaixo apresenta o orçamento médio direcionado exclusivamente às candidatas que alcançaram o sucesso eleitoral (Eleitas), categorizadas por autodeclaração de raça e cor. Este recorte revela o “custo real da vitória” para cada grupo racial.

Nota: A análise interseccional apresentada a seguir deve ser lida com cautela para dois grupos específicos. O grupo “Amarela” (n=54) apresentou, em inspeção qualitativa, registros com nomes incompatíveis com origem asiática, indicando prováveis erros de preenchimento no formulário do TSE. Já o grupo “Sem Declaração” (n=1.943), embora numericamente expressivo, representa uma ausência de informação, e não uma identidade racial definida. Para os demais grupos (Preta, Branca, Parda e Indígena), os padrões identificados refletem tendências estruturais reais e são interpretados com maior segurança analítica.

library(dplyr)
library(ggplot2)
library(scales)

# Tabela analítica focando no topo do funil: apenas as mulheres ELEITAS
df_raca_eleitas <- df_analise %>%
  filter(situacao_turno == "Eleita") %>%
  group_by(cor_raca) %>%
  summarise(
    Total_Eleitas = n(),
    Media_Receita = mean(receita_total, na.rm = TRUE)
  ) %>%
  filter(!cor_raca %in% c("SEM INFORMAÇÃO", "Não informado"))

# Gráfico de barras mostrando o custo médio real de uma vitória por raça
g3 <- ggplot(df_raca_eleitas, aes(x = reorder(cor_raca, -Media_Receita), y = Media_Receita, fill = cor_raca)) +
  geom_col(color = "black", alpha = 0.8, width = 0.5) +
  geom_text(aes(label = paste0("n = ", Total_Eleitas, "\nR$ ", format(round(Media_Receita, 0), big.mark=".", decimal.mark=","))), 
            vjust = -0.4, fontface = "bold", size = 3.2) +
  scale_y_continuous(labels = label_dollar(prefix = "R$ ", big.mark = ".", decimal.mark = ","),
                     expand = expansion(mult = c(0, 0.25))) +
  scale_fill_brewer(palette = "Pastel1") +
  labs(
    title = "O Custo da Vitória: Orçamento Médio das Candidatas Eleitas",
    subtitle = "Análise restrita às candidatas vitoriosas em Pernambuco (Eleições 2024)",
    x = "Autodeclaração de Raça/Cor",
    y = "Orçamento Médio Arrecadado (R$)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray30"),
    legend.position = "none",
    panel.grid.major.x = element_blank(),
    axis.text.x = element_text(face = "bold")
  )

#Exibe o gráfico
g3
Figura 3: Orçamento Médio das Candidatas Eleitas por Raça/Cor (PE - 2024)

Figura 3: Orçamento Médio das Candidatas Eleitas por Raça/Cor (PE - 2024)

Mesmo entre as vencedoras, as poucas que superaram todas as barreiras e chegaram ao mandato, a desigualdade de recursos persiste. O número de eleitas exibido em cada barra (n =) é fundamental para contextualizar as médias: grupos com poucas eleitas têm médias mais voláteis e susceptíveis a distorções por casos extremos. A comparação entre o orçamento médio de candidatas brancas eleitas e pretas eleitas traduz, em cifras concretas, o que a literatura acadêmica chama de dupla penalização: ser mulher já é uma barreira; ser mulher negra significa enfrentar essa barreira com menos recursos financeiros.


A Taxa de Conversão: De Candidata a Eleita por Raça/Cor

O quarto gráfico desta análise introduz a métrica para avaliar equidade eleitoral: a taxa de conversão, definida como a razão entre o número de candidatas eleitas e o total de candidatas registradas por grupo racial. Diferentemente da contagem absoluta de candidaturas, que favorece grupos numericamente dominantes, essa métrica controla o volume de participação e expõe a eficiência real de cada grupo dentro do processo eleitoral, respondendo à pergunta: de cada 100 candidatas de um determinado grupo racial, quantas efetivamente conquistam um mandato?

library(dplyr)
library(ggplot2)

# Calcula a taxa de eleição por grupo racial
df_conversao <- df_analise %>%
  group_by(cor_raca) %>%
  summarise(
    n_total     = n(),
    n_eleitas   = sum(situacao_turno == "Eleita"),
    taxa_eleicao = round(n_eleitas / n_total * 100, 1)
  ) %>%
  filter(n_total >= 10) %>%  # Remove grupos com poucos casos para evitar distorção estatística
  arrange(desc(taxa_eleicao))

# Gráfico de barras horizontais com destaque por performance
g4 <- ggplot(df_conversao, aes(
    x = reorder(cor_raca, taxa_eleicao), 
    y = taxa_eleicao,
    fill = taxa_eleicao
  )) +
  geom_col(color = "black", alpha = 0.85, width = 0.6) +
  geom_text(
    aes(label = paste0(taxa_eleicao, "%  (", n_eleitas, " de ", n_total, ")")),
    hjust = -0.05, fontface = "bold", size = 3.5
  ) +
  scale_fill_gradient(low = "#f7a072", high = "#2ca02c") +
  scale_y_continuous(
    limits = c(0, max(df_conversao$taxa_eleicao) * 1.4),
    labels = function(x) paste0(x, "%")
  ) +
  coord_flip() +
  labs(
    title = "Taxa de Conversão Eleitoral por Raça/Cor",
    subtitle = "De cada 100 candidatas, quantas foram eleitas? (PE - Eleições 2024)",
    x = "Autodeclaração de Raça/Cor",
    y = "Taxa de Eleição (%)",
    caption = "Grupos com menos de 10 candidatas foram excluídos para evitar distorção estatística.\nFonte: TSE - Dados Abertos 2024."
  ) +
  theme_minimal() +
  theme(
    plot.title    = element_text(face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray30"),
    plot.caption  = element_text(size = 8, color = "gray50", hjust = 0),
    legend.position = "none",
    panel.grid.major.y = element_blank(),
    axis.text.y   = element_text(face = "bold")
  )

g4
Figura 4: Taxa de Conversão Eleitoral por Raça/Cor (PE - 2024)

Figura 4: Taxa de Conversão Eleitoral por Raça/Cor (PE - 2024)

Lembrete: As ressalvas metodológicas sobre os grupos “Amarela” e “Sem Declaração” descritas na seção anterior aplicam-se também a esta visualização.

Contrariando a hipótese inicial de que mulheres brancas se elegeriam proporcionalmente mais, os dados revelam o oposto: candidatas brancas apresentam a menor taxa de conversão eleitoral (3,5%), enquanto candidatas pretas convertem a 6,4%, quase o dobro. O grupo “Sem Declaração”, com 10,5%, lidera a taxa de sucesso, o que levanta uma hipótese instigante: a invisibilidade racial nos dados pode refletir uma invisibilidade estratégica também nas campanhas, permitindo que essas candidatas transitem por diferentes bases eleitorais sem o peso de estereótipos raciais.

Pode-se pensar que o problema enfrentado por mulheres pretas em Pernambuco não é a rejeição do eleitorado, quando chegam competitivas às urnas, vencem proporcionalmente mais que as brancas. O problema está no funil que antecede o voto: de 2.805 candidatas pretas, apenas 179 chegaram com recursos e condições suficientes para vencer (6,4%). O gargalo é o financiamento, não o eleitor. Isso transforma a questão de representatividade feminina negra em Pernambuco de um problema de aceitação social para um problema de justiça na distribuição de recursos eleitorais, e aponta diretamente para a responsabilidade dos partidos políticos na alocação dos fundos afirmativos de campanha.


Dependência de Fundos Públicos: Quem Depende do Estado para Competir?

A variável dep_fundo_publico — criada durante a etapa de engenharia de atributos — mede a proporção da receita de campanha proveniente de fontes públicas (Fundo Especial de Financiamento de Campanha + Fundo Partidário). Uma candidata com valor próximo de 1 depende quase exclusivamente do Estado para financiar sua campanha; uma candidata com valor próximo de 0 é predominantemente financiada por recursos próprios ou doações privadas.

O gráfico abaixo, interativo via plotly, compara essa dependência entre candidatas eleitas e não eleitas — respondendo à pergunta: o fundo público é o principal recurso das que vencem ou das que perdem?

library(ggplot2)
library(plotly)
library(dplyr)

df_fundo <- df_analise %>% filter(receita_total > 0)

g5 <- ggplot(df_fundo, aes(x = situacao_turno, y = dep_fundo_publico, fill = situacao_turno)) +
  geom_violin(alpha = 0.6, color = "black") +
  geom_boxplot(width = 0.15, alpha = 0.9, outlier.shape = NA, color = "black") +
  scale_fill_manual(values = c("Eleita" = "#2ca02c", "Não Eleita" = "#d62728")) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  labs(
    title = "Dependência de Fundos Públicos por Resultado Eleitoral",
    subtitle = "Proporção da receita de campanha proveniente de fontes públicas (PE - 2024)",
    x = "Resultado nas Urnas",
    y = "Proporção de Recursos Públicos na Receita",
    caption = "Fonte: TSE - Dados Abertos 2024. Candidatas com receita zero excluídas."
  ) +
  theme_light() +
  theme(
    plot.title    = element_text(face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray30"),
    legend.position = "none"
  )

ggplotly(g5)

Figura 5: Dependência de Fundos Públicos por Resultado Eleitoral (PE - 2024)

O gráfico de violino combinado com boxplot revela a distribuição completa da dependência de fundo público em cada grupo. Se candidatas eleitas apresentarem maior concentração em valores altos de dependência, isso indica que o fundo público é o principal habilitador de campanhas vitoriosas em Pernambuco, reforçando o argumento de que a distribuição equitativa desses recursos é uma questão de justiça democrática. Se a distribuição for semelhante entre eleitas e não eleitas, o achado aponta que o problema não é a origem do recurso, mas o volume total disponível, o que converge com os resultados do Gráfico 2.

Dependência de Fundos Públicos por Raça/Cor

Se o fundo público é a principal fonte de financiamento para candidatas que dependem menos de doadores privados, a questão que se segue é: essa dependência é igual entre todos os grupos raciais? O gráfico abaixo responde diretamente.

library(ggplot2)
library(dplyr)

df_fundo_raca <- df_analise %>%
  filter(receita_total > 0) %>%
  group_by(cor_raca) %>%
  summarise(
    dep_media = round(mean(dep_fundo_publico), 2),
    n = n()
  ) %>%
  filter(n >= 10)

g6 <- ggplot(df_fundo_raca, aes(x = reorder(cor_raca, dep_media), y = dep_media, fill = dep_media)) +
  geom_col(color = "black", alpha = 0.85, width = 0.6) +
  geom_text(aes(label = paste0(round(dep_media * 100, 1), "%  (n=", n, ")")),
            hjust = -0.05, fontface = "bold", size = 3.5) +
  scale_fill_gradient(low = "#f7a072", high = "#2ca02c") +
  scale_y_continuous(
    limits = c(0, max(df_fundo_raca$dep_media) * 1.4),
    labels = scales::percent_format(accuracy = 1)
  ) +
  coord_flip() +
  labs(
    title = "Dependência Média de Fundos Públicos por Raça/Cor",
    subtitle = "Proporção média da receita proveniente de fontes públicas (PE - 2024)",
    x = "Autodeclaração de Raça/Cor",
    y = "Dependência Média de Fundo Público",
    caption = "Candidatas com receita zero excluídas. Grupos com menos de 10 candidatas excluídos.\nFonte: TSE - Dados Abertos 2024."
  ) +
  theme_minimal() +
  theme(
    plot.title    = element_text(face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray30"),
    plot.caption  = element_text(size = 8, color = "gray50", hjust = 0),
    legend.position = "none",
    panel.grid.major.y = element_blank(),
    axis.text.y = element_text(face = "bold")
  )

g6
Figura 6: Dependência de Fundos Públicos por Raça/Cor (PE - 2024)

Figura 6: Dependência de Fundos Públicos por Raça/Cor (PE - 2024)

Se candidatas pretas apresentam maior dependência de fundos públicos que candidatas brancas, isso confirma que o fundo público é o principal, e muitas vezes único, habilitador de campanhas negras em Pernambuco. Uma distribuição desigual desse fundo entre grupos raciais não é apenas uma falha administrativa: é uma barreira estrutural que o próprio Estado reproduz, contrariando o espírito democrático que justifica a existência do financiamento público de campanhas.

Conclusões

Declaração do Problema Revisitada

Este projeto partiu de uma pergunta central: até que ponto o financiamento de campanha e o perfil sociodemográfico determinam a eleição de uma candidata em Pernambuco? Em um estado onde mais de 52% do eleitorado é feminino, a sub-representação política das mulheres, especialmente das mulheres negras, nos cargos eletivos não é um acidente, mas um padrão estrutural que os dados permitem quantificar.

Metodologia Empregada

A análise utilizou duas bases de dados públicas do Tribunal Superior Eleitoral (TSE) referentes ao pleito municipal de 2024: os dados cadastrais de candidaturas e os registros de prestação de contas de receitas eleitorais. As bases foram unidas pela chave sq_candidato, filtradas para o escopo geográfico de Pernambuco e para o gênero feminino. A partir daí, foram aplicadas técnicas de engenharia de atributos, criação de variáveis como dependência de fundo público e taxa de conversão eleitoral, e análise interseccional cruzando raça, financiamento e resultado eleitoral.

Insights Principais

Quatro achados se destacam desta análise:

  1. Candidatar-se não é o mesmo que ser eleita. Mulheres pretas lideram em volume de candidaturas em Pernambuco e apresentam taxa de conversão eleitoral (6,4%) superior à de candidatas brancas (3,5%). No entanto, o gargalo está no financiamento: sem acesso equitativo a recursos de campanha, a maioria dessas candidaturas não chega competitiva às urnas.

  2. O dinheiro é condição estrutural para a vitória. A diferença de receita entre candidatas eleitas e não eleitas é expressiva e estatisticamente clara: sem financiamento suficiente, a derrota é quase certa, independentemente do mérito da candidatura.

  3. A desigualdade persiste mesmo entre as vencedoras. Mesmo restringindo a análise apenas às candidatas eleitas, o orçamento médio de campanha varia significativamente por raça — evidenciando que a barreira financeira penaliza mulheres negras em todas as etapas do processo eleitoral.

  4. O apagão racial nos dados é, em si, um dado político. Quase 2.000 candidatas sem declaração de raça e dezenas com classificação incorreta revelam fragilidades estruturais no sistema de autodeclaração do TSE — fragilidades que tornam invisível exatamente o grupo que mais precisa de monitoramento para garantir equidade.

Implicações para os Clientes da Análise

Para partidos políticos, os dados indicam a necessidade de redistribuição mais equitativa dos fundos afirmativos de campanha, priorizando candidatas negras que historicamente recebem menos recursos mesmo quando competitivas. Para organizações de advocacy e ONGs, esta análise oferece evidências concretas para pressionar por cotas raciais nas candidaturas — um vazio que a Lei 9.504/97 ainda não endereçou. Para futuras candidatas, os dados revelam que o financiamento não é apenas um detalhe logístico, mas o principal preditor de sucesso eleitoral em Pernambuco.

Limitações e Caminhos Futuros

Esta análise possui limitações importantes que devem ser consideradas na interpretação dos resultados:

  • Qualidade da autodeclaração racial: A inspeção qualitativa identificou erros de preenchimento no grupo “Amarela” e um volume expressivo de candidatas sem declaração de raça, o que compromete a precisão da análise interseccional para esses grupos específicos.
  • Ausência de dados de votação individual: Sem o número de votos por candidata, não foi possível calcular o custo por voto — uma métrica que permitiria avaliar a eficiência do gasto, e não apenas o volume.
  • Escopo temporal único: A análise cobre apenas o pleito de 2024. Uma análise longitudinal comparando 2016, 2020 e 2024 permitiria identificar tendências e avaliar o impacto das cotas de gênero ao longo do tempo.
  • Ausência de variáveis qualitativas: Fatores como presença em redes sociais, cobertura de mídia local e capital político familiar não estão nos dados do TSE, mas influenciam significativamente o resultado eleitoral.

Pesquisas futuras poderiam cruzar os dados do TSE com os repositórios de votação por seção eleitoral, incorporar análise de redes partidárias e expandir o escopo para outros estados do Nordeste, permitindo comparações regionais mais robustas.