Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Explorando a Base de dados de "The Covid-19 crisis: what explains cross-country differences in the pandemic’s short-term economic impact? "

0 votos
18 visitas
perguntada Mai 18 em Economia por Ricardo Nunes (21 pontos)  
Compartilhe

1 Resposta

0 votos
respondida Mai 18 por Ricardo Nunes (21 pontos)  

1. Motivação
A motivação da escolha do Paper foi a atual crise mundial que vivemos, acredito que tudo que tenha uma pegada empirica e nos ajude entender melhor esse grande desastre sanitário e econômico, nos ajuda a estar mais preparados para um próximo desastre.

2. Introdução
O paper se propõem a explicar a diferença do impacto econômico de curto prazo nos diferentes países, e para isso ele elenca algumas variáveis e suas proxis:

Variável Dependente:

  • Revisão da previsão de crescimento do PIB de 2020 (Previsão feita em 2020 - Previsão feita em 2019)
    OBS: Todos os países tiveram redução na previsão de crescimento do PIB de 2020, em função da Pandemia.

Variáveis Explicativas:

  • Exposição a Pandemia (Mortes por 100mil Habitantes)

  • Rigor das medidas de Lockdown (Stringency Index - Oxford)

  • Suporte Fiscal (Gasto adicional (% do PIB))

  • Governança (Worldwide Governance Indicators):

    1. Voice & Accountability
  • Vulnerabilidade Macroeconômica:

    1. Crescimento do PIB per capita nos últimos 3 anos
    2. Receitas de turismo (% do PIB)
    3. Rendas de Petróleo (% do PIB)
    4. Receitas com exportação de mercadorias (% do PIB)

Os autores focam em duas variáveis que são significantes no seu modelo, Rigor das medidas de Lockdown e Mortes por 100mil Habitantes, que claramente são correlacionadas, mas que as duas impactam na variável target na mesma direção, quanto maiores, maior a revisão do crescimento do PIB de 2020.
Eles então elencam esse como o grande dilema dos governos em futuras crises, decidir entre o rigor do lockdown, que impacta em menos mortes, e o futuro da economia.

Os resultados do Paper:
A imagem será apresentada aqui.

3. Modelo
O que eu me propus a fazer foi replicar os resultados do paper, mas adicionando mais um controle, a variável explicativa: Corruption Control, outro índice de governança.

Primeiro eu utilizei a biblioteca Seaborn para plotar a distribuição das variáveis, onde eu chequei que haviam muitos outliers, estes poderiam arruinar o modelo e eu fiz algumas exclusões e terminei com 139 observações, frente as 156 observações da regressão no modelo.
A imagem será apresentada aqui.

Eu fiz uma "standarization" dos dados utilizando a função preprocessing do pacote Sklearn do python e os meus Resultados foram:
A imagem será apresentada aqui.

As variáveis significantes se mantiveram significantes com exceção do crescimento médio do PIB per capita dos últimos 3 anos, o que pode ter ocorrido devido a minha retirada de alguns outliers.
A variável que eu adicionei "Corruption Control" do Banco Mundial - WGI (Worldwide Governance Indicators) foi significante no meu modelo ao nível de 99% e teve o sinal esperado, quanto mais um país consegue controlar a corrupção, menor foi a revisão de previsão do crescimento do PIB de 2020.

4. Conclusão
De fato, o que o paper fala sobre o dilema entre rigor de medidas de lockdown e mortes existe. Cabe a cada governo, melhor se não for corrupto, decidir como enfrentar futuras crises.
Vou deixar por último um plot de regressão utilizando o Seaborn das minhas variáveis:
A imagem será apresentada aqui.

5. Código Python

# Importando os pacotes que serão usados

import pandas as pd
import matplotlib.pyplot as plt
from sklearn import preprocessing
import statsmodels.formula.api as smf
import seaborn as sns

# Carregando os dados
df = pd.read_csv('dados.csv')
# Criando uma nova coluna com a mudanca de mortes totais para mortes por 100mil hab
df['deaths_perHund'] = (df['deaths_total']/df['pop_total'])*100000

# Transformando todas as variáveis para a mesma escala usando o Preprocessing
independentvar_str = ['tour_shareGDP','merchexp_shareGDP','oil_shareGDP',
                  'gdp_pc_growth','voice','cor_control',
                  'stringency', 'AS_GDPpct','deaths_perHund']
target_str = 'GDP_rev_IMF'
scaler=preprocessing.StandardScaler()
df_final = df
df_final[independentvar_str] = scaler.fit_transform(df_final[independentvar_str])

# Rodando a Regressao utilizando o Stats Model
formula = '''GDP_rev_IMF ~ merchexp_shareGDP + tour_shareGDP + oil_shareGDP 
+gdp_pc_growth  + voice + cor_control + stringency + AS_GDPpct  + deaths_perHund'''
lm = smf.ols(formula, data = df)
result = lm.fit()
fitted_value = result.fittedvalues
parameters = result.params
residual = result.resid

# Criando os Plots de distribuicao e regressao utilizando o Seaborn

### Distribuição
df_plotdist =df[['GDP_rev_IMF','tour_shareGDP','merchexp_shareGDP',
             'oil_shareGDP', 'gdp_pc_growth','voice','cor_control',
             'stringency', 'AS_GDPpct', 'deaths_perHund']]
count=1
plt.subplots(figsize=(16, 16))
for i in df_plot.columns:
    plt.subplot(5,2,count)
    sns.distplot(df_plotdist[i])
    plt.ylabel(i)
    plt.xlabel('')
    count+=1

### Regressao
df_plot = df_final[['GDP_rev_IMF','tour_shareGDP','merchexp_shareGDP',
                'oil_shareGDP', 'gdp_pc_growth','voice','cor_control',
                'stringency', 'AS_GDPpct', 'deaths_perHund']]

count=1
plt.subplots(figsize=(20, 20))
for i in df_plot.columns:
    plt.subplot(5,2,count)
    sns.regplot(df_plot["GDP_rev_IMF"],df_plot[i])
    plt.xlabel('GDP growth prediciton review')
    plt.ylabel(i)
    count+=1
...