Cointegração: o andar do bêbado e seu cachorro

O que é cointegração, explicado pela analogia do bêbado e seu cachorro, e como aplicar o teste de Engle-Granger no Python. O tutorial mostra os dois passos do teste, por que a especificação muda a conclusão, e aplica tudo ao par PETR3 e PETR4 com dados de abril de 2021 a abril de 2022.

Duas séries temporais cointegram quando cada uma vaga sem rumo, mas a distância entre elas permanece estável. É essa propriedade que sustenta estratégias de pairs trading, arbitragem estatística e boa parte da modelagem de séries macroeconômicas.

O conceito tem fama de intimidador, e a formalização é mesmo sofisticada. Mas a intuição cabe numa analogia de três páginas escrita por Michael P. Murray em 1994: o andar de um bêbado e seu cachorro.

Cointegração no Python: trajetórias do bêbado e do cachorro, duas séries de passeio aleatório que nunca se afastam uma da outra
As duas trajetórias são imprevisíveis isoladamente, mas a distância entre elas nunca cresce sem limite.

É essa figura que este tutorial reconstrói em termos estatísticos e depois aplica a um par de ações da B3.

Código do exercício

O código com o teste de cointegração aplicado a um par de ativos, do gráfico ao resíduo da relação de longo prazo está disponível em:

Acessar o código →

A analogia do bêbado e seu cachorro

Imagine que você avista um bêbado saindo do bar, vagando em direção a casa. Ele caminha de forma imprevisível, desviando ora para a esquerda, ora para a direita. Em econometria, chamamos essa trajetória de passeio aleatório, e ela descreve o comportamento de muitas séries econômicas.

Uma característica do passeio aleatório é que a melhor previsão para o valor futuro é o último valor observado. Se você desviar o olhar, seu melhor palpite sobre onde o bêbado está agora é o último lugar onde o viu.

Agora acrescente um cachorro sem coleira, que acompanha o dono. O cachorro também anda ao acaso, atraído por cada cheiro novo. Mas sempre que se afasta demais, o bêbado o chama, e ele volta.

Essa chamada é o ponto da analogia. Encontrar o cachorro passa a ser uma boa pista de onde está o bêbado, e vice-versa, porque existe um mecanismo que corrige a distância entre os dois. Em econometria isso se chama mecanismo de correção de erros.

Séries integradas e a origem do termo

Para entender a palavra "cointegradas", vale começar por séries integradas.

Uma série não estacionária que se torna estacionária depois de ser diferenciada n vezes é dita integrada de ordem n. Diferenciar significa trabalhar com a variação entre períodos consecutivos em vez do nível da série.

Um preço de ação costuma ser integrado de ordem 1: o preço em si vaga sem rumo, mas a variação diária oscila em torno de um valor estável.

Para duas séries cointegrarem, cada uma precisa ser integrada da mesma ordem, e daí vem o prefixo co. A condição é que alguma combinação linear entre elas seja integrada de ordem menor. Com duas séries de ordem 1: se existe uma combinação que resulta numa série estacionária, elas cointegram. Essa combinação é a relação de cointegração, formalizada por Engle e Granger em 1987.

Como funciona o teste de Engle-Granger

O teste segue direto da definição, em dois passos.

O primeiro passo estima a regressão de uma série contra a outra por mínimos quadrados e guarda o resíduo. Esse resíduo é justamente a combinação linear entre as duas séries.

O segundo passo testa se esse resíduo é estacionário. Se for, as séries cointegram; se não for, a relação entre elas era espúria.

A hipótese nula é a de ausência de cointegração. Rejeitá-la, com p-valor abaixo de 0,05, é o que indica relação de longo prazo.

Há uma sutileza nos valores críticos: eles não são os mesmos do teste de raiz unitária comum, porque aqui o resíduo é estimado e não observado. MacKinnon calculou os valores apropriados, adotados pela implementação do statsmodels usa.

O exercício: PETR3 e PETR4

Aplicamos o teste a um par natural: as ações ordinárias (PETR3) e preferenciais (PETR4) da Petrobras. São papéis da mesma empresa, com direitos diferentes, então há razão econômica para esperar que os preços caminhem juntos.

A amostra vai de abril de 2021 a abril de 2022, um ano de pregões, com preço de fechamento ajustado coletado pela biblioteca yfinance. Sem esse ajuste, o dia do pagamento de um dividendo apareceria como queda e contaminaria o teste.

Séries de preço de PETR3 e PETR4 entre abril de 2021 e abril de 2022, usadas no teste de cointegração no Python
O mesmo comportamento da analogia, agora com dados reais. Fonte: Yahoo Finance.

As duas trajetórias sobem e descem juntas, mantendo uma distância aproximadamente constante. Olhar essa diferença diretamente deixa o ponto ainda mais claro.

Spread entre PETR3 e PETR4 oscilando em torno da média, evidência visual de cointegração
O spread oscila em torno de um valor fixo em vez de crescer sem limite. Fonte: Yahoo Finance.

Passo 1: confirmar que as séries são não estacionárias

Antes de testar cointegração, é preciso confirmar que cada série é integrada da mesma ordem. Usamos o teste ADF, cuja hipótese nula é a de que a série tem raiz unitária, ou seja, é não estacionária.

Testamos três especificações, porque a escolha muda o resultado: sem constante, com constante, e com constante e tendência.

Série Especificação Estatística p-valor
PETR3 sem constante 1,4109 0,9602
PETR3 com constante -0,9821 0,7597
PETR3 constante e tendência -2,4160 0,3712
PETR4 sem constante 1,1769 0,9379
PETR4 com constante -1,1695 0,6866
PETR4 constante e tendência -2,6793 0,2448

Todos os p-valores ficam bem acima de 0,05. Não rejeitamos a hipótese nula, então as duas séries são não estacionárias em nível, integradas de ordem 1, como esperado para preços de ações.

Essa é a condição de entrada: as duas são integradas da mesma ordem, então faz sentido testar se cointegram.

Passo 2: o teste de cointegração

Agora a hipótese nula é a de ausência de cointegração. Queremos p-valor abaixo de 0,05 para concluir que as séries caminham juntas no longo prazo.

Especificação Estatística p-valor Conclusão
sem constante -1,1176 0,6510 não rejeita
com constante -4,2028 0,0036 rejeita: cointegram
constante e tendência -4,0382 0,0246 rejeita: cointegram

Com constante, o p-valor fica abaixo do limiar e rejeitamos a hipótese nula. PETR3 e PETR4 cointegram no período analisado.

A escolha da especificação altera o resultado. Sem constante, o p-valor sobe muito acima do limiar e a conclusão se inverte. Não é defeito do teste: o spread entre as duas ações tem média diferente de zero, como o gráfico mostrou, e sem permitir a constante o teste procura algo que os dados não têm.

A escolha da especificação vem da inspeção gráfica, não de testar até dar significante.

O resíduo, que é o que o teste examina

Resíduo da regressão entre PETR3 e PETR4 revertendo ao zero, evidência de cointegração no Python
O resíduo volta ao zero em vez de vagar sem rumo. Fonte: Yahoo Finance.

É esse comportamento que o teste procura. Um resíduo que reverte à média indica que as duas séries estão presas por uma relação de longo prazo, a coleira invisível da analogia.

Veja o exercício rodando em vídeo

A aula abaixo percorre as mesmas etapas deste guia, com o código rodando na tela.

O teste de Engle-Granger aplicado passo a passo, da regressão de longo prazo ao resíduo.

Considerações finais

O exercício mostra o caminho completo, e cada etapa existe por um motivo.

Confirmar que as séries são integradas da mesma ordem vem primeiro, porque testar cointegração entre séries de ordens diferentes não faz sentido.

A especificação do teste precisa vir do gráfico. No caso de PETR3 e PETR4, o spread tem média positiva, e a versão com constante é a única das três que dá a resposta adequada.

E o resultado vale para o período testado, não para sempre. Relações de cointegração se rompem: mudança de governança, alteração em política de dividendos ou entrada de um ativo em índice podem quebrar o vínculo. Quem usa isso em estratégia refaz o teste periodicamente, com janela móvel.

Dominar esse ferramental muda o trabalho de quem lida com séries temporais:

  • Analista quantitativo — identifica pares aptos a estratégias de long-short e sabe quando a relação deixou de valer.
  • Economista — testa relações de longo prazo entre variáveis macro, como juros e inflação ou câmbio e preços.
  • Analista de risco — distingue correlação espúria de vínculo estrutural antes de dimensionar exposição.
  • Pesquisador — evita a regressão espúria, o erro clássico de relacionar séries não estacionárias sem verificar cointegração.

Quer aprender a construir análises como esta?

Na Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e IA você parte sem pré-requisito e chega à coleta, ao tratamento, à modelagem e à visualização de séries econômicas e financeiras.

Conhecer a formação →

Quer acesso a todos os cursos da Análise Macro? Conheça o AM Black, a assinatura anual.

Referências

ENGLE, R. F.; GRANGER, C. W. J. Co-integration and error correction: representation, estimation, and testing. Econometrica, v. 55, n. 2, p. 251-276, 1987.

MURRAY, M. P. A drunk and her dog: an illustration of cointegration and error correction. The American Statistician, v. 48, n. 1, p. 37-39, 1994.

MACKINNON, J. G. Critical values for cointegration tests. In: ENGLE, R. F.; GRANGER, C. W. J. (Ed.). Long-run economic relationships: readings in cointegration. Oxford University Press, 1991.

Leia também

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print
Análise Macro © 2011 / 2026

comercial@analisemacro.com.br – Rua Visconde de Pirajá, 414, Sala 718
Ipanema, Rio de Janeiro – RJ – CEP: 22410-002

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp