python4oceanographers

Turning ripples into waves

World Bank Data

(Warning this post is written in Brazilian Portuguese and it is heavily laced with the political option of the author!)

Não tenho TV e por isso tem sido difícil fácil sobreviver esse período eleitoral no Brasil. Mesmo assim sou bombardeado com "notícias", afinal a internet está recheada com opiniões, análises, críticas, protestos, propagandas e etc.

Recentemente vi dois posts no Facebook que me chamaram a atenção: um convidava as pessoas a checar os dados do World Bank e o outro era uma repetição de um blog post intitulado O tal do FHC.

O primeiro me chamou a atenção pelo ponto de vista python+pandas, adorei descobrir que o pandas traz uma interface para explorar esses dados facilmente.

Olha como é simples fazer uma procura nos inúmeros indicadores:

In [3]:
from pandas.io import wb

wb.search('middle.*class.*').iloc[:,:2]
Out[3]:
id name
1 1.0.HCount.10usd Under Middle Class ($10 a day) Headcount
3 1.0.HCount.Mid10to50 Middle Class ($10-50 a day) Headcount
8 1.0.PGap.10usd Under Middle Class ($10 a day) Gap
10 1.0.PGap.Mid10to50 Middle Class ($10-50 a day) Gap
14 1.0.PSev.10usd Under Middle Class ($10 a day) Severity
16 1.0.PSev.Mid10to50 Middle Class ($10-50 a day)Severity
21 1.1.HCount.Mid10to50 Middle Class ($10-50 a day) Headcount-Rural
27 1.1.PGap.Mid10to50 Middle Class ($10-50 a day) Gap-Rural
32 1.1.PSev.Mid10to50 Middle Class ($10-50 a day) Severity-Rural
40 1.2.HCount.Mid10to50 Middle Class ($10-50 a day) Headcount-Urban
46 1.2.PGap.Mid10to50 Middle Class ($10-50 a day) Gap-Urban
51 1.2.PSev.Mid10to50 Middle Class ($10-50 a day) Severity-Urban

O banco de dados é gigantesco e muito completo! Para poder explorar os dados vou definir 3 funções simples,

  • get_wb_data() faz o download, em pares, dos dados entre 1995 e 2014 para o Brasil;
  • get_label() pega a descrição do indicator escolhido;
  • plot_df() plota os pares de dados.
In [4]:
from pandas import concat
import matplotlib.pyplot as plt

plt.style.use('ggplot')
ind = wb.get_indicators()

def get_wb_data(indicator='NY.GDP.PCAP.KD'):
    kw = dict(country=['BR'], start=1995, end=2014)
    data = wb.download(indicator=indicator, **kw)
    data = data.xs('Brazil')
    data.sort_index(inplace=True)
    return data


def get_label(indicator):
    return ind[ind['id'] == indicator].name.values[0]

def plot_df(df):
    kw = dict(linewidth=2, alpha=.95)
    fig, ax0 = plt.subplots(figsize=(9, 3.25))
    
    label0 = get_label(df.columns[0])
    l0, = ax0.plot(df.index, df.icol(0), color='black', **kw)

    ax1 = ax0.twinx()
    label1 = get_label(df.columns[1])
    l1, = ax1.plot(df.index, df.icol(1), color='darkred', **kw)

    kw = dict(loc='upper center', bbox_to_anchor=(0.5, 1.15),
              ncol=1, fancybox=True)

    fig.legend([l0, l1], [label0, label1], **kw)

    ax1.grid(False)
    ax1.grid(False)

    ax1.axvspan(1995, 2003, color='blue', alpha=0.25)
    ax1.axvspan(2003, 2014, color='gray', alpha=0.25)
    ax1.set_xlim(1995, 2014)
    years = [1995, 1999, 2003, 2007, 2014]
    labels = ['1995', '1999', '2003', '2007', '2014']
    plt.xticks(years, labels)
    return fig, (ax0, ax1)

Vamos ao teste,

In [5]:
GDP = get_wb_data(indicator='NY.GDP.PCAP.KD')
CLS = get_wb_data(indicator='1.0.HCount.Mid10to50')

df = concat([GDP, CLS], axis=1)

fig, ax = plot_df(df)

Legal! simples e conciso o pandas nunca para de me surpreender. <shameless plug> Por isso eu escolhi ele para a minha biblioteca python-ctd ;-) </shameless plug>

Mas agora vamos ao segundo post que me chamou a atenção "O tal do FHC." Eu devo admitir que o autor, Fernando Luz Barbosa, foi muito experto em ultra simplificar algo complexo como a economia Brasileira no panorama global.

Também, ao manter seu post curto, ele evita cair na armadilha do tl;dr. Vou tentar fazer o mesmo aqui, mas usando gráficos e dados reais ao invés de uma metáfora/retórica que apela ao leitor a tirar uma conclusão "inteligente" e pseudo-própria.

O gráfico acima é basicamente o ponto de partida do blog post "O tal do FHC. Não foi atoa que eu escolhi 1995‐2014 e marquei os governos com cores diferentes. Até aí nada de novo, todos sabemos que os brasileiros estão comendo mais frango desde que Itamar Franco FHC implementou o plano Real baseado nos papers do Serra e da Dilma e suas ideias Keynesianas. (Saudades do Casseta & Planeta...)

Mas o blog é super simplista ao insinuar uma interpretação de que o governo do PT surfou uma boa onda. Ora, boas ondas estão passando o tempo todo, cabe ao bom surfista ir atrás delas. Falem o que quiserem do corrupto Richard Nixon, mas ele fez os EUA surfar na onda da China desde 1972. O Brasil vem perdendo as ondas devido ao seu atraso político/educacional que eu atribuo à nossa estória com o ARENA, PFL DEM e outros partidos de direita.

Mas reduzir a economia do Brasil no panorama global às relações comerciais é uma super simplificação, e um tanto quanto perigosa.

Nos gráficos abaixo eu coloco a minha opinião para tentar entender um pouco esse panorama. Mas aviso! Sou oceanógrafo e não economista, por isso o que escrevo abaixo é apenas a minha opinião e nada mais!! Aviso também que eu tenho um ponto que ficará claro ao longo desse blog post.

In [6]:
RES = get_wb_data(indicator='FI.RES.TOTL.CD')
BAL = get_wb_data(indicator='BN.CAB.XOKA.CD')

df = concat([RES, BAL], axis=1)

fig, ax = plot_df(df)

Esse gráfico mostra que o Brasil começou a pensar em fazer uma reserva de forma como nunca antes na estória dessa nação... (Mais saudades do Casseta & Planeta!)

Mas a balança comercial não está OK! Importamos mais do que exportamos. Atire o primeiro IPhone quem não compra produtos lá fora!

In [7]:
ROD = get_wb_data(indicator='IS.ROD.PAVE.ZS')
IND = get_wb_data(indicator='NV.IND.TOTL.ZS')

df = concat([ROD, IND], axis=1)

fig, ax = plot_df(df)

Eu gosto de pensar que investimentos em rodovias refletem investimentos em infraestrutura como um todo, afinal, lembro das filas quilométricas no porto de Rio Grande quando morei lá. Infelizmente o Brasil está muitos anos atrás de ter uma boa infraestrutura. Mas os dados mostram que não estamos completamente parados.

Já o valor da indústria no PIB é preocupante. O que está acontecendo? Seria uma fuga das empresas devido ao baixo investimento em infraestrutura? Ou seria uma corrida dos investidores para o lucro rápido do capital especulativo?

(Isso leva a um triste fim. Basta ver o que os abutres investidores fizeram com a Argentina. Espero que o Brasil não sofra o mesmo fim.)

In [8]:
EXP = get_wb_data(indicator='NE.EXP.GNFS.ZS')
FMI = get_wb_data(indicator='DT.DOD.DIMF.CD')

df = concat([EXP, FMI], axis=1)

fig, ax = plot_df(df)

Esse eu considero muito interessante. Todos os brasileiros devem celebram a independência dos empréstimos do FMI. Mas porque as exportações caíram tanto!

As reservas estão altas, o governo investe em infraestrutura, a divida externa está reduzida... Será que é a maldita economia de especulação novamente? Que onda é essa que o Lula surfou? Não me parece ter sido tanta sorte assim.

In [9]:
AGR = get_wb_data(indicator='NV.AGR.TOTL.ZS')
IND = get_wb_data(indicator='NV.IND.TOTL.ZS')

df = concat([AGR, IND], axis=1)

fig, ax = plot_df(df)

Antes que alguém grite "A onda era o bolo para os 33 chineses" aqui vão os dados dos agronegócios e da indústria lado-a-lado.

In [10]:
SUR = get_wb_data(indicator='GC.BAL.CASH.GD.ZS')
REV = get_wb_data(indicator='GC.REV.XGRT.GD.ZS')

df = concat([SUR, REV], axis=1)

fig, ax = plot_df(df)

Esse eu acho muito legal, ele mostra que os candidatos sempre deixam uma "herança maldita" uns para os outros. Mas fica a pergunta, com os empréstimos do FMI, o grana das privatizações, a inflação e juros altos, para onde foi o Cash Surplus (CS) da era FHC? Acho que aqueles votos de re-eleição custaram mais caro do que pensávamos. (Outra interpretação é que os corruptos do PT são mais baratinhos.)

Outro fenômeno interessante é a arrecadação, em porcentagem do PIB, está sempre atrelada ao CS, mas estava no negativo antes de 2003 e depois ficou no positivo.

A minha conclusão de um completo leigo é que o assunto é muito mais complexo que pensamos. O Brasil, assim como diversos países em desenvolvimento, é frágil ao capital especulativo. A única defesa é investimento em infraestrutura e uma poupança gorda para atrair investidores sólidos. Ambos passos o PT vêm fazendo bem. Talvez o mais interessante é que os dados mostram que quem surfou uma "onda" foi o FHC. Na sua época havia mais investimento na produção industrial e agrícola. Uma pena que o povo brasileiro não surfou com ele.

Mas ainda bem que a ondinha que o Lula pegou deu pra melhorar um pouco a vida de todos nós.

Deixei de fora indicadores de saúde e educação. Mas quem quiser brincar com isso basta fazer download do notebook e escolher o indicador que quiser.

Para encerrar dois dados, que não razão especial para estar no mesmo gráfico, um é apenas pela minha paixão de ver a queda da pobreza no Brasil e o outro é pra lembrar que esse blog é sobre oceanografia!

Até mais,

-Filipe Fernandes

In [11]:
POV = get_wb_data(indicator='SI.POV.DDAY')
MRN = get_wb_data(indicator='ER.MRN.PTMR.ZS')

df = concat([POV, MRN], axis=1)

fig, ax = plot_df(df)
In [12]:
HTML(html)
Out[12]:

This post was written as an IPython notebook. It is available for download or as a static html.

Creative Commons License
python4oceanographers by Filipe Fernandes is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Based on a work at https://ocefpaf.github.io/.

Comments