Tag

causalidade Archives - Análise Macro

O ovo ou a galinha? Teste de causalidade de Granger na granja

By | Data Science

O ovo ou a galinha é uma referência a um dilema clássico de causalidade que comumente surge da pergunta "O que veio primeiro, o ovo ou a galinha?" O dilema parte da observação de que a galinha nasce do ovo e o ovo é colocado pela galinha, de modo que seria difícil determinar a sequência dos acontecimentos. A resposta é apropriadamente endereçada pela biologia evolutiva, mas aqui faremos uso desse dilema mundano para trazer um pouco de luz com uma aplicação do teste de causalidade de Granger.

Causalidade no sentido de Granger

O teste de causalidade de Granger serve para verificar se uma série temporal é útil em termos de previsão de outra série temporal, ou seja, o termo "causalidade" deve ser pensado como "precedência temporal". Portanto, ara entender e aplicar o teste vale começar distinguindo:

  • O que o teste não é: o teste de causalidade de Granger não testa a causalidade no sentido estrito entre duas variáveis, ou seja, não estamos investigando inferência causal - tópico muito explorado em áreas da estatística e econometria - entre X e Y.
  • O que o teste é: no teste de causalidade de Granger a causalidade tem o sentido de precedência temporal, ou seja, com o teste podemos avaliar se uma variável X precede temporalmente uma variável  Y, quando valores defasados de X, além de valores defasados de Y, ajudam a prever o valor presente de Y. E essa informação de precedência temporal não necessariamente significa que uma variável causa a outra.

Por isso que é usado, quando identificamos precedência temporal com o teste, uma terminologia diferente para evitar confusão, ou seja, falamos que a "série X causa no sentido de Granger a série Y" ou "X Granger-causa Y".

Intuitivamente, com a aplicação do teste podemos dizer que uma série temporal X Granger-causa outra série temporal Y se as previsões dos valores de Y com base em seus próprios valores defasados e nos valores defasados de X forem "melhores" do que as previsões de Y baseadas apenas nos próprios valores defasados de Y. Formalmente, o teste compara dois modelos de regressão linear:

  • Modelo restritoyt = α0 + α1yt−1 + ⋯ + αmyt−m + errot
  • Modelo irrestritoyt = α0 + α1yt−1 + ⋯ + αmyt−m + β1xt-1 + ⋯ + βmxt−m + errot

O número de defasagens m deve ser especificado pelo usuário. Dessa forma, testa-se as hipóteses:

  • Hipótese nula: a série temporal X não Granger-causa a série Y
  • Hipótese alternativa: a série temporal X Granger-causa a série Y

Um teste F é então aplicado para determinar se os coeficientes dos valores passados de xt são conjuntamente iguais a zero (H0: β1 = ⋯ = βm = 0), produzindo um p-valor. Dessa forma, se o p-valor for menor que um determinado nível de significância (por exemplo, 5%), podemos rejeitar a hipótese nula e dizer que a série temporal X Granger-causa a série Y. Isso significa que os valores de previstos para Y baseados em suas próprias defasagens e em defasagens de X são melhores do que valores previstos para Y baseados somente em defasagens de Y. Usualmente aplica-se o teste em ambas as direções, ou seja, de X Y e de Y X.

Na prática, você deve testar se as séries de interesse são estacionárias (testes como ADF, PP, KPSS, etc.), diferenciar as séries se necessário e então aplicar o teste de causalidade de Granger nas séries estacionárias (diferenciadas ou não).

Supondo que o dilema do ovo e da galinha possa ser representado através dos dados disponibilizados por Zeileis e Hothorn (2002), isto é, as séries temporais anuais de população de galinhas em 1º de dezembro e produção de milhões de dúzias de ovos nos EUA expostas no gráfico acima, partimos agora para a aplicação prática do que foi exposto acima.

Este exercício tem inspiração nos trabalhos prévios de Thurman e Fisher (1988) e Shikida et al. (2011). Códigos para replicação estão disponíveis para membros do Clube AM.

Testes de estacionariedade

Em primeiro lugar, aplicamos os testes de estacionariedade ADF, KPSS e PP em diversas especificações para as séries de ovos e galinhas. Abaixo apresentamos os resultados resumidos, mostrando o número de diferenças para a série ser estacionária, ao nível de significância de 5%:

Como resultado, todos os testes concordam que as séries são não estacionárias. Dessa forma, tiramos a primeira diferença das mesmas antes de prosseguir.

Teste de Causalidade de Granger

O próximo passo é aplicar o teste de causalidade de Granger sobre as séries de ovos e galinhas "estacionárias". Como dito, um número de defasagens deve ser especificado e há várias formas de realizar isso (como o uso de critérios de informação), mas aqui simplesmente testamos de 1 a 5 defasagens e encontramos resultados similares. Abaixo apresentamos os resultados do teste de causalidade de Granger em ambas as direções, ovo → galinha e galinha → ovo, usando 4 galinhas/ovos "defasadas":

Analisando os resultados, na direção Ovo → Galinha rejeitamos a hipótese nula ao nível de 5%, ou seja, podemos dizer que há precedência temporal ou, mais formalmente, a série temporal Ovo Granger-causa a série temporal Galinha. Na direção oposta falha-se em rejeita a hipótese nula (portanto Galinha não Granger-causa Ovo). Informalmente, o que o teste está dizendo é que ovos precedem galinhas, o que é coerente com a resposta da biologia evolutiva.

Saiba mais

Espero que esse exercício tenha despertado o seu interesse sobre esses assuntos e outras possíveis aplicações. Saiba mais e se aprofunde nos tópicos através do curso de séries temporais. Tenha acesso aos códigos de replicação fazendo parte do Clube AM.

Referências

Shikida, C., de Araujo Junior, A. F., & de Figueiredo, E. A. (2011). Ovos e galinhas: revisitando um dilema secular a partir de dados brasileiros. Revista Economia & Tecnologia, 7(3).

Thurman, W. N., & Fisher, M. E. (1988). Chickens, eggs, and causality, or which came first. American journal of agricultural economics, 70(2), 237-238.

Zeileis, A., & Hothorn, T. (2002). Diagnostic Checking in Regression Relationships. R News 2: 7–10.

Correlação não implica em Causalidade

By | Hackeando o R

A frase "correlação não implica causalidade" é bem difundida no campo da análise de efeito de uma variável X sobre Y. A frase é totalmente correta, mas mesmo que muitas vezes ditas, muitas pessoas ainda não entendem o porque é afirmado. Para entender melhor sobre essa questão, iremos realizar uma breve interpretação sobre o efeito de uma variável sobre a outra explicando o que é correlação e regressão utilizando o R, e por fim, discorreremos sobre o que é causalidade.

O que é correlação?

A correlação é uma medida que visa calcular a força da relação linear entre duas variáveis, principalmente de duas variáveis contínuas. A correlação de Pearson é a mais utilizada para representar este indicador, sendo definida como a covariância entre duas variáveis normalizada (i.e dividida) pelo produto de seus desvios padrão.

As duas questões mais importantes que devemos sempre lembrar sobre correlação são:

1) É uma relação linear, ou seja, uma linha linear de ajuste pode ser traçada em um gráfico de dispersão das duas variáveis para verificar visualmente esse ponto.

2) A força é bidirecional, ou seja, a força medida pela correlação exemplifica a relação entre as duas variáveis e não uma sobre a outra.

A correlação pode ser negativa, positiva ou nula (próxima de zero). Visualmente, podemos verificar estas três possíveis relações.

Como exemplo, utilizamos o dataset palmerpenguins para exemplificar a correlação entre as variáveis, construindo uma matriz de correlação. Vemos abaixo a estrutura do dataset, bem como as variáveis contínuas que podemos relacionar.

Além da matriz, também seria interessante ver a relação entre as variáveis através de um gráfico de dispersão de modo que possamos avaliar a relação linear entre as variáveis. No caso abaixo, visualizamos a relação de bill_length_mm (comprimento do culmen) e body_mass_g (massa corporal).

Existem diversos tipos de correlação, bem como métodos de inferências (dado que estamos lidando com amostras), sendo possível realizar testes de hipóteses.  O pacote {correlation} facilita utilização destas ferramentas, porém, não iremos nos aprofundar sobre elas neste post.

Realizamos uma breve introdução ao conceito de correlação, vimos que podemos medir a força da relação entre duas variáveis, mas e se quisermos avaliar o efeito de uma variável X em Y? Para isso, podemos evoluir para a Regressão Linear.

Regressão Linear

Para podermos avaliar o possível efeito de uma variável em outra utilizamos a Regressão Linear. Como dito anteriormente, podemos traçar uma reta para verificar a linearidade das duas variáveis (isto porque a regressão linear também deve possuir uma relação linear, não é?), a questão aqui é que esta reta é expressa também através de uma equação e será através dela que iremos definir a relação entre a variável dependente e independente.

     $$Y = \beta_{0} + \beta_{1}X + e$$

Em que Y será a variável dependente e X será a variável independente.  \beta_{0} é o intercepto,  \beta_{1} é o coeficiente da regressão que vai ponderar o efeito de X sobre Y. Não trataremos sobre como calcular  \beta_{1} , no qual ensinamos essa questão no nosso curso de Econometria.

O  e significa o termo de erro da nossa equação, isto é, caso calcularmos o efeito de X sobre Y, o termo de erro será a diferença entre o que estimamos e o valores reais, ou seja, toda a informação que não foi inserida na nossa equação. Para solucionar este ponto, podemos inserir dentro da equação as variáveis que carregam esta informação, evoluindo o nosso modelo para uma Regressão Linear Múltipla.

Como estamos trabalhando com uma amostra, também queremos inferir o efeito da regressão para a população. Podemos verificar este ponto através do teste t ou p valor dado um nível de confiança.

Causalidade

E onde a causalidade entra em tudo isso? Afinal, correlação é uma forma ver a relação entre as duas variáveis, e a regressão é uma forma de ver o efeito de X em Y. Intuitivamente, já sabemos que a correlação não é o melhor método para buscar causalidade, sendo o segundo método mais apropriado.

Dizer que há causalidade em algo, significa dizer que há o uma variável causa efeito em outra. Entretanto, nem sempre é possível ter certeza desta questão, mesmo com indicadores estatísticos, portanto, é necessário mais que isso.

Um dos problemas que podemos tropeçar é a correlação espúria, que diz respeito quando há uma relação estatística entre duas variáveis, entretanto, essa relação é causada por pura coincidência ou por causa de uma terceira variável. Este é um dos diversos problemas que podemos ter ao realizarmos os cálculos entre duas variáveis.

Veja por exemplo a correlação entre bill_length_mm e flipper_length_mm (que diz respeito ao tamanho das asas do pinguim). Há uma força muito grande entre ambas, por que há esse efeito? E se fizéssemos um exemplo com regressão?

Vemos que há uma forte relação do efeito de uma sobre a outra. Mas podemos pensar, é possível mesmo que quanto maior a nadadeira do pinguim, maior será o comprimento de seu cúlmen? Não faz sentido lógico (por mais que eu não entenda de pinguins). É possível que uma terceira variável fora do modelo esteja influenciando ambas as variáveis (talvez a altura do pinguim?). De fato, devemos ter uma olhar crítico e mais dados em mãos para afirmar qualquer causalidade.

____________________________________________

Quer saber mais?

Veja nossos cursos de R e Python aplicados para a Análise de Dados e Economia

_____________________________________________

Referências

Mount, G. Advancing Into Analytics. Estados Unidos, O'Reilly Media, 2021.

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente