Confundimento e Ajuste
O que é confundimento?
Confundimento (confounding) é um motivo comum pelo qual dados observacionais (observational data) podem mostrar uma associação que não equivale a um efeito causal. De forma informal, uma variável confunde a relação entre um tratamento (treatment) (ou ação) (T) e um desfecho (outcome) (Y) quando influencia ambos, criando um “caminho de porta dos fundos (backdoor path)” que mistura o efeito de (T) sobre (Y).
Um exemplo clássico:
- (T): fumar
- (Y): câncer de pulmão
- (C): idade (pessoas mais velhas têm maior probabilidade de ter fumado historicamente e têm maior risco de câncer)
Se compararmos as taxas de câncer entre fumantes e não fumantes sem ajustar por idade (e outros fatores), podemos atribuir ao tabagismo diferenças que são parcialmente devidas à idade.
O confundimento é central na inferência causal (causal inference) porque muitos sistemas de aprendizado de máquina (machine learning) são treinados com dados observacionais (logs, cliques, prontuários médicos, comportamento de usuários). Sem ajuste cuidadoso, modelos aprendem padrões que melhoram a predição, mas podem induzir decisões causais equivocadas (por exemplo, “o que acontece se intervirmos?”).
Este artigo foca em padrões comuns de confundimento e métodos de ajuste (adjustment methods) para estimar efeitos causais a partir de dados observacionais.
Para linguagem causal e grafos, veja Grafos Causais.
Duas bases complementares: resultados potenciais e grafos causais
Resultados potenciais (modelo causal de Rubin (Rubin causal model))
Para cada unidade (pessoa, usuário, paciente), defina resultados potenciais:
- (Y(1)): desfecho se tratado
- (Y(0)): desfecho se não tratado
O efeito médio do tratamento (average treatment effect, ATE) é:
[ \text{ATE} = \mathbb{E}[Y(1) - Y(0)] ]
Em dados observacionais, observamos apenas um entre (Y(1)) e (Y(0)) por unidade. Para identificar efeitos causais, muitas vezes assumimos intercambiabilidade condicional (conditional exchangeability) (também chamada de sem confundimento não mensurado (no unmeasured confounding)):
[ Y(1), Y(0) \perp T \mid X ]
ou seja: dadas as covariáveis (X), a atribuição do tratamento é “tão boa quanto aleatória”.
Outras suposições-chave usadas ao longo do ajuste:
- Consistência (consistency): o desfecho observado é igual ao resultado potencial sob o tratamento recebido.
- Positividade / sobreposição (positivity / overlap): todo padrão de covariáveis tem probabilidade não nula de receber cada tratamento: (0 < P(T=1 \mid X=x) < 1).
- SUTVA (SUTVA) (sem interferência + tratamento bem definido): o tratamento de uma unidade não afeta o desfecho de outra, e “tratamento” não é ambíguo.
Grafos causais (causal graphs) (DAGs) e caminhos de porta dos fundos
Em um grafo acíclico direcionado (directed acyclic graph, DAG), o confundimento aparece como uma causa comum:
- (C \rightarrow T)
- (C \rightarrow Y)
Isso cria um caminho de porta dos fundos (T \leftarrow C \rightarrow Y). O ajuste busca bloquear todos esses caminhos de porta dos fundos ao condicionar em um conjunto apropriado de variáveis.
Ferramentas de grafos como d-separação (d-separation) e o critério da porta dos fundos (backdoor criterion) ajudam a decidir o que ajustar. Veja Grafos Causais para as regras formais.
Padrões comuns de confundimento (e erros comuns)
Padrão 1: O confundidor clássico (causa comum)
Grafo
- (C \rightarrow T)
- (C \rightarrow Y)
Exemplo (saúde):
- (T): tomar uma estatina
- (Y): ataque cardíaco
- (C): risco cardiovascular basal (colesterol, comorbidades)
Pacientes com maior risco são, ao mesmo tempo, mais propensos a receber prescrição de estatinas e mais propensos a ter ataques cardíacos. Uma comparação ingênua entre tratados vs. não tratados pode fazer as estatinas parecerem prejudiciais.
Correção: ajustar pelos fatores de risco basais (C).
Padrão 2: Viés de colisor (collider bias) (ajustar pela variável errada)
Um colisor (collider) é uma variável causada por duas outras variáveis. Condicionar em um colisor pode criar uma associação espúria.
Grafo
- (T \rightarrow S \leftarrow U \rightarrow Y)
Aqui (S) é um colisor no caminho (T \rightarrow S \leftarrow U). Condicionar em (S) abre um caminho de (T) para (Y) via (U), enviesando as estimativas.
Exemplo (seleção / “apenas hospitalizados”):
- (T): um medicamento
- (S): estar hospitalizado (afetado por efeitos colaterais do medicamento e por uma gravidade não medida (U))
- (Y): mortalidade
Se você analisar apenas pacientes hospitalizados (condicionando em (S)), pode introduzir uma falsa relação entre o medicamento e a mortalidade.
Conclusão prática: Não “controle por tudo” automaticamente. O ajuste por covariáveis é causal, não apenas preditivo.
Padrão 3: Sobreajuste (overadjustment) (condicionar em mediadores)
Um mediador (mediator) fica no caminho causal do tratamento ao desfecho:
Grafo
- (T \rightarrow M \rightarrow Y)
Se você ajustar por (M), você bloqueia parte (ou todo) do efeito causal que deseja.
Exemplo (anúncios):
- (T): exibir um anúncio
- (M): clicar no anúncio
- (Y): compra
Ajustar pelo clique (M) responde a uma pergunta diferente (efeito direto que não passa por cliques) e pode enviesar fortemente o efeito total de exibir o anúncio.
Padrão 4: Confundimento variante no tempo (time-varying confounding) (tratamento afeta confundidores futuros)
Em cenários longitudinais, confundidores podem mudar ao longo do tempo e ser influenciados por tratamento passado.
Esboço
- (T_0 \rightarrow L_1 \rightarrow T_1 \rightarrow Y)
- além de (L_1 \rightarrow Y), e (L_0 \rightarrow T_0, Y), etc.
Aqui (L_1) é tanto um confundidor para (T_1 \rightarrow Y) quanto um mediador de (T_0) para (Y). Ajustes ingênuos podem falhar.
Exemplo (medicina):
- (T_t): dose no tempo (t)
- (L_t): biomarcador no tempo (t) (afetado por dose anterior, afeta a próxima dose e o desfecho)
Correção: métodos como g-computação (g-computation), modelos estruturais marginais (marginal structural models) com pesos por probabilidade inversa (inverse probability weights), ou estimadores longitudinais mais avançados.
Padrão 5: “Viés em M (M-bias)” e estruturas sutis de colisor
Mesmo que uma variável não seja obviamente um colisor, estruturas complexas podem tornar o ajuste prejudicial. O raciocínio baseado em grafos é valioso ao decidir conjuntos de ajuste, especialmente com muitas características registradas em logs.
Quando a estrutura não está clara, a descoberta causal (causal discovery) pode ajudar — mas tem limitações. Veja Descoberta Causal.
O que significa “ajuste”?
Ajuste significa computar efeitos causais comparando desfechos sob diferentes tratamentos como se os grupos fossem randomizados, usando covariáveis observadas para remover o confundimento.
Duas visões equivalentes:
- Padronização (standardization), ou g-fórmula (g-formula): estimar (E[Y \mid T=t, X]) e então tirar a média sobre (X).
- Reponderação (reweighting): ponderar amostras para que os grupos tratado e controle tenham distribuições de covariáveis semelhantes.
O ajuste pode mirar diferentes estimandos:
- ATE: efeito médio na população inteira
- ATT: efeito médio entre os tratados
- CATE / ITE: efeitos heterogêneos (relacionados a Modelagem de Uplift)
Escolhendo covariáveis para ajustar
Objetivo: bloquear caminhos de porta dos fundos, evitar colisores/mediadores
Um bom conjunto de ajuste (X):
- bloqueia todos os caminhos não causais de (T) para (Y) (caminhos de porta dos fundos),
- não inclui descendentes de (T) (para evitar mediadores e colisores induzidos pelo tratamento).
Na prática:
- Prefira variáveis pré-tratamento (medidas antes da atribuição do tratamento).
- Inclua causas conhecidas do tratamento e do desfecho.
- Evite variáveis afetadas pelo tratamento.
Fluxo de trabalho prático
- Defina tratamento (T) e desfecho (Y) com precisão (janelas de tempo, elegibilidade).
- Liste confundidores plausíveis com base em conhecimento do domínio (muitas vezes mais confiável do que seleção automática de atributos).
- Desenhe um DAG aproximado (mesmo informal) para capturar erros de colisor/mediador.
- Verifique sobreposição/positividade: há regiões de covariáveis com apenas tratados ou apenas controle?
- Escolha um estimador (regressão do desfecho, ponderação, pareamento, duplamente robusto).
- Valide com diagnósticos e análises de sensibilidade.
Métodos centrais de ajuste
1) Estratificação e padronização (g-computação)
Se você consegue modelar (m(t, x) = \mathbb{E}[Y \mid T=t, X=x]), então:
[ \mathbb{E}[Y(t)] = \mathbb{E}_X[m(t, X)] ] [ \text{ATE} = \mathbb{E}_X[m(1, X) - m(0, X)] ]
Nota prática: Isso é “apenas” aprendizado supervisionado duas vezes (ou um modelo com (T) como entrada), seguido de uma média. O desafio é a correção do modelo (especificação incorreta leva a viés).
Exemplo (pseudo-código no estilo Python):
# Fit outcome model
model = fit_regressor(X_with_T, Y) # X_with_T includes T and covariates X
# Predict potential outcomes
y1 = model.predict(concat(T=1, X=X))
y0 = model.predict(concat(T=0, X=X))
ate = (y1 - y0).mean()
2) Ajuste por regressão (regression adjustment) (ajuste por covariáveis)
Um caso especial comum: regressão linear/logística com (T) e (X) como covariáveis.
Prós:
- Simples, rápida, interpretável (às vezes)
Contras:
- Sensível a suposições sobre a forma funcional
- Pode extrapolar para regiões com pouca sobreposição
3) Pareamento (matching)
Pareie unidades tratadas com unidades de controle semelhantes (ou vice-versa) com base em (X) ou em um escore de propensão (propensity score).
Prós:
- Intuitivo; pode melhorar a sobreposição por construção
Contras:
- Pode descartar dados; a qualidade depende da métrica de pareamento e dos calipers
- Após o pareamento, ainda é comum precisar de uma análise que leve em conta o desenho pareado
4) Métodos de escore de propensão
O escore de propensão é: [ e(X) = P(T=1 \mid X) ]
Se o tratamento é ignorável dado (X), então ele também é ignorável dado (e(X)). Isso permite:
- Pareamento por propensão
- Estratificação por propensão
- Ponderação por probabilidade inversa (inverse probability weighting, IPW)
Ponderação por probabilidade inversa (IPW)
Pondere cada unidade pelo inverso da probabilidade de receber o tratamento observado:
- Se tratado: (w = 1 / e(X))
- Se controle: (w = 1 / (1 - e(X)))
Então, uma diferença ponderada nos desfechos estima o ATE (sob as suposições).
Prós:
- Cria uma pseudo-população onde (T \perp X)
Contras:
- Pesos extremos se (e(X)) estiver perto de 0 ou 1 (positividade violada, instabilidade)
Mitigações comuns:
- Pesos estabilizados
- Corte/clipagem de pesos
- Restrição à região de suporte comum
5) Estimadores duplamente robustos (doubly robust estimators) (AIPW, TMLE)
Métodos duplamente robustos combinam:
- um modelo de desfecho (m(t, x))
- um modelo de propensão (e(x))
Eles são consistentes se um dos dois modelos estiver correto (sob condições de regularidade). Isso é especialmente útil com modelos de aprendizado de máquina, nos quais a especificação incorreta é um risco.
Uma forma comum: IPW aumentado (augmented IPW, AIPW) para ATE.
Por que isso importa para aprendizado de máquina:
- Você pode usar aprendizes flexíveis (árvores, modelos de boosting, redes neurais) com ajuste cruzado (cross-fitting) para reduzir viés por sobreajuste.
- Isso se conecta a ideias de “aprendizado de máquina duplo (double machine learning)” para estimação de componentes de nuisance (nuisance estimation).
Exemplos práticos
Exemplo 1: Estimando o efeito de um desconto na compra
- (T): usuário recebeu um cupom de 10%
- (Y): fez uma compra em 7 dias
- Confundidores (X): frequência prévia de compra, tempo como usuário, região, dispositivo, exposição passada a cupons
Problema: cupons frequentemente são direcionados a usuários com maior probabilidade de comprar (ou menor probabilidade de comprar), então diferenças ingênuas são enviesadas.
Uma abordagem razoável:
- Restringir a usuários elegíveis (evitar variáveis pós-tratamento).
- Ajustar a propensão (e(X)) prevendo a atribuição de cupom.
- Ajustar o modelo de desfecho (m(T, X)) prevendo compra.
- Usar AIPW / TMLE com ajuste cruzado.
- Verificar balanceamento: após ponderar, as distribuições de (X) são semelhantes entre (T)?
Diagnósticos a executar:
- Gráficos de sobreposição de propensão (tratados vs. controle)
- Diferenças médias padronizadas antes/depois da ponderação
- Tamanho efetivo da amostra sob os pesos
Exemplo 2: Eficácia de tratamento médico com confundimento por indicação (confounding by indication)
- (T): tratamento prescrito
- (Y): recuperação
- (X): medidas de gravidade, comorbidades, exames laboratoriais, idade
Pacientes mais graves recebem tratamento com mais frequência, então pacientes não tratados podem parecer “melhores” mesmo que o tratamento ajude.
Métodos frequentemente usados:
- Covariáveis basais ricas (X)
- Propensão/IPW ou estimadores duplamente robustos
- Análise de sensibilidade para confundimento não mensurado
Se confundidores-chave não forem observados (por exemplo, julgamento clínico), o ajuste pode não identificar o efeito; desenhos alternativos como Variáveis Instrumentais podem ser necessários.
Diagnósticos e modos de falha
Violações de positividade (sobreposição)
Se algum (X=x) quase sempre implicar tratado (ou não tratado), então você não consegue estimar com confiabilidade desfechos contrafactuais ali a partir de dados observacionais.
Sintomas:
- Propensões perto de 0 ou 1
- Pesos IPW enormes
- Estimativas altamente sensíveis ao corte de pesos
Correções:
- Redefinir a população para a região de suporte comum
- Usar pareamento/calipers
- Coletar dados mais diversos (se possível)
Erro de mensuração em confundidores
Se um confundidor é mal medido (por exemplo, “faixa de renda” em vez de renda), confundimento residual pode permanecer. Modelos de aprendizado de máquina não vão corrigir magicamente informação causal ausente.
Variáveis pós-tratamento entrando silenciosamente nas features
Em pipelines de aprendizado de máquina, é comum incluir acidentalmente atributos registrados após a atribuição do tratamento (vazamento de dados (data leakage)). Para estimação causal, isso pode virar sobreajuste ou viés de colisor.
Regra prática: para ajuste, atributos devem ser pré-tratamento em relação à decisão de tratamento.
Viés de seleção e ausência de dados (missingness)
Se a inclusão no conjunto de dados depende tanto de tratamento quanto de desfecho (ou de suas causas), o ajuste dentro da amostra selecionada pode ser enviesado. Isso é comum em cenários do tipo “apenas usuários que clicaram são registrados em log”.
Ajuste com aprendizado de máquina moderno: o que muda?
O aprendizado de máquina melhora a estimação de componentes auxiliares (modelos de propensão e de desfecho), mas não remove suposições causais.
Boas práticas principais:
- Use modelos flexíveis para (e(X)) e (m(T,X)), mas evite sobreajuste via ajuste cruzado.
- Prefira estimadores duplamente robustos (AIPW/TMLE) em vez de regressão pura ou IPW puro quando viável.
- Dê ênfase a diagnósticos (balanceamento, sobreposição) em vez de métricas preditivas in-sample.
- Tenha cautela com aprendizado de representações (representation learning): vetores de incorporação (embeddings) aprendidos podem codificar inadvertidamente informação pós-tratamento, a menos que sejam cuidadosamente desenhados.
Quando o objetivo é estimar efeitos heterogêneos (personalização), você caminha para estimação de CATE e aprendizado de políticas (policy learning); veja Modelagem de Uplift.
Análise de sensibilidade (sensitivity analysis): quão robusta é sua conclusão?
Mesmo após ajuste cuidadoso, confundimento não mensurado pode permanecer. A análise de sensibilidade pergunta: quão forte um confundidor não mensurado precisaria ser para explicar completamente o efeito estimado?
Abordagens comuns:
- Fórmulas simples de viés (limites)
- Limites de Rosenbaum (em estudos pareados)
- Valores-E (epidemiologia)
- Controles negativos (se você tiver variáveis que não deveriam ser afetadas causalmente)
Análise de sensibilidade não substitui identificação, mas ajuda a comunicar incerteza de forma honesta.
Quando ajuste não é suficiente
Métodos de ajuste identificam efeitos causais apenas sob suposições como intercambiabilidade condicional. Se elas falham:
- Considere experimentos randomizados (randomized experiments) (quando possível).
- Use estratégias alternativas de identificação como Variáveis Instrumentais ou o critério da porta da frente (abordagem baseada em grafos).
- Redesenhe a coleta de dados (registrar mais confundidores pré-tratamento, definir com mais clareza o tempo do tratamento).
- Restrinja a subpopulações com melhor sobreposição.
Resumo
- Confundimento ocorre quando causas comuns de tratamento e desfecho criam associações espúrias.
- O ajuste correto consiste em bloquear caminhos de porta dos fundos enquanto evita colisores e mediadores.
- As principais suposições de identificação são intercambiabilidade (sem confundimento não mensurado), positividade e consistência.
- Métodos práticos de ajuste incluem padronização (g-computação), regressão, pareamento, ponderação por escore de propensão e estimadores duplamente robustos.
- Em cenários modernos de aprendizado de máquina, use modelos auxiliares flexíveis com ajuste cruzado e foque em diagnósticos de sobreposição e balanceamento, não apenas em acurácia preditiva.
- Sempre considere a sensibilidade a confundimento não mensurado e seja explícito sobre limitações.
Se você quiser uma visão estrutural mais profunda de por que certas variáveis devem (ou não devem) ser ajustadas, leia Grafos Causais.