Aula 8: Regressão Descontínua e Synthetic Control no Mercado Financeiro

Aula 8: Regressão Descontínua e Synthetic Control

Metodologias Avançadas para Inferência Causal no Mercado Financeiro

Objetivos de Aprendizagem

  • Compreender os fundamentos teóricos dos métodos de Regressão Descontínua (RD) e Synthetic Control (SC)
  • Aprender a identificar situações adequadas para aplicação de cada método no mercado financeiro
  • Desenvolver habilidades para implementar e interpretar corretamente resultados de ambas as abordagens
  • Analisar aplicações práticas desses métodos em questões relevantes para o mercado financeiro brasileiro

1. Regressão Descontínua (RD): Fundamentos Teóricos

O método de Regressão Descontínua explora situações onde a probabilidade de receber um tratamento muda abruptamente em um determinado limiar (cutoff) de uma variável contínua de atribuição. Esta abordagem permite estimar efeitos causais comparando unidades logo acima e logo abaixo desse limiar.

Princípios da Regressão Descontínua

O design de RD utiliza o fato de que unidades próximas ao limiar são similares em todas as características (observáveis e não observáveis), exceto na probabilidade de receber o tratamento. Assim, qualquer descontinuidade no resultado de interesse nesse limiar pode ser atribuída ao efeito causal do tratamento.

Principais variantes:

  • RD Sharp (Nítida): O tratamento é determinado com certeza pelo valor da variável de atribuição (probabilidade muda de 0 para 1 no limiar)
  • RD Fuzzy (Difusa): O tratamento é apenas parcialmente determinado pelo limiar (a probabilidade muda, mas não necessariamente de 0 para 1)
Lógica da Regressão Descontínua RD Sharp Variável de Atribuição Limiar (c) Resultado Efeito Causal Não Tratado Tratado RD Fuzzy Variável de Atribuição Limiar (c) Probabilidade do Tratamento Salto na Probabilidade Baixa Prob. Alta Prob. RD Sharp: Tratamento determinado com certeza pelo limiar RD Fuzzy: Tratamento parcialmente determinado pelo limiar

Figura 1: Design de Regressão Descontínua Sharp e Fuzzy

Identificação Causal na Regressão Descontínua

A identificação do efeito causal na RD depende de algumas hipóteses fundamentais:

  1. Continuidade dos Resultados Potenciais: Na ausência do tratamento, os resultados potenciais seriam contínuos ao redor do limiar
  2. Ausência de Manipulação Precisa: Os indivíduos não conseguem manipular precisamente seu valor na variável de atribuição
  3. Continuidade das Covariáveis: Todas as outras características são contínuas ao redor do limiar

Se estas hipóteses forem válidas, o efeito causal do tratamento pode ser estimado como:

τRD = limx↓c E[Y|X=x] - limx↑c E[Y|X=x]

Onde c é o valor do limiar (cutoff) e X é a variável de atribuição.

# Implementação de Regressão Descontínua em Python
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
from rdrobust import rdrobust, rdplot

def rd_analysis(df, outcome_var, running_var, cutoff, bw=None, covariates=None):
    """
    Realiza análise de Regressão Descontínua
    
    Args:
        df: DataFrame com os dados
        outcome_var: Nome da variável de resultado
        running_var: Nome da variável de atribuição
        cutoff: Valor do limiar (cutoff)
        bw: Bandwidth (opcional, se None usa seleção ótima)
        covariates: Lista de covariáveis para controle (opcional)
Returns:
        Resultados da RD e gráficos
    """
    # Criar variável de tratamento
    df['treat'] = (df[running_var] >= cutoff).astype(int)
    
    # RD Estimação usando rdrobust (implementação robusta)
    if covariates:
        rd_results = rdrobust(y=df[outcome_var], x=df[running_var], 
                             c=cutoff, covs=df[covariates], h=bw)
    else:
        rd_results = rdrobust(y=df[outcome_var], x=df[running_var], 
                             c=cutoff, h=bw)
    
    # Criar gráfico de RD
    rdplot_results = rdplot(y=df[outcome_var], x=df[running_var], c=cutoff)
    
    # Dados para análise de placebo (teste de continuidade de covariáveis)
    placebo_tests = {}
    if covariates:
        for cov in covariates:
            placebo = rdrobust(y=df[cov], x=df[running_var], c=cutoff)
            placebo_tests[cov] = placebo.coef[0]
    
    return rd_results, rdplot_results, placebo_tests

Verificação de Leitura #1

Qual a principal diferença entre Regressão Descontínua Sharp e Fuzzy?




Aplicação em Finanças: Índice Russell 2000 e Estrutura de Propriedade

Um exemplo clássico de aplicação de Regressão Descontínua em finanças é estudar o efeito da inclusão no índice Russell 2000 sobre a estrutura de propriedade das empresas.

Contexto: O índice Russell 2000 é composto pelas 2000 menores empresas do ranking Russell 3000, que inclui as 3000 maiores empresas por capitalização de mercado nos EUA. A inclusão no índice é determinada pelo ranking de capitalização de mercado em uma data específica de cada ano.

Setup de RD:

  • Variável de atribuição (X): Ranking de capitalização de mercado
  • Limiar (c): Posição de corte entre Russell 1000 e Russell 2000 (1000ª empresa)
  • Tratamento (D): Inclusão no Russell 2000 (vs. Russell 1000)
  • Variáveis de resultado (Y): Propriedade institucional, número de investidores institucionais, etc.

Resultados: Empresas logo abaixo do limiar (incluídas no Russell 2000) experimentam aumento significativo na propriedade institucional em comparação com empresas logo acima do limiar (incluídas no Russell 1000).

Este exemplo pode ser adaptado para o contexto brasileiro, estudando efeitos da inclusão no Ibovespa ou outros índices da B3.

Quando Utilizar Regressão Descontínua no Mercado Financeiro Brasileiro?

A Regressão Descontínua é particularmente útil no contexto financeiro quando:

  1. Existem regras claras baseadas em limiares:
    • Inclusão/exclusão de índices (Ibovespa, índices de governança da B3)
    • Limites regulatórios baseados em valor de mercado ou outros indicadores
    • Normas de disclosure que dependem do tamanho da empresa
    • Regras de listagem em diferentes segmentos da B3
  2. A variável de atribuição não pode ser manipulada precisamente:
    • Valor de mercado em determinada data
    • Ratings de crédito próximos a limiares de investment grade
    • Indicadores financeiros usados para classificações regulatórias
  3. Há descontinuidade clara no tratamento no limiar:
    • Obrigações regulatórias específicas
    • Elegibilidade para programas ou políticas financeiras

2. Synthetic Control Method: Fundamentos Teóricos

O método Synthetic Control (SC) é uma abordagem desenvolvida para avaliar o efeito de intervenções em estudos de caso comparativos quando unidades tratadas são poucas (às vezes apenas uma) e unidades de controle convencionais podem não ser adequadas.

Princípios do Synthetic Control

O método cria um "controle sintético" - uma combinação ponderada de unidades não tratadas - que se assemelha à unidade tratada em características relevantes antes do tratamento. Este controle sintético serve então como contrafactual para a unidade tratada após a intervenção.

Características principais:

  • Transparência: Os pesos usados para construir o controle sintético são determinados objetivamente
  • Interpolação não extrapolação: Restrições nos pesos evitam extrapolação para fora do suporte dos dados
  • Formalização do processo de seleção de controles: Substitui a seleção ad hoc de unidades de comparação
  • Flexibilidade: Pode incorporar tendências temporais e múltiplas características
Lógica do Método Synthetic Control Tempo Variável de Resultado Tratamento Pré-Tratamento Pós-Tratamento Efeito do Tratamento Unidade Tratada Controle Sintético Construção do Controle Sintético Unidade 1: 0.45 Unidade 2: 0.30 Unidade 3: 0.25

Figura 2: Ilustração do método Synthetic Control

Fundamentos Metodológicos do Synthetic Control

Considerando J+1 unidades, onde j=1 é a unidade tratada e j=2,...,J+1 são potenciais controles:

  1. Período pré-tratamento: t = 1,...,T0
  2. Período pós-tratamento: t = T0+1,...,T
  3. Variável de resultado: Yjt
  4. Preditores: Xj = (Zj, Yj1, ..., YjT₀)

O controle sintético é definido pelo vetor de pesos W = (w2, ..., wJ+1)' tal que:

wj ≥ 0 para j = 2, ..., J+1 e Σ wj = 1

Os pesos são escolhidos para minimizar:

||X1 - X0W||V = √[(X1 - X0W)' V (X1 - X0W)]

Onde V é uma matriz que determina a importância relativa dos preditores.

# Implementação de Synthetic Control em Python
import pandas as pd
import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt

def synthetic_control(df, unit_column, time_column, outcome_column, treated_unit,
                     treatment_period, predictors=None):
    """
    Implementa o método Synthetic Control
    
    Args:
        df: DataFrame com os dados em formato painel
        unit_column: Nome da coluna que identifica as unidades
        time_column: Nome da coluna de tempo
        outcome_column: Nome da coluna da variável de resultado
        treated_unit: Identificador da unidade tratada
        treatment_period: Período em que o tratamento ocorre
        predictors: Lista de colunas adicionais para usar como preditores além do outcome pré-tratamento
    
    Returns:
        Resultados do Synthetic Control e gráficos
    """
    # Separar períodos pré e pós tratamento
    pre_treatment = df[df[time_column] < treatment_period]
    post_treatment = df[df[time_column] >= treatment_period]
    
    # Identificar unidades de controle
    control_units = df[df[unit_column] != treated_unit][unit_column].unique()
    
    # Preparar dados para a unidade tratada
    treated_pre = pre_treatment[pre_treatment[unit_column] == treated_unit]
    treated_post = post_treatment[post_treatment[unit_column] == treated_unit]
    
    # Construir matriz de preditores para unidade tratada e controles
    X1 = treated_pre.pivot(index=time_column, columns=unit_column, values=outcome_column)
    X0 = pre_treatment[pre_treatment[unit_column].isin(control_units)].pivot(
        index=time_column, columns=unit_column, values=outcome_column)
    
    # Adicionar outros preditores, se especificados
    if predictors:
        for predictor in predictors:
            pred_treated = pre_treatment[pre_treatment[unit_column] == treated_unit][predictor].mean()
            pred_controls = pre_treatment[pre_treatment[unit_column].isin(control_units)].groupby(unit_column)[predictor].mean()
            
            # Adicionar às matrizes
            X1[predictor] = pred_treated
            for unit in control_units:
                X0[predictor] = pred_controls
    
    # Encontrar pesos ótimos usando o método de otimização
    synth_model = linear_model.Lasso(alpha=0.01, positive=True)
    synth_model.fit(X0.values, X1.iloc[:, 0].values)
    weights = synth_model.coef_ / np.sum(synth_model.coef_)
    
    # Construir controle sintético
    synthetic_pre = np.zeros(len(treated_pre))
    synthetic_post = np.zeros(len(treated_post))
    
    for i, unit in enumerate(control_units):
        unit_pre = pre_treatment[pre_treatment[unit_column] == unit][outcome_column].values
        unit_post = post_treatment[post_treatment[unit_column] == unit][outcome_column].values
        
        synthetic_pre += weights[i] * unit_pre
        synthetic_post += weights[i] * unit_post
    
    # Calcular efeito do tratamento
    treatment_effect = treated_post[outcome_column].values - synthetic_post
    
    # Preparar resultados para retorno
    results = {
        'weights': dict(zip(control_units, weights)),
        'treated_pre': treated_pre[outcome_column].values,
        'treated_post': treated_post[outcome_column].values,
        'synthetic_pre': synthetic_pre,
        'synthetic_post': synthetic_post,
        'treatment_effect': treatment_effect,
        'time_pre': treated_pre[time_column].values,
        'time_post': treated_post[time_column].values
    }
    
    return results

Verificação de Leitura #2

Qual é o propósito principal do método Synthetic Control?




Aplicação: Impacto do Impeachment na Economia Brasileira

Um exemplo de aplicação do método Synthetic Control no contexto brasileiro seria avaliar o impacto do impeachment da presidente Dilma Rousseff em 2016 sobre indicadores econômicos e financeiros.

Contexto: O impeachment representou uma mudança significativa na política econômica brasileira, com potenciais impactos nos mercados financeiros, investimentos e crescimento econômico.

Setup do Synthetic Control:

  • Unidade tratada: Brasil
  • Unidades de controle potenciais: Outros países emergentes (México, Chile, Colômbia, Peru, África do Sul, Turquia, etc.)
  • Período pré-tratamento: 2010-2016 (1º semestre)
  • Período pós-tratamento: 2016 (2º semestre)-2018
  • Variáveis de resultado: Índice da bolsa (Ibovespa), taxa de câmbio, CDS (Credit Default Swap), fluxo de investimento estrangeiro
  • Preditores: PIB per capita, inflação, taxa de juros, dívida/PIB, crescimento das exportações, índices de governança

Resultados hipotéticos: Comparado ao "Brasil sintético", o Ibovespa real apresentou valorização de 15% acima do esperado, o CDS caiu 100 pontos-base mais que o esperado, e o fluxo de investimento estrangeiro aumentou significativamente, sugerindo que a mudança política teve impacto positivo na percepção dos mercados financeiros sobre o país.

Quando Utilizar Synthetic Control no Mercado Financeiro Brasileiro?

O método Synthetic Control é especialmente útil no contexto financeiro brasileiro quando:

  1. O foco está em uma unidade específica afetada por uma intervenção:
    • Uma empresa específica que passou por uma importante mudança corporativa
    • Um setor que foi alvo de uma intervenção regulatória específica
    • O mercado financeiro brasileiro como um todo após uma mudança política ou regulatória
  2. Existem poucas unidades tratadas (às vezes apenas uma):
    • Análise de fusões ou aquisições específicas
    • Estudos de escândalos corporativos únicos (ex: caso Petrobras na Lava Jato)
    • Impacto de grandes eventos econômicos localizados (ex: desastre de Mariana para o setor de mineração)
  3. Há bons dados pré-tratamento por período prolongado:
    • Séries temporais longas disponíveis para a unidade tratada e controles
    • Ausência de outros grandes choques no período pré-tratamento

3. Comparação e Aplicações no Mercado Financeiro Brasileiro

Regressão Descontínua (RD)

Contexto ideal: Quando existem regras bem definidas baseadas em limiares.

Aplicações no mercado brasileiro:

  • Efeito da inclusão no Ibovespa sobre liquidez e valorização
  • Impacto dos diferentes níveis de governança da B3 (N1, N2, NM) baseados em requisitos mínimos
  • Efeito de regras regulatórias baseadas em tamanho (ex: empresas acima/abaixo de determinado valor de mercado)
  • Mudanças na divulgação de informações em torno de limiares contábeis

Pontos fortes:

Causalidade bem identificada próxima ao limiar
Não requer dados temporais extensos
Intuitivo e graficamente claro

Limitações:

Efeito identificado apenas localmente (próximo ao limiar)
Requer amostra grande em torno do limiar
Sensível à escolha da largura de banda (bandwidth)
Synthetic Control (SC)

Contexto ideal: Quando se analisa o impacto de uma intervenção sobre uma unidade específica.

Aplicações no mercado brasileiro:

  • Impacto de grandes eventos econômicos ou políticos (impeachment, Lava Jato, eleições)
  • Efeito de mudanças corporativas específicas (troca de CEO, escândalos)
  • Consequências de desastres corporativos (Samarco, Vale)
  • Mudanças regulatórias direcionadas a setores específicos

Pontos fortes:

Ideal para estudos de caso com poucas unidades tratadas
Controle sintético adaptado especificamente à unidade tratada
Permite inferência visual clara

Limitações:

Requer série temporal longa antes do tratamento
Sensível à seleção do pool de controles
Inferência estatística menos padronizada

Verificação de Leitura #3

Qual das seguintes situações seria mais adequada para aplicação do método Synthetic Control no mercado financeiro brasileiro?




4. Implementação Prática e Considerações Metodológicas

Ao aplicar os métodos de RD e SC no mercado financeiro brasileiro, é importante considerar alguns aspectos práticos e metodológicos:

Regressão Descontínua (RD)

Validação visual: Sempre comece com uma análise gráfica para verificar se há evidência visual de descontinuidade no limiar.
Teste de manipulação: Verifique se não há aglomeração (bunching) anormal de observações em torno do limiar, o que sugeriria manipulação.
Teste de continuidade de covariáveis: Confirme que outras variáveis não apresentam descontinuidades no limiar.
Escolha de bandwidth: Use métodos objetivos para selecionar a largura de banda ótima (ex: Imbens-Kalyanaraman).
Análise de sensibilidade: Verifique se os resultados são robustos a diferentes especificações (lineares, quadráticas) e bandwidths.
Testes placebo: Realize testes em falsos limiares para confirmar que a descontinuidade não é espúria.

Synthetic Control (SC)

Seleção de controles: Inclua apenas unidades não afetadas pelo tratamento e com características similares à unidade tratada.
Escolha de preditores: Selecione variáveis que são importantes determinantes do resultado de interesse.
Ajuste pré-tratamento: Verifique se o controle sintético replica bem a trajetória da unidade tratada antes do tratamento.
Testes placebo: Aplique o método a unidades não tratadas para verificar se o efeito encontrado não é espúrio.
Robustez à composição: Teste se os resultados são sensíveis à remoção de unidades específicas do pool de controles.
Inferência: Use métodos de inferência baseados em permutação, uma vez que a inferência clássica não se aplica.

Desafios Adicionais no Contexto Brasileiro

Alguns desafios específicos para aplicação desses métodos no mercado brasileiro incluem:

  • Tamanho do mercado: Número limitado de empresas listadas, reduzindo o poder estatístico para RD e o pool de controles para SC
  • Volatilidade macroeconômica: Choques frequentes podem comprometer a estabilidade dos períodos pré-tratamento no SC
  • Intervenções múltiplas: Dificuldade em isolar o efeito de uma intervenção específica quando várias ocorrem em períodos próximos
  • Qualidade dos dados: Possíveis lacunas e inconsistências nas séries históricas
  • Concentração setorial: Alguns setores têm poucas empresas, dificultando a construção de controles sintéticos adequados

Verificação de Leitura #4

Por que é importante realizar testes de manipulação na metodologia de Regressão Descontínua?




5. Estudos de Caso Relevantes

Caso 1: Regressão Descontínua - Níveis de Governança da B3

Um estudo hipotético sobre o impacto da migração para o Novo Mercado da B3 no custo de capital das empresas, utilizando as regras de free float mínimo como fonte de variação exógena.

Contexto: A B3 exige um free float mínimo de 25% para listagem no Novo Mercado. Empresas ligeiramente acima desse limiar têm maior probabilidade de migrar para o segmento mais exigente de governança.

Design de RD Fuzzy:

  • Variável de atribuição: Percentual de free float antes da mudança de regras
  • Limiar: 25% de free float
  • Tratamento: Migração para o Novo Mercado
  • Variáveis de resultado: Custo de capital implícito, bid-ask spread, cobertura de analistas

Resultados: Empresas que migraram para o Novo Mercado devido ao atendimento do requisito mínimo de free float experimentaram uma redução de 1,2 pontos percentuais no custo de capital em comparação com empresas similares que ficaram ligeiramente abaixo do limiar.

Caso 2: Synthetic Control - Impacto da Operação Lava Jato na Petrobras

Um estudo hipotético sobre o impacto da Operação Lava Jato no valor de mercado e performance operacional da Petrobras.

Contexto: A Operação Lava Jato, iniciada em 2014, revelou um esquema de corrupção envolvendo a Petrobras, resultando em mudanças significativas na governança e gestão da empresa.

Design de SC:

  • Unidade tratada: Petrobras
  • Pool de controles: Outras grandes empresas petrolíferas globais (Exxon, Shell, BP, Total, Chevron, etc.)
  • Período pré-tratamento: 2010-2014
  • Período pós-tratamento: 2014-2018
  • Variáveis de resultado: Valor de mercado, razão EV/EBITDA, margem operacional
  • Preditores: Tamanho, reservas, produção, investimentos, alavancagem, preço do petróleo (sensibilidade)

Resultados: Após um impacto negativo inicial (queda de 40% no valor de mercado em relação ao contrafactual), a Petrobras apresentou recuperação a partir de 2016, com melhorias significativas em margens operacionais e valorização, sugerindo que as mudanças de governança e gestão tiveram efeito positivo de médio prazo, apesar do choque inicial negativo.

Verificação de Leitura #5

No estudo de caso sobre a Operação Lava Jato e a Petrobras, por que é importante incluir outras empresas petrolíferas globais no pool de controles para o Synthetic Control?




Quiz Final

1. Qual das seguintes situações seria mais adequada para aplicação de Regressão Descontínua no mercado financeiro brasileiro?




2. Na metodologia de Regressão Descontínua Fuzzy, qual a principal diferença em relação à RD Sharp?




3. No método Synthetic Control, como são determinados os pesos para construir o contrafactual?




4. Em uma análise de Regressão Descontínua sobre o efeito da inclusão no Ibovespa, o teste de McCrary (teste de manipulação) mostra aglomeração significativa de empresas logo acima do limiar de inclusão. O que isso sugere?




5. Considerando as limitações do mercado financeiro brasileiro, qual afirmação é VERDADEIRA sobre a aplicação dos métodos de Regressão Descontínua e Synthetic Control neste contexto?




Leituras Recomendadas

  • Angrist, J. D., & Pischke, J. S. (2008). Mostly Harmless Econometrics. Princeton University Press. Capítulo 6.
  • Imbens, G., & Lemieux, T. (2008). "Regression discontinuity designs: A guide to practice". Journal of Econometrics, 142(2), 615-635.
  • Abadie, A., Diamond, A., & Hainmueller, J. (2010). "Synthetic control methods for comparative case studies: Estimating the effect of California's tobacco control program". Journal of the American Statistical Association, 105(490), 493-505.
  • Abadie, A., & Gardeazabal, J. (2003). "The economic costs of conflict: A case study of the Basque Country". American Economic Review, 93(1), 113-132.
  • Carvalho, C. V., & Martins, O. S. (2018). "Características do comitê de auditoria e o gerenciamento de resultados: um estudo nas empresas listadas na BM&FBOVESPA". Revista Contabilidade & Finanças, 29(77), 219-235.

Para a Próxima Aula

Preparem-se para a última aula do curso, onde discutiremos Machine Learning para Inferência Causal. Leiam Athey & Imbens (2017): "The State of Applied Econometrics: Causality and Policy Evaluation".

Referência em aprendizagem

About Us

Terms of Use

Our Team

How It Works

Accessibility

Support

FAQs

Terms & Conditions

Privacy Policy

Career

Download nosso App

Quick Links

About

Help Centre

Business

Contact

© 2025 Axioma Informática e Tecnologia