Estatísticas da Câmara. Uma análise do cenário político brasileiro

Muito se discute a respeito de política no Brasil. Entretanto, nem sempre os argumentos utilizados são baseados em comprovações concretas. Frases como “Os partidos não têm uma ideologia. Eles vão para o lado que enche mais o bolso” ou outras do mesmo estilo são reproduzidas com frequência, mas sem embasamento em fatos.

Será que de fato não existe uma ideologia sendo seguida dentro dos partidos?
Será que existe oposição dentro do cenário político?

Procurando responder a estas perguntas, foram analisadas as votações da 54ª legislatura, que abrange o período de 1º de fevereiro de 2011 a 31 de janeiro de 2015, utilizando dados da Câmara Federal de Deputados. O cenário foi tratado como um problema de agrupamento, onde se objetivava agrupar partidos e parlamentares.

O objetivo do estudo a seguir é apenas proporcionar uma análise de como se comporta a política brasileira. A todo momento houve a preocupação de empregar o máximo de imparcialidade possível, apresentando os dados de forma neutra e sem beneficiar qualquer orientação política. A presente postagem é científica e não de opinião.

Este projeto foi inspirado em uma análise sobre o Senado Federal realizada em 2013, postada originalmente no blog “Todas as Configurações Possíveis”, que pode ser vista seguindo este link.

Descrição dos Dados

Os dados foram obtidos diretamente do site da Câmara Federal de Deputados, totalizando 62,6MB. Os atributos variam de acordo com cada arquivo. A princípio, são 24 atributos divididos em três tipos de arquivo.

Os arquivos de cabeçalho, com prefixo “HE”, possuem os detalhes relativos a uma determinada sessão. Os arquivos de detalhe, com prefixo “LP” ou “LV”, possuem os dados referentes aos deputados em determinada sessão. Nos arquivos “LP”, é possível encontrar os nomes dos deputados e informações sobre sua presença e partido. Estes representam as sessões nas quais não houve votação.

Os arquivos em que estamos interessados são apenas os que possuem prefixo “LV”. Cada um deles representa uma sessão em que houve votação e neles são listados os votos de cada deputado para uma dada resolução, além das informações contidas nos arquivos com prefixo “LP”.

A descrição detalhada de como os arquivos estão estruturados pode ser encontrada seguindo este link.

arq

Exemplo de pasta contendo arquivos relativos à sessões

O conjunto final de dados conta com 2314 arquivos, representando 1456 sessões deliberativas e não deliberativas ocorridas entre fevereiro/2011 e dezembro/2014. No total, são 644 deputados distintos que não necessariamente participam de todas as sessões (513 eleitos + suplentes).

Cada registro apresenta os seguintes campos:

Sessão Legislativa

Período de atividade normal do Congresso a cada ano, de 2 de fevereiro a 17 de julho e de 1º de agosto a 22 de dezembro.

Número da Sessão Legislativa Número que identifica a Sessão Legislativa
Tipo da Sessão Legislativa

A Sessão Legislativa pode ser Ordinária, quando ocorre em seu período vigente ou Extraordinária, quando ocorre durante período de recesso parlamentar, mediante convocação.

Sessão Sessões que acontecem todos os dias úteis de segunda a sexta-feira
Número da Sessão Número que identifica a Sessão
Tipo da Sessão

As sessões do plenário podem ser deliberativas, quando há discussão e votação de proposição ou não deliberativas caso contrário. Além disso, são classificadas como ordinárias quando ocorrem durante o horário previsto, extraordinárias quando ocorrem fora do horário das ordinárias. Também podem ser sessões de debate para debater determinada pauta ou sessões solenes, onde são realizadas homenagens e comemorações. Por fim, podem ser Sessões preparatórias, que são as que precedem à inauguração dos trabalhos das Casas do Congresso, para dar posse aos novos parlamentares e Sessões conjuntas, onde podem participar além dos deputados, os senadores.

Presidente da Sessão Nome dos presidentes encarregados de presidir a Sessão
Data final da Votação Data final da votação
Hora final da Votação Hora final da votação
Total de Votos Total de votos, que podem ser: Sim, Não, Abstenção, Obstrução, Branco
Total de Votantes Número total de votantes
Proposição

Toda matéria sujeita a deliberação da Câmara dos Deputados. Considera-se proposição a Proposta de Emenda à Constituição, projeto de lei, emenda, indicação, requerimento (proposição), recurso (proposição), parecer e Proposta de Fiscalização e Controle.

Parlamentares

Membro do parlamento; pertencente ou relativo ao parlamento. No Congresso Nacional, são os Deputados Federais e Senadores da República.

Número do Parlamentar Número que identifica o parlamentar
Nome do Parlamentar Nome do Parlamentar
Partido do Parlamentar Partido ao qual o parlamentar pertence
UF do Parlamentar Unidade Federativa de origem do parlamentar
Qualidade do Voto Qualidade de voto do parlamentar: Sim, Não, Abstenção, Obstrução, Branco, etc.

Escolha da Tecnologia

Para a realização do estudo, era necessário utilizar uma ferramenta poderosa capaz de proporcionar diversas opções e alto grau de liberdade para o manuseio dos dados. Além disto, deu-se preferência à opções open source. Assim, o R foi eleito a melhor opção como tecnologia para ajudar na condução do experimento.

O R é uma linguagem e um ambiente de desenvolvimento integrado para computação estatística e gráficos. Pode ser considerada uma outra implementação da linguagem S, desenvolvida pela Bell Laboratories.

A linguagem fornece uma ampla variedade de estatística (linear e não-linear modelagem, testes estatísticos clássicos, análise de séries temporais, classificação, clustering, …) e técnicas gráficas, além de ser altamente extensível.

Além disso, por ser uma linguagem utilizada por mais de 2 milhões de usuários, possui uma vasta documentação e suporte da comunidade. Por fim, R nos oferece infinitas possibilidades para “mash-ups” com outras aplicações, como combinar o R a um banco de dados, web-servers e outras diversas apis, ampliando os horizontes deste trabalho, caso a gente decida continuar com o projeto mesmo após a disciplina e disponibilizá-lo para o público.

Metodologia

Tendo em mãos um grande conjunto de dados obtido do site da câmara dos deputados, o pensamento inicial era o de estruturar os dados e utilizar o R para fazer o processamento e análise dos resultados para responder as perguntas citadas anteriormente.

Após estruturar e gerar o arquivo com os dados preparados para serem utilizados, foi necessário aprimorar a maneira de realizar os procedimentos para gerar os resultados. Iniciou-se, então, o processo de visualização preliminar do resultado, que será descrito mais à frente, para observar se a organização fora satisfatória.

Além das funcionalidades nativas do R, foram utilizadas as seguintes bibliotecas para fazer as visualizações:

Corrplot – O corrplot é uma biblioteca para exibir matrizes de correlação. Contém alguns algoritmos para fazer reordenamento de matrizes. Além disso, permite fazer detalhamentos, escolher cores, adicionar legendas, formatar o layout, entre outros.
https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html

Useful – Um conjunto de pequenas funções úteis. É capaz de realizar tarefas como plotar o resultado do K-means, substituir caracteres especiais, construir fórmulas a partir de textos, entre outros.
https://cran.r-project.org/web/packages/useful/index.html

fpc – “Flexible Procedures for Clustering”. Reune diversos métodos para clusterização e validação de clusters.
https://cran.r-project.org/web/packages/fpc/index.html

proxy – inclui novos métodos para calculo de correlação e distâncias.
https://cran.r-project.org/web/packages/proxy/index.html

Estruturação dos Dados

Os dados obtidos através do site da Câmara dos deputados eram diversos arquivos em formato *.txt, sendo organizados em um arquivo de votos, um arquivo de presença na votação e um arquivo com as informações relativas à sessão.

Para obter uma melhor organização, todos os arquivos de votação foram concatenados em um único documento de texto utilizando-se o comando cat no shell do Linux.

Depois de ter os dados unidos em um único arquivo, era hora de separá-los em um formato simples de ser lido pelo computador. A única forma na qual os campos estavam separados, porém, era a identação. Isto pode ser facilmente resolvido abrindo o arquivo *.txt no OpenOffice Calc e separando os campos, nas células, por distância. Com os dados melhor organizados em um software propício, foi possível exportar um arquivo *.csv, proporcionando maior facilidade de leitura e edição pelo R.

O voto de cada parlamentar seguiu a seguinte estrutura:

1 – Voto Sim
0 – Não emissão de voto (abstenção, ausente, preso, cassado, em viagem…)
-1 – Não

O arquivo resultante contém as informações da Votação, número da votação, nome do deputado, tipo de voto, partido, unidade federativa e o ID_ Parlamentar.

Após isto, os dados foram organizados em uma matriz, onde cada coluna representa um parlamentar e cada linha, uma votação. Estavam representados, assim, os votos de cada parlamentar em cada uma das sessões.

Visualizando os Dados

Para iniciar o processo de visualização, faz-se a leitura do arquivo *.csv com o R. Os dados estão dispostos em formato de matriz. Uma linha no arquivo representa uma votação permitindo ver todos os votos emitidos durante determinada sessão.  As colunas, por sua vez, representam deputados, permitindo ver todos os votos de cada um dos parlamentares.

O próximo passo foi calcular a matriz de distância, utilizando a biblioteca “proxy”, que estende a função dist(matriz, método) nativa do R. Assim foi possível utilizar o método da distância de cossenos para computar a “distância” entre os parlamentares. Deste modo, quanto mais divergentes são os votos dos parlamentares, mais distantes eles estão. Uma breve explicação sobre o que é a distância de cossenos pode ser encontrada aqui (em inglês).

MATRIZ_DIST_DEPUTADOS

Matriz de distância entre deputados

Entender a matriz é simples. Cada linha e coluna representa um deputado. Quanto mais próximos eles estão, mais próxima do vermelho é a tonalidade da célula de interseção. Quando mais distantes, mais próximo do branco, passando pelo amarelo.. A diagonal vermelha ao centro é a distância de cada deputado para ele mesmo, ou seja, proximidade máxima. Os deputados foram ordenados por clusters (ou seja, parlamentares semelhantes ficavam próximos um dos outros na matriz) utilizando o método ward. Este método computa a distância entre clusters utilizando a fórmula de Lance-Williams. Uma descrição mais detalhada do método ward pode ser encontrada neste link (em inglês)

A matriz nos mostra que existe uma separação dentro da câmara. à esquerda e acima se encontra o grupo da situação e à direita e abaixo, pode-se ver a oposição.

MATRIZ_DIST_DEPUTADOS_sep

Separação entre situação e oposição

Foi nomeado “situação”, o grupo do qual faz parte a maioria dos deputados do PT (partido que estava no governo durante o período estudado). O restante foi nomeado “oposição”.

Pode-se notar que o grupo da situação é bastante unido e os parlamentares parecem votar em concordância um com o outro. A oposição, por outro lado, parece estar dividida em dois grupos menores e que fazem oposição tanto aos parlamentares governistas, quanto aos parlamentares da própria oposição.

Mas e quanto aos partidos? Como se pode avaliar a coesão interna de cada um? Utilizaremos o mesmo princípio que acabamos de usar. Porém, em vez de organizar os clusters pelo método ward, os parlamentares podem ser agrupados por seus respectivos partidos:

DEPUTADOS_ORD_PARTIDO_2

Deputados organizados por partido

Agora, é possivel visualizar tanto a coesão entre os parlamentares de um mesmo partido, quanto comparar o nível de concordância entre partidos distintos. Alguns partidos foram omitidos da imagem por serem representados por poucos deputados, o que dificulta a sua visualização na matriz. A ordem em que os partidos estão representados (incluindo os omitidos) é, da esqueda para a direita, PTC, PTdoB, PRTB, PSDC, PCdoB, PT, PV, PDT, PSB, PHS, PTB, PMDB, PP, PR, PRB, PMN, PSC, PEN, PRP, PSL, PSOL, PSD, PSDB, DEM e PPS.

PCdoB e PT são os dois partidos mais vermelhos no gráfico, mostrando que eles possuem alta coesão interna. O PMDB, por outro lado, apresenta um padrão bastante semelhante à primeira matriz de distâncias apresentada, mostrando baixa coesão interna.

Vamos agora repetir o processo mas, em vez de lidar com parlamentares, utilizar-se-á os votos dos partidos. O voto partidário é o igual ao dado pela maior parte de seus parlamentares presentes. Ou seja, se a maior parte dos parlamentares de determinado partido votou “SIM” em dada proposta, o voto partidário será “SIM”. O mesmo ocorre para o caso de a maioria dos parlamentares do partido ter votado “NÃO” à proposta. Caso nenhum deputado do partido tenha participado da votação, este era considerado “ausente”.

MATRIZ_DIATANCIA_PARTIDOS

Matriz de distância entre partidos

O padrão formado pelos partidos é semelhante ao formado pelos parlamentares, com situação representada por um bloco grande e coeso e a oposição dividida em dois grupos menores e distantes. Além disto, agora é possivel entender o motivo de a oposição estar dividida, uma vez que PSL e PSOL possuem programas de governo bem diferentes de PSD, PSDB, DEM e PPS. Ainda pela matriz, é possível notar que PSL e PSD são os dois partidos que mais fazem oposição ao governo na Câmara de Deputados, uma vez que suas colunas apresentam cores mais próximas do branco na interseção com o bloco de situação. Isto contraria a ideia mais difundida de que PSDB e DEM seriam os que menos concordam com a base do governo.

Com ambas as matrizes de distância prontas, o próximo passo foi plotar os dendogramas dos parlamentares para verificar a quantidade ótima de grupos existentes. O resultado para os deputados individuais pode ser visto abaixo.

DD

Dendograma de deputados

O dendograma também é simples de ser compreendido. A distância entre dois grupos é representada pela altura das linhas pretas verticais. Ao descermos o dendograma, pode-se obter uma separação mais detalhada dos grupos no conjunto de dados, até chegarmos aos parlamentares individuais. A linha horizontal vermelha intercepta a maior distância entre grupos presente no dendograma. O número de linhas verticais interceptadas pela vermelha horizontal nos dá uma boa dica de quantos grupos existem no conjunto de dados. A separação em grupos que o dendograma apresenta foi calculada utilizando o método ward novamente.
Pelo dendograma, é possivel ver que os parlamentares estão, de fato, separados em dois grupos. Vamos agora tentar apresenta-los divididos em uma forma gráfica. Para isto, foi executado o algoritmo k-means no conjunto de dados. Caso o leitor não conheça o funcionamento do algoritmo, é possível ler uma explicação aqui (em inglês).

DEPUTADOS_KMEANS_PLOT

Resultado plotado do k-means para deputados individuais

cada um dos pontos no gráfico representa um deputado. À esquerda e em preto se encontram os deputados da oposição. À direita e em vermelho estão os da situação. Os eixos vertical e horizontal não possuem significado. Eles apenas representam a distância entre pontos distintos. No gráfico acima, pode-se ver a situação como um grupo mais “denso” enquanto a oposição está mais “espalhada” pelo gráfico. A oposição possui 249 elementos e a situação, 395

Vamos, agora, adotar a mesma técnica para analisar os partidos. Primeiro, é necessário obter o dendograma

DENDOGRAMA_PARTIDOS_RECT

Dendograma de partidos

Mais uma vez é possível notar a separação em dois grupos. A oposição, à direita, apresenta dois grupos menores  e a situação, à esquerda, apresenta-se mais coesa, com uma distância menor entre os elementos do grupo. Rodando novamente o k-means, agora para o conjunto de dados dos partidos, obtemos:

PARTIDOS_KMEANS_PLOT

Resultado plotado do k-means para partidos

O gráfico mostra algo semelhante ao que representa os parlamentares, com a oposição, à direita, apresentando uma menor coesão entre os elementos do grupo. A oposição conta com 6 elementos e a situação, com 19.

Conclusões

Contrariando muitos dos argumentos reproduzidos nas discussões políticas em redes sociais, tanto os partidos quanto os parlamentares parecem, em sua maioria, seguir determinada ideologia ou linha de pensamento.

A oposição existe. Ela porém é menos unida que o bloco da base governista, que é bastante grande e coeso. Isto deu força ao governo durante o período da 54ª legislatura.

A composição da Câmara de Deputados, entretanto, já mudou bastante. As conclusões sobre a organização, coesão e divergência de posições entre partidos apresentadas neste estudo podem não ser mais válidas. Apesar disto, acredito que a análise proporciona um melhor entendimento de como a política brasileira se comporta.

Trabalho desenvolvido para a disciplina de Inteligência Computacional da UFRJ em 2015/2.

Autor:
Leonardo dos Santos Teixeira de Souza

2 comentários em “Estatísticas da Câmara. Uma análise do cenário político brasileiro

  1. Parabéns pelo estudo, Leonardo, os métodos de visualização e obtenção dos grupos ótimos são bem interessantes. Fico feliz que alguém tenha se aventurado a uma análise mais profunda desses dados, e obrigado por ter referenciado corretamente meu trabalho.

    Curtido por 1 pessoa

Deixe um comentário