##Análise de sentimento
A análise de sentimento é uma ferramenta quantitativa que pode auxiliar em uma avaliação qualitativa. A ideia é classificar certas palavras pelo viés que costumam ser usadas. Por exemplo, “Piora” é uma palavra que costuma ser utilizada em contextos negativos. Após isso, tenta-se identificar padrões na recorrência dessas palavras e transformar isso em indicativo do viés da própria publicação. Neste caso, as publicações analisadas são as atas do Banxico.
Para tal análise, propus calcular o saldo do sentimento, que seria o total das palavras positivas subtraindo-se as negativas. Abaixo, conseguimos ver esse saldo dividido por página da ata, nas últimas 10 publicações do Banxico.
Em um primeiro momento, os gráficos acima servem para mostrar a predominância de palavras negativas nas últimas atas, embora ocorra certa volatilidade. Vamos tentar observar somente o saldo total de cada ata para entender que análises são possíveis a partir dele. Abaixo, temos a série com esses saldos.
Uma observação importante é que o número de palavras por ata pode variar, e isso pode impactar também esse saldo de sentimento. Para mitigar esse problema, vamos criar um índice que será o saldo de sentimento dividido pelo número de palavras em cada ata.
Percebe-se que há certa volatilidade nos dados e que essa variação não aparenta ser uma característica sazonal. Para melhorar nossa análise, vamos observar a tendência do nosso índice.
A tendência nos dá um comportamento mais consistente para a análise. É possível ver um processo cíclico em que, nas últimas atas, é observada uma queda no saldo de sentimento (embora com viés de desaceleração). Vamos observar a taxa de juros por decisão do Banxico no período, para entender o que essa tendência de sentimento está nos mostrando.
Vamos melhorar essa visualização, invertendo a escala dos juros e deslocando seu eixo.
É interessante notar que parece existir certa correlação inversa do nosso índice de sentimento com a taxa de juros. A lógica por trás dessa análise também parece coerente: quanto mais palavras negativas no texto, como as relacionadas à piora de cenário e à inflação, maior deve ser o viés do Banxico para ser Hawkish, seja subindo o juros, seja não cortando eles, a depender do momento do ciclo monetário no qual se encontra.
Uma possível versão futura dessa análise poderia ser a de modelar a série da taxa de juros e a do sentimento, para tentar criar um modelo de previsão, auxiliando na análise sobre as próximas reuniões; Ou ainda, para entender se o viés da comunicação da ata atual condiz com as previsões que tínhamos para a decisão que foi divulgada.
Vamos adiante. Podemos observar também as palavras mais recorrentes em cada ata, para entender se individualmente houve alterações no perfil de uma divulgação para outra. Abaixo temos as palavras mais recorrentes nas últimas 2 atas do Banxico.
Naturalmente, pelo perfil da publicação, algumas palavras como “Inflation” “rate” e “monetary” devem ser mais recorrentes. Porém, é interessante observar que a composição das duas atas, até mesmo na distribuição dessas palavras, parece bem semelhante. Além disso, é importante perceber que a ata de agosto faz diversas menções à de junho, algo visto pela recorrência da palavra “june”. Isso pode ser um indicativo de que a comunicação traz uma revisão ou uma reafirmação do que foi falado na ata anterior. Analisando a coerência da composição de palavras, assim como a tendência do sentimento, que não parece ter alterado a velocidade de desaceleração desde que a taxa de juros começou um ciclo de manutenção, temos indícios que a ata deve manter o viés da anterior (imagine que não lemos a ata ainda. Geramos os gráficos assim que ela foi divulgada). Portanto, temos uma análise quantitativa prévia à leitura, a qual pode auxiliar uma análise qualitativa do conteúdo (Lembrando que um release que busca transmitir uma comunicação, como as atas de um Banco Central, possuem também um caráter subjetivo, sendo importante a análise qualitativa do que foi escrito).
##Descrição do código
Resumidamente, busquei fazer um web scraping da página de atas do banxico: https://www.banxico.org.mx/publications-and-press/minutes-of-the-board-of-governors-meetings-regardi/minutes-regarding-monetary-po.html
Criei um dataframe com o link das atas em uma coluna e a data de publicação delas em outra. Fiz um loop para verificar quais atas já existiam no meu diretório, fazer o download das que ainda não estavam lá e as renomear com o valor da data de publicação para facilitar minha análise.
Após isso, utilizei da metodologia do dicionário Bing para classificar as palavras de cada PDF em positivas e negativas, depois um loop para criar e salvar um gráfico de barras para cada pdf. Por fim, criei um painel com os gráficos das 10 atas mais recentes e salvei como uma nova imagem.
Calculei um índice de sentimento (número de palavras positivas subtraindo o número de palavras negativas). Além disso, pedi para o programa contar o total de palavras de cada pdf. Novamente, fiz um loop para repetir o processo para todos os pdfs.
Criei um dataframe com as séries geradas pelo processo anterior e adicionei nele uma nova série que seria a razão entre o sentimento e o número de páginas. Chamei essa série de índice de sentimento.
Adicionei outra série com a taxa de juros por decisão das reuniões do Banxico. Comecei a criar os gráficos de interesse.
Por fim, criei um loop para criar um dataframe de cada pdf com as 10 palavras mais recorrentes na ata e a quantidade de vezes que elas se repetem (Para uma próxima versão do código, posso tentar deixá-lo mais conciso, unindo todos os loops em uma única etapa.) Então, criei o gráfico do número de palavras para as 2 últimas atas.