Causalidade de Granger
Visão geral
A causalidade de Granger (Granger causality) é um conceito da análise de séries temporais que formaliza uma noção preditiva de causalidade:
Uma série temporal (X_t) Granger-causa outra série (Y_t) se valores passados de (X) contêm informação que ajuda a prever (Y) além do que está contido em valores passados de (Y) (e possivelmente de outras variáveis).
A causalidade de Granger é amplamente utilizada porque é operacional: você pode testá-la com modelos estatísticos padrão (mais comumente autorregressões vetoriais (vector autoregressions), VARs) e testes de hipótese (hypothesis tests) (por exemplo, testes Wald/F). No entanto, é crucial entender que a causalidade de Granger não é a mesma coisa que causalidade intervencional ou estrutural conforme estudada em Grafos Causais. Ela pode ser um ingrediente útil na Descoberta Causal a partir de dados de séries temporais, mas vem acompanhada de suposições e limitações importantes.
Intuição: “o passado de \(X\) adiciona poder preditivo para \(Y\)?”
Suponha que você esteja prevendo vendas diárias (Y_t). Você já usa as vendas de ontem (Y_{t-1}), (Y_{t-2}), … como preditores. Agora você considera adicionar gastos passados com publicidade (X_{t-1}, X_{t-2}, \dots).
- Se adicionar (X) defasado reduz o erro de previsão ou produz coeficientes estatisticamente significativos para (X) defasado, então (X) Granger-causa (Y).
- Se (X) defasado não adiciona informação preditiva além de (Y) defasado, então (X) não Granger-causa (Y).
Essa é uma definição baseada em previsão: ela pergunta se (X) vem “antes” de (Y) de um modo que seja útil para prever.
Definição formal (em termos de esperança condicional)
Seja (\mathcal{I}_t) o conjunto de informações disponível no tempo (t). Uma formulação comum é:
\(X\) **não** Granger-causa \(Y\) se, para todos os horizontes (frequentemente testado em 1 passo à frente), \[ \mathbb{E}[Y_{t+1} \mid Y_t, Y_{t-1}, \dots, X_t, X_{t-1}, \dots, Z_t, \dots]
\mathbb{E}[Y_{t+1} \mid Y_t, Y_{t-1}, \dots, Z_t, \dots] ] em que (Z) denota outras variáveis incluídas no modelo (controles).
Assim, a causalidade de Granger é inerentemente condicional ao que está incluído no conjunto de informações (outras séries temporais, transformações, defasagens). É por isso que testes de Granger bivariados podem ser enganosos: incluir variáveis adicionais relevantes pode mudar o resultado.
Modelos VAR: o padrão de trabalho
A implementação mais comum é uma Autorregressão Vetorial (Vector Autoregression) (VAR). Para duas séries (X_t) e (Y_t), uma VAR((p)) pode ser escrita como:
[ Y_t = a_0 + \sum_{i=1}^{p} a_i Y_{t-i} + \sum_{i=1}^{p} b_i X_{t-i} + \varepsilon_{y,t} ] [ X_t = c_0 + \sum_{i=1}^{p} c_i X_{t-i} + \sum_{i=1}^{p} d_i Y_{t-i} + \varepsilon_{x,t} ]
Para testar se (X) Granger-causa (Y), você testa a hipótese nula:
[ H_0: b_1 = b_2 = \dots = b_p = 0 ]
Se você rejeita (H_0), conclui que (X) defasado fornece informação preditiva sobre (Y) dadas as defasagens incluídas.
Escolhendo a ordem de defasagem \(p\)
A seleção de defasagens importa porque:
- Poucas defasagens podem deixar autocorrelação nos resíduos e enviesar a inferência.
- Muitas defasagens reduzem o poder e podem superajustar (overfit).
Abordagens comuns:
- Critérios de informação: AIC, BIC, HQIC
- Diagnósticos de resíduos: verificar autocorrelação dos resíduos
Qual teste é usado?
Em VARs lineares, os testes usuais são:
- teste de Wald (Wald test) (frequentemente reportado como um teste F em muitas implementações)
- Testes de razão de verossimilhança (dependendo da estimação)
Esses são testes de significância conjunta dos coeficientes defasados.
Fluxo de trabalho passo a passo na prática
Uma análise prática de causalidade de Granger frequentemente se parece com isto:
Plotar e pré-processar
- Tratar valores ausentes, outliers, efeitos de calendário.
- Considerar transformações (log, ajuste sazonal).
Verificar estacionariedade (fraca)
- Muitos testes de Granger assumem séries estacionárias.
- Se as séries forem não estacionárias, considerar diferenciação ou modelos que levem em conta cointegração (ver abaixo).
Ajustar uma VAR
- Escolher a ordem de defasagem (p).
- Incluir variáveis adicionais relevantes (causalidade de Granger condicional).
Executar testes de causalidade de Granger
- Testar (X \rightarrow Y) e (Y \rightarrow X).
Validar
- Diagnósticos de resíduos (autocorrelação, heterocedasticidade).
- Comparação de previsões fora da amostra (frequentemente mais significativa do que p-values isoladamente).
Interpretar com cautela
- Causalidade preditiva não é necessariamente causalidade estrutural.
Exemplo prático: gasto com publicidade e vendas
Imagine dados semanais:
- (X_t): gasto com anúncios
- (Y_t): vendas
Você pode encontrar:
- (X \rightarrow Y): significativo (o gasto com anúncios ajuda a prever vendas)
- (Y \rightarrow X): também significativo (previsões de vendas influenciam o orçamento futuro de anúncios)
Isso pode acontecer em empresas reais: orçamentos respondem ao desempenho. Nesse caso, há retroalimentação, e a causalidade de Granger é bidirecional.
Exemplo em Python (statsmodels)
Abaixo está um exemplo mínimo usando statsmodels (ilustrativo; análises reais precisam de diagnósticos e pré-processamento cuidadoso):
import pandas as pd
from statsmodels.tsa.api import VAR
# df has columns: "sales" (Y) and "ad_spend" (X), indexed by time
df = df[["sales", "ad_spend"]].dropna()
model = VAR(df)
# Choose lag order by AIC (could also use BIC/HQIC)
order = model.select_order(maxlags=12)
p = order.aic
results = model.fit(p)
# Test whether ad_spend Granger-causes sales
test_xy = results.test_causality(caused="sales", causing=["ad_spend"], kind="wald")
print(test_xy.summary())
# Test whether sales Granger-causes ad_spend
test_yx = results.test_causality(caused="ad_spend", causing=["sales"], kind="wald")
print(test_yx.summary())
Se o primeiro teste rejeitar a nula, você conclui que gasto com anúncios Granger-causa vendas neste modelo.
Causalidade de Granger condicional (configuração multivariada)
Um ponto forte importante da causalidade de Granger baseada em VAR é que você pode testar relações condicionais.
Suponha que você também acompanhe preço (P_t) e um índice de sazonalidade (S_t). Se você os omitir, pode observar (X \rightarrow Y) puramente porque ambos são impulsionados pela demanda sazonal. Incluir (P_t) e (S_t) pode mudar o resultado.
Isso se conecta diretamente a confundimento: condicionar em variáveis apropriadas é essencial, em espírito semelhante a Confundimento e Ajuste, mas com questões específicas de séries temporais (defasagens, retroalimentação, agregação temporal).
Principais suposições (e o que quebra quando falham)
A causalidade de Granger tem uma interpretação clara sob um conjunto de suposições. Violações são comuns em dados reais de ML/IA.
1) Estacionariedade (ou tratamento apropriado da não estacionariedade)
Muitos testes padrão assumem que as séries temporais são (fracamente) estacionárias: média/variância estáveis e autocovariâncias ao longo do tempo.
Modos de falha
- Se (X_t) e (Y_t) tiverem tendências (raízes unitárias), testes VAR ingênuos podem produzir causalidade de Granger espúria.
Correções comuns
- Diferenciar os dados (trabalhar com (\Delta X_t, \Delta Y_t)).
- Se as séries forem cointegradas (cointegrated), usar um VECM (Vector Error Correction Model), isto é, um Modelo Vetorial de Correção de Erros (VECM), em vez de uma VAR em diferenças.
- Usar procedimentos robustos como o teste de Toda–Yamamoto (Toda–Yamamoto testing) (ajusta uma VAR em níveis com defasagens aumentadas) quando a ordem de integração é incerta.
2) Especificação correta do modelo (linearidade, tamanho de defasagem, variáveis relevantes)
Testes clássicos de Granger assumem uma estrutura autorregressiva linear com uma ordem de defasagem finita.
Modos de falha
- A relação verdadeira é não linear (efeitos limiar, saturação, mudança de regime).
- Tamanho de defasagem incorreto: perder o atraso real pode ocultar a causalidade ou criá-la artificialmente.
- Variáveis omitidas: causas comuns não observadas podem induzir relações preditivas.
Extensões
- Testes de causalidade de Granger não lineares (métodos de kernel, redes neurais, modelos aditivos).
- Alternativas da teoria da informação (por exemplo, entropia de transferência) que capturam dependência não linear (mas ainda enfrentam confundimento e problemas de amostragem).
3) Ausência de causalidade “instantânea” (ou tratamento correto de efeitos contemporâneos)
A causalidade de Granger padrão é sobre influência defasada. Se os efeitos forem essencialmente instantâneos na taxa de amostragem (mesmo período), testes com defasagens podem não capturá-los.
Exemplo: na resolução diária, um evento pode afetar tanto (X_t) quanto (Y_t) dentro do mesmo dia.
Implicações
- Você pode não observar causalidade de Granger mesmo que exista um efeito causal em tempo real.
- Ou pode observar relações defasadas enganosas devido ao momento da medição.
Abordagens
- Aumentar a taxa de amostragem (se possível).
- Modelar explicitamente a estrutura contemporânea (por exemplo, VARs estruturais), embora a identificação exija suposições adicionais (muitas vezes fora do teste de Granger puro).
4) Suposições sobre inovações/resíduos (propriedades do ruído)
A inferência normalmente depende de os resíduos se comportarem de maneira razoável (frequentemente i.i.d. ou pelo menos não correlacionados após o ajuste).
Modos de falha
- Resíduos autocorrelacionados → ordem de defasagem pequena demais ou modelo incorreto.
- Heterocedasticidade (comum em finanças) pode distorcer significância.
Mitigações
- Usar erros-padrão robustos quando disponíveis.
- Modelar a volatilidade separadamente (por exemplo, modelos do tipo GARCH) quando necessário.
5) Agregação temporal e erro de medição
Efeitos causais podem ser obscurecidos ou invertidos pela agregação (efeitos ao estilo Simpson em diferentes escalas de tempo). Erro de medição pode atenuar relações.
Exemplo: se o mecanismo causal verdadeiro é horário, mas você observa somas semanais, estruturas de defasagem podem se tornar enganosas.
Limitações: por que a causalidade de Granger não é “causalidade” no sentido intervencional
A causalidade de Granger é melhor interpretada como:
“(X) é útil para prever (Y) dado o modelo e o conjunto de informações.”
Ela não significa automaticamente:
- Que mudar (X) por intervenção mudaria (Y)
- Que (X) é uma causa direta de (Y)
- Que não há confundimento ou causalidade reversa
Confundimento (causas comuns não observadas)
Uma variável oculta (U_t) pode influenciar tanto (X_t) quanto (Y_t). Então (X) pode prever (Y) mesmo que não tenha influência causal.
Exemplo:
- (U_t): demanda geral
- (X_t): gasto com anúncios (reage a previsões de demanda)
- (Y_t): vendas (impulsionadas pela demanda)
Você pode observar (X \rightarrow Y) no sentido de Granger porque o gasto com anúncios se move com a demanda, e não porque ele cause vendas.
Isso está intimamente relacionado aos problemas discutidos em Confundimento e Ajuste.
Causalidade reversa e ciclos de retroalimentação
Séries temporais frequentemente têm influência bidirecional. A causalidade de Granger pode detectar bidirecionalidade, mas não, por si só, separar “política” de “resposta” nem identificar um mecanismo estrutural unidirecional.
Dependência do conjunto de condicionamento
Na linguagem de grafos causais, a causalidade de Granger depende de quais variáveis são condicionadas — similar a como independência condicional depende de conjuntos de condicionamento na Descoberta Causal. Adicionar ou remover uma variável pode inverter uma conclusão.
Não necessariamente sobre mecanismos
A causalidade de Granger responde “o passado ajuda a prever?”, não “qual mecanismo transmite o efeito?”. Perguntas mecanísticas exigem suposições causais mais fortes e muitas vezes se beneficiam de modelos causais explícitos como em Grafos Causais ou de estratégias de identificação como Variáveis Instrumentais.
Relação com descoberta causal na prática
A causalidade de Granger é frequentemente usada como um bloco de construção para descoberta causal em séries temporais:
- Em descoberta causal temporal (temporal causal discovery), arestas direcionadas frequentemente são restringidas a apontar para frente no tempo (defasagens), tornando a identificação mais fácil do que em cenários i.i.d.
- “(X) Granger-causa (Y)” pode ser tratado como evidência de uma relação direcionada em um grafo defasado no tempo.
No entanto, a descoberta causal normalmente visa inferir algo mais próximo de um grafo estrutural. Testes de Granger sozinhos não resolvem:
- confundidores ocultos,
- relações causais contemporâneas (mesmo instante),
- viés de seleção,
- mudanças de distribuição e intervenções.
Na prática, você pode usar a causalidade de Granger para:
- restringir arestas candidatas,
- propor hipóteses,
- projetar experimentos ou intervenções de acompanhamento,
- escolher atributos para modelos de previsão.
Mas você deve evitar equipará-la a “causalidade verdadeira” a menos que consiga justificar suposições mais fortes (por exemplo, todos os confundidores relevantes medidos, frequência de amostragem apropriada, sistema estável).
Aplicações em IA/ML e ciência de dados
Seleção de atributos e pipelines de previsão
Em ML para séries temporais, variáveis defasadas de muitas fontes podem fazer o espaço de atributos explodir. Testes ao estilo Granger podem atuar como um filtro para quais sinais valem a pena incluir para previsão.
Cuidado: se seu objetivo é pura previsão, você pode se importar mais com desempenho fora da amostra do que com p-values.
Econometria e análise de políticas (com ressalvas)
A causalidade de Granger é amplamente usada em macroeconomia e finanças (por exemplo, oferta monetária e inflação; taxas de juros e câmbio).
Mas perguntas de política são intervencionais. Uma relação Granger-causal não garante que mudanças de política em (X) moverão (Y) como previsto (preocupações do tipo crítica de Lucas; quebras estruturais).
Neurociência e conectividade
Em neurociência, a causalidade de Granger tem sido usada para inferir conectividade funcional direcionada entre regiões do cérebro (incluindo variantes no domínio da frequência). Esses cenários destacam:
- a importância da taxa de amostragem (efeitos instantâneos),
- o confundimento por entradas comuns,
- e a necessidade de pré-processamento cuidadoso.
Operações e monitoramento
Em sistemas industriais, o sensor A pode Granger-causar o sensor B, sugerindo uma dependência direcional que pode ajudar na análise de causa raiz. Ainda assim, sensores correlacionados podem ser impulsionados por regimes operacionais não observados.
Boas práticas e armadilhas comuns
Boas práticas
- Preferir testes multivariados (condicionais) em vez de bivariados quando confundidores plausíveis forem observados.
- Validar com previsão fora da amostra: adicionar (X) defasado melhora materialmente a previsão de (Y)?
- Verificar estacionariedade e considerar cointegração/VECM quando apropriado.
- Inspecionar resíduos e estabilidade; ficar atento a mudanças de regime.
- Tratar resultados como geradores de hipóteses a menos que haja identificação causal mais forte.
Armadilhas comuns
- Executar testes de Granger em séries com tendência sem tratar a não estacionariedade (resultados espúrios).
- Interpretar “Granger-causa” como “intervir em (X) mudará (Y)”.
- Ignorar o momento da medição e efeitos instantâneos.
- Omitir variáveis-chave e chamar a relação resultante de causal.
Resumo
A causalidade de Granger é uma noção amplamente usada e estatisticamente testável de causalidade preditiva para séries temporais: se o passado de (X) melhora a previsão de (Y) além do passado de (Y) (e de outras variáveis incluídas), então (X) Granger-causa (Y). Tipicamente, ela é implementada via modelos VAR e testes de significância conjunta (Wald/F) sobre coeficientes defasados.
Ela é poderosa para previsão, análise exploratória de dependências e como insumo para Descoberta Causal em séries temporais. Mas tem limitações importantes: sensibilidade a confundimento e variáveis omitidas, incapacidade de tratar efeitos instantâneos de forma limpa sem suposições extras, e fragilidade sob não estacionariedade ou quebras estruturais. Para conclusões mecanísticas ou intervencionais, em geral você precisa de estruturas causais mais fortes como Grafos Causais e de tratamento cuidadoso de Confundimento e Ajuste, às vezes complementados por ferramentas de identificação como Variáveis Instrumentais.