Inferência Causal

Inferência Causal

Correlação vs causalidade, intervenções e pensamento causal básico para aprendizado de máquina (machine learning).

Por que a inferência causal importa em aprendizado de máquina

A maior parte do aprendizado de máquina é preditiva: dados insumos (X), predizer um resultado (Y). A inferência causal (causal inference) trata de uma pergunta diferente:

O que aconteceria com (Y) se nós intervíssemos (intervened) e mudássemos (X)?

Essa diferença importa sempre que um sistema de aprendizado de máquina é usado para tomar decisões (recomendações, precificação, triagem médica, seleção de políticas), e não apenas para prever.

Dois exemplos que parecem semelhantes, mas exigem raciocínios diferentes:

  • Predição: “Quem tem probabilidade de clicar em um anúncio?”
    Isso pode ser resolvido a partir de registros históricos mesmo que a política de segmentação de anúncios seja enviesada.
  • Causalidade: “Mostrar este anúncio aumenta cliques (ou compras)?”
    Isso pergunta pelo efeito de uma intervenção (mostrar vs não mostrar). Registros históricos por si só podem induzir ao erro porque quem viu o anúncio não foi escolhido aleatoriamente.

Na prática, a inferência causal ajuda equipes de aprendizado de máquina a:

  • desenhar e analisar testes A/B (A/B tests)
  • estimar efeitos a partir de dados observacionais (observational data) quando experimentos são caros ou impossíveis
  • evitar vieses comuns (confundimento (confounding), viés de seleção (selection bias), “controlar a coisa errada”)
  • construir sistemas mais robustos sob mudança de distribuição (distribution shift)
  • raciocinar sobre justiça (fairness) e impacto de política (policy impact), não apenas correlações

A inferência causal é estreitamente relacionada, mas distinta de Modelos Gráficos Probabilísticos (Probabilistic Graphical Models): ambos usam probabilidade, mas a inferência causal adiciona intervenções e suposições sobre como o mundo gera dados.

Correlação vs causalidade (e por que “apenas adicionar mais dados” não resolve)

Uma correlação (X \leftrightarrow Y) significa que (X) ajuda a predizer (Y). Isso não significa que mudar (X) mudará (Y).

Um padrão clássico é o confundimento:

  • (X): tomar um suplemento vitamínico
  • (Y): desfecho de saúde
  • (Z): comportamento voltado à saúde (dieta, exercício, checkups regulares)

Pessoas que tomam vitaminas podem ser mais saudáveis porque são preocupadas com a saúde ((Z)), e não porque vitaminas ((X)) causam melhor saúde ((Y)). Mesmo com milhões de pontos de dados, se você nunca medir ou ajustar por (Z), a estimativa pode estar sistematicamente errada.

Outra armadilha comum é o paradoxo de Simpson (Simpson’s paradox), em que uma associação se inverte após condicionar em uma variável (frequentemente um confundidor). Isso não é um “truque estatístico”; é um lembrete de que a estrutura causal determina quais comparações são significativas.

Vocabulário causal central para aprendizado de máquina

Problemas de inferência causal são frequentemente descritos com estes papéis:

  • Tratamento (treatment) / intervenção (intervention) (T): a coisa que você pode mudar (anúncio exibido, medicamento prescrito, desconto oferecido)
  • Desfecho (outcome) (Y): o que você se importa (compra, recuperação, retenção)
  • Covariáveis (covariates) (X): atributos observados (idade, localização, atividade prévia)
  • Variável confundidora (confounder): afeta tanto o tratamento quanto o desfecho (cria associações espúrias)
  • Mediador (mediator): está no caminho causal (T \rightarrow M \rightarrow Y)
  • Colisor (collider): um efeito comum de duas variáveis; condicionar nele pode criar associações falsas

Esses rótulos não são sobre estatística — são sobre relações causais no processo gerador de dados (data-generating process).

Intervenções e o “operador do (do-operator)”

Em inferência causal, distinguimos:

  • Ver (T=t): observar que o tratamento acabou sendo (t) (possivelmente devido a uma política enviesada)
  • Fazer (T \leftarrow t): intervir para definir o tratamento como (t)

A notação de Judea Pearl captura isso:

  • (P(Y \mid T=t)): probabilidade observacional (“dado que vimos (t)”)
  • (P(Y \mid do(T=t))): probabilidade intervencional (“se forçarmos (t)”)

Elas são iguais apenas sob condições fortes (por exemplo, randomização ou ajuste correto).

Contrafactuais (counterfactuals) (as perguntas “e se”)

Perguntas causais são frequentemente contrafactuais:

  • “Este usuário teria comprado se não tivéssemos mostrado o cupom?”

Na visão de resultados potenciais (potential outcomes), cada unidade tem:

  • (Y(1)): desfecho se tratada
  • (Y(0)): desfecho se não tratada

A dificuldade central: para qualquer indivíduo, você observa apenas um desses (“o problema fundamental da inferência causal”).

Dois arcabouços complementares

A inferência causal é comumente ensinada por duas lentes principais. Elas são consistentes e muitas vezes usadas em conjunto.

Resultados potenciais (modelo causal de Rubin (Rubin causal model))

Principais estimandos:

  • Efeito Médio do Tratamento (Average Treatment Effect, ATE)
    [ \text{ATE} = \mathbb{E}[Y(1) - Y(0)] ]
  • Efeito Médio Condicional do Tratamento (Conditional Average Treatment Effect, CATE)
    [ \tau(x) = \mathbb{E}[Y(1) - Y(0)\mid X=x] ] Este é o objetivo em cenários de personalização/uplift (ver Modelagem de Uplift (Uplift Modeling)).

Suposições comuns (ditas informalmente):

  • Consistência / SUTVA: o tratamento que você define coincide com o que é entregue; não há interferência entre unidades (o tratamento de um usuário não muda o desfecho de outro).
  • Ignorabilidade (sem confundimento não medido) (ignorability (no unmeasured confounding)): dadas as covariáveis medidas (X), a atribuição de tratamento é “como se fosse aleatória”: [ (Y(0),Y(1)) \perp T \mid X ]
  • Positividade / sobreposição (positivity / overlap): todo grupo de covariáveis tem chance não nula de receber cada tratamento: [ 0 < P(T=1\mid X=x) < 1 ]

Essas suposições não são “automáticas”; elas precisam ser defendidas com base em conhecimento de domínio e coleta de dados.

Modelos causais estruturais e grafos causais (Pearl)

Um modelo causal estrutural (structural causal model, SCM) descreve como as variáveis são geradas:

[ Y := f(T, X, U_Y) ]

onde (U_Y) é ruído não observado. A estrutura causal pode ser representada como um grafo acíclico direcionado (directed acyclic graph, DAG), permitindo raciocinar sobre:

  • quais variáveis ajustar
  • se um efeito causal é identificável
  • como intervenções mudam distribuições

Isso é coberto em profundidade em Grafos Causais. Duas ideias especialmente importantes:

  • d-separação (d-separation): critério gráfico para independência condicional
  • Critério do Backdoor (Backdoor criterion): uma regra para escolher conjuntos de ajuste que bloqueiem caminhos de confundimento de (T) para (Y)

O raciocínio com grafos também é onde vieses de colisor e de seleção ficam muito concretos.

Identificação vs estimação (uma distinção crucial)

A inferência causal tem dois estágios:

  1. Identificação (identification): a quantidade causal (por exemplo, ATE) pode ser expressa em termos de dados observáveis sob as suposições declaradas?
  2. Estimação (estimation): dado um conjunto finito de dados, como computá-la com precisão (com incerteza)?

Em aprendizado de máquina, frequentemente se pula direto para a estimação (“ajuste um modelo!”). A inferência causal força você a primeiro justificar por que a saída do modelo corresponde ao efeito causal que você quer.

Experimentos randomizados (randomized experiments): o padrão-ouro

Em um teste A/B, o tratamento é atribuído aleatoriamente. A randomização quebra o confundimento, então:

[ \mathbb{E}[Y \mid do(T=1)] - \mathbb{E}[Y \mid do(T=0)] \approx \mathbb{E}[Y \mid T=1] - \mathbb{E}[Y \mid T=0] ]

Ressalvas práticas em sistemas de aprendizado de máquina:

  • Não conformidade (noncompliance): usuários nem sempre recebem o tratamento pretendido (por exemplo, bloqueadores de anúncio). Isso leva a análises de “intenção de tratar (intention-to-treat)” vs “tratamento sobre os tratados (treatment-on-the-treated)”.
  • Interferência (interference) / efeitos de rede (network effects): o tratamento de um usuário afeta o desfecho de outro (viola SUTVA). Comum em redes sociais, marketplaces e efeitos de congestionamento.
  • Deriva do experimento (experiment drift): mudanças de logging, bugs de atributos, ou rollouts de modelo durante um experimento podem contaminar resultados.
  • Comparações múltiplas (multiple comparisons) e p-hacking (p-hacking): muitas métricas e recortes inflacionam falsos positivos.

Mesmo quando você consegue rodar experimentos, o pensamento causal melhora o desenho e a interpretação do experimento.

Inferência causal observacional (observational causal inference) (quando você não pode randomizar)

Quando tratamentos são atribuídos por uma política (médicos, sistemas de recomendação, escolha do usuário), você precisa lidar com confundimento e viés de seleção.

Estratégias comuns (expandidas em Confundimento e Ajuste):

Ajuste por covariáveis (covariate adjustment) (regressão)

Modele o desfecho como uma função do tratamento e das covariáveis, e então compare desfechos previstos sob diferentes tratamentos. Funciona se o modelo estiver correto e você ajustar pelas variáveis certas (não mediadores/colisores).

Escores de propensão (propensity scores)

O escore de propensão (propensity score) é (e(X)=P(T=1\mid X)). Ele é usado para balancear grupos tratados e de controle:

  • Pareamento (matching): parear unidades tratadas com controles de propensão similar
  • Ponderação (weighting) por probabilidade inversa (inverse probability weighting, IPW): reponderar amostras pela probabilidade inversa do tratamento recebido
  • Estratificação (stratification): comparar dentro de faixas (bins) de propensão

Métodos duplamente robustos (doubly robust methods)

Combinam um modelo de desfecho e um modelo de propensão; são consistentes se qualquer um dos dois estiver correto (sob condições). Em aprendizado de máquina causal moderno, essa família inclui abordagens como aprendizado de máquina duplo (Double Machine Learning, DML) e estimação de máxima verossimilhança direcionada (targeted maximum likelihood estimation, TMLE).

Exemplo mínimo: estimativa IPW de ATE (conceitual)

import numpy as np

# T: treatment indicator {0,1}
# Y: outcome
# e: propensity scores P(T=1|X) from a model (e.g., logistic regression / gradient boosting)

def ipw_ate(T, Y, e, eps=1e-6):
    e = np.clip(e, eps, 1 - eps)  # avoid extreme weights blowing up
    w1 = T / e
    w0 = (1 - T) / (1 - e)
    mu1 = np.sum(w1 * Y) / np.sum(w1)
    mu0 = np.sum(w0 * Y) / np.sum(w0)
    return mu1 - mu0

Isso não está pronto para produção por si só (você precisa de estimativas de incerteza, diagnósticos, checagens de sobreposição), mas ilustra a ideia: reponderar dados para imitar um ensaio randomizado.

Variáveis instrumentais (instrumental variables) (quando há confundimento não medido)

Se confundidores importantes não são observados, o ajuste pode falhar. Variáveis instrumentais (instrumental variables, IV) podem ajudar quando você tem uma variável (Z) que:

  • afeta o tratamento (T)
  • afeta o desfecho (Y) apenas por meio de (T)
  • é “como se aleatória” em relação aos confundidores

Isso é poderoso, mas carregado de suposições; ver Variáveis Instrumentais.

Aplicações práticas em aprendizado de máquina

1) Anúncios, recomendações e “avaliação de política (policy evaluation)”

Logs são gerados por uma política de comportamento (behavior policy) (o que seu sistema mostrou anteriormente). Se você treinar um modelo em desfechos registrados e implantar uma nova política, você corre o risco de otimizar para artefatos da política antiga.

Ferramentas causais ajudam a responder:

  • “Se mudarmos o algoritmo de ranqueamento, o que acontece com conversões?”
  • “Se pararmos de enviar esta notificação, perdemos engajamento ou apenas reduzimos spam?”

Isso se sobrepõe à avaliação contrafactual de política (counterfactual policy evaluation) e se conecta conceitualmente a aprendizado por reforço offline (offline RL) e bandits (bandits), onde você precisa corrigir exposição enviesada.

2) Uplift e personalização

Em muitos contextos de produto, o objetivo não é “quem vai converter?”, mas:

“Quem vai converter porque nós intervimos?”

Um usuário com alta probabilidade de compra pode comprar de qualquer forma; gastar um desconto com ele tem baixo impacto causal. A modelagem de uplift mira o efeito incremental (CATE). Ver Modelagem de Uplift.

3) Saúde e predição de risco (risk prediction) vs efeito do tratamento (treatment effect)

Um modelo pode predizer com precisão o risco de mortalidade a partir de dados hospitalares observacionais e ainda assim ser inútil (ou prejudicial) para escolha de tratamento.

Padrão de exemplo:

  • Pacientes mais graves recebem tratamento agressivo.
  • Tratamento agressivo está associado a maior mortalidade (porque os pacientes são mais graves).
  • Um modelo ingênuo pode concluir que o tratamento “causa” morte.

A inferência causal separa prognóstico (prognosis) de efeito de intervenção.

4) Justiça e responsabilização

Muitas questões de justiça são causais:

  • “Este candidato teria sido aprovado se seu atributo sensível (sensitive attribute) fosse diferente, mantendo todo o resto fixo?”

Mas “manter todo o resto fixo” é ambíguo se algumas variáveis forem efeitos do atributo sensível (escolaridade, renda, bairro). Grafos causais ajudam a distinguir:

  • caminhos legítimos (habilidades relevantes para o trabalho)
  • caminhos problemáticos (discriminação)
  • efeitos de proxy (proxy effects)

Justiça causal é uma área ativa; a inferência causal fornece a linguagem para declarar suposições explicitamente.

5) Robustez (robustness) e mudança de distribuição

A estrutura causal pode orientar a generalização sob ambientes em mudança:

  • Se (X \rightarrow Y) é um mecanismo estável, modelar (P(Y\mid X)) pode generalizar.
  • Se os dados são anticausais (anti-causal) (por exemplo, (Y \rightarrow X), sintomas causados pela doença), então (P(Y\mid X)) pode mudar quando o ambiente muda (processos de medição diferentes, populações diferentes).

Isso se conecta a ideias de invariância e complementa a teoria clássica de generalização em Teoria do Aprendizado.

Armadilhas comuns (especialmente relevantes para praticantes de aprendizado de máquina)

Condicionar em um colisor (viés de seleção)

Suponha:

  • (T): fez um curso de treinamento
  • (Y): desempenho no trabalho
  • (S): foi contratado

Tanto (T) quanto (Y) afetam (S). Se você analisar apenas funcionários contratados (condicionar em (S)), pode criar uma relação espúria entre (T) e (Y), mesmo que o curso não tenha efeito. Isso é um problema comum em bases de dados “apenas de sobreviventes”.

Controlar variáveis pós-tratamento (post-treatment variables)

Ajustar por mediadores pode remover parte do efeito causal que você quer.

Exemplo:

  • (T): mostrar um desconto
  • (M): usuário adiciona ao carrinho
  • (Y): compra

Se você controlar por (M), pode subestimar o efeito total do desconto na compra porque bloqueia o caminho (T \rightarrow M \rightarrow Y).

Falta de sobreposição (violações de positividade)

Se usuários de alto valor são sempre alvo e usuários de baixo valor nunca são alvo, então (P(T=1\mid X)) fica próximo de 0 ou 1 em regiões do espaço de atributos. Estimativas causais passam a depender de extrapolação extrema e se tornam instáveis.

“Controles ruins (bad controls)” e vazamento de informação (leakage)

Em aprendizado de máquina supervisionado, adicionar mais atributos frequentemente melhora a predição. Em inferência causal, adicionar as variáveis erradas pode introduzir viés. Essa é uma das maiores diferenças culturais entre aprendizado de máquina preditivo e análise causal.

Descoberta causal (causal discovery): aprender a estrutura é difícil

Às vezes você não conhece o grafo causal e quer inferi-lo a partir dos dados. Esse é o objetivo da descoberta causal, mas em geral isso exige suposições fortes (por exemplo, ausência de confundidores ocultos, modelos de ruído específicos) e frequentemente não consegue identificar um grafo único apenas com dados observacionais. Ver Descoberta Causal.

Um aprendizado prático: descoberta causal pode gerar hipóteses, mas para decisões de alto impacto você normalmente ainda precisa de conhecimento de domínio, experimentos ou quase-experimentos (quasi-experiments).

Como pensar causalmente no trabalho cotidiano com aprendizado de máquina

Um fluxo de trabalho útil:

  1. Declare a decisão e a intervenção
    Qual ação você está considerando mudar? Qual é o desfecho?
  2. Desenhe um diagrama causal simples (mesmo que informal)
    Identifique prováveis confundidores, mediadores, colisores e mecanismos de seleção.
  3. Decida se você consegue randomizar
    Se sim, faça. Se não, justifique uma estratégia observacional.
  4. Defina o estimando (estimand)
    ATE, CATE, efeito sobre os tratados (effect on the treated), desfecho de longo prazo vs proxy de curto prazo.
  5. Escolha uma estratégia de identificação
    Conjunto de ajuste, IV, diferenças-em-diferenças (difference-in-differences, diff-in-diff), descontinuidade de regressão (regression discontinuity), etc. (dependente do tema)
  6. Estime com aprendizado de máquina com cuidado
    Use modelos flexíveis com proteções causais (checagens de sobreposição, análise de sensibilidade (sensitivity analysis)).
  7. Valide e teste sob estresse as suposições
    Diagnósticos, testes placebo (placebo tests), checagens de robustez e revisão com especialistas do domínio.

Para onde ir em seguida

Para aprofundar partes específicas de inferência causal:

A inferência causal é, em última instância, um raciocínio disciplinado de “e se”. Para aprendizado de máquina, ela fornece as ferramentas conceituais e matemáticas para sair de predição e ir para tomada de decisão, em que o objetivo não é prever o mundo como ele é, mas entender como o mundo muda quando agimos.