DAGs — Uma introdução a gráficos causais

Zinho
22 min readFeb 24, 2022

--

O lançamento do livro “The Book of Why” (Pearl & Mackenzie, 2018) em 2018, assim como o Prêmio de Ciências Econômicas em Memória de Alfred Nobel de 2021 para David Card, Joshua Angrist and Guido Imbens trouxe finalmente para o holofote do grande público e da comunidade científica geral, a revolução da credibilidade (Angrist & Pischke, 2010) e decorrentemente a inferência causal (que pode se ler mais sobre neste link).

Dentre as técnicas de inferência causal uma estrutura de modelagem que recebeu muita atenção nas últimas décadas foi a Structural Causal Models (ou “Modelos Causais Estruturais” em tradução livre. Chamaremos daqui em diante de SCM) desenvolvida pelo pesquisador, cientista da computação e filósofo israelense-estadunidense Judea Pearl (Pearl, 2009,2016,2018), inspirada nos trabalhos do geneticista Sewall Wright (Wright 1921) [para saber mais da história de Wright e de sua relação com causalidade recomenda-se o já citado “The Book of Why”]. Essa modelagem ficou associada aos DAGs, que são uma maneira gráfica de representar as ideias do modelo em questão. Mas o que são DAGs?

Para entender o que é um DAG, se faz necessário decompor este acrônimo. DAG significa Directed Acyclic Graph, ou em português, grafos direcionados acíclicos. Okay, então a pergunta fica: o que é um grafo direcionado acíclico? Comecemos com os grafos.

Um exemplo de um grafo.

O grafo na matemática é um objeto definido formalmente. Um grafo matemático é uma coleção de vértices (ou nós) e arestas. Os nós em um grafo são conectados (ou não) pela aresta.

Outro exemplo de grafo

No grafo acima (X, Y ,Z) são os nós, enquanto (A, B) são as arestas.

Um grafo pode ser direcionado, ou seja, a aresta vai de um nó até outro com um seta simbolizando o direcionamento, enquanto pode ser não direcionado, ou seja, a aresta não tem uma “entrada” nem uma “saída”.

Um exemplo de um grafo direcionado.

Para nomenclatura: O nó em que uma aresta direcionada começa é chamado de pai do nó em que a aresta vai. O nó em que a aresta é direcionado é o filho do nó que direciona a aresta. Se dois nós são conectados por uma aresta direcionada, então o nó que inicia o direcionamento é o ascendente dos nós que recebem a aresta, que são chamados descendentes do nó inicial. Isto é, no grafo acima X é pai de Y, assim como é ascendente de Y e Z, na medida que Y e Z são descendentes de X. Y é filho de X, enquanto é pai de Z, sendo Z então filho de Y.

Okay, cobrimos o grafo e o direcionado, portanto só falta o acíclico. Um grafo direcionado cíclico seria a seguinte imagem:

Perceba o nó X direciona uma aresta para o nó Y que por sua vez direciona uma aresta para o nó Z que por fim direciona uma aresta para o nó X. Completando assim um círculo. Portanto, isso seria um grafo direcionado cíclico. Mas não é isso que queremos, isto é, um grafo direcionado acíclico nada mais é, então, que um grafo direcionado que não permite círculos! Como representado na seguinte imagem:

Neste DAG o nó X direciona uma aresta para o nó Y, enquanto o nó Z direciona uma aresta para o nó X e uma aresta para o nó Y. Desse jeito evitamos um círculo de ser formado.

Tendo em vista o que é um DAG, estamos aptos para entender agora o que é um SCM.

Structural Causal Models

Como o nome já denota, estamos lidando com modelos causais. Adotando aqui, uma teoria contrafactual da causalidade. Diferentemente do modelo Neyman-Rubin, que também adota a mesma teoria de causalidade, não tomamos contrafactuais como primitivo da nossa modelagem. O diferencial da modelagem de Pearl é que a partir de associações ele constrói o conceito de contrafactual, assim lentamente vamos subindo a escada da causalidade.

Escada da causalidade (ou “ladder of causality”). Imagem essa que pode ser encontrada em (Pearl & Mackenzie, 2018)

O necessário para entender SCM é que é uma modelagem theory-driven, ou seja, ela começa em primeiro lugar na teoria e não nos dados [“data are profoundly dumb” — Pearl & Mackenzie (2018, p.13)]. Não basta olhar bases massivas de dados e procurar algum padrão, pois se fosse o caso, alguém já teria feito um programa que faz essa coisa que é inferência causal. No nosso caso, o SCM é uma maneira de descrever as propriedades relevantes do mundo e como elas interagem entre si, ou seja, descreve como a natureza atribui valor às variáveis de interesse.

O DAG então simplesmente é a representação gráfica do nosso modelo, que por sua vez codifica todo nosso conhecimento sobre um dado assunto. Perceba que o DAG explicita as hipóteses que os pesquisadores têm sobre os nós/variáveis, por exemplo, um DAG vai nos dizer que variáveis são independentes uma das outras e que variáveis são condicionalmente independente uma das outras, i.e, maneiras que podemos fatorar e simplificar a distribuição conjunta.

Por exemplo, o seguinte DAG representa o modelo de Capital Humano na economia (Becker, 1994)

Imagem tirada de Cunningham (2021, p.100)

Segundo o modelo, a educação aumenta o produto marginal de uma pessoa e, como os trabalhadores recebem seu produto marginal em mercados competitivos, a educação também aumenta seus ganhos. Em poucas palavras, mais educação implica mais salário. Mas a educação universitária não é aleatória; é otimamente escolhida dadas as preferências subjetivas de um indivíduo e as restrições de recursos. Então codificamos todas essas informações e nosso modelo de como essas variáveis se interagem no DAG acima, em que D é a variável de tratamento (por exemplo, educação universitária) e Y é a variável de resultado de interesse (por exemplo, ganhos). Além disso, seja PE a educação dos pais, I a renda familiar e B os fatores de fundo não observados, como genética, ambiente familiar e capacidade mental.

Ou seja, o DAG nos conta uma história. Essa história nada mais é que como achamos que o mundo funciona, isto é, como as variáveis de interesse interagem entre si. Portanto é imprescindível entender que não é possível fazer uma análise causal sem hipóteses causais. É como se o mundo tivesse estruturas as quais não temos acesso direto, apenas pedaços de informações. O pesquisador sobrepõe ao mundo, ou seja, aos dados, o que ele acha que é essa estrutura e o mundo em troca retruca se o modelo está certo ou não. Se a resposta for não, trocamos de modelo. Caso contrário, apenas falhamos em rejeitar ele, nunca o aceitamos.

Tendo entendido isso, vamos a um exemplo mais simples para exemplificar como o DAG explicita nossas hipóteses sobre a distribuição conjunta das variáveis.

Esse DAG envolve os nós A, B, C e D. Novamente a pergunta, o que ele implica sobre a distribuição conjunta P(A,B,C,D)?

Ele implica o seguinte:

P(C|A,B,D) = P(C), i.e, C é independente de todas as variáveis.

P(B|A,C,D) = P(B|A), i.e, B é independente de C e D condicionado em A

P(B|D) =/= P(B), i.e, B e D são marginalmente dependentes

P(D|A,B,C) = P(D|A)

P(A|B,C,D) = P(A|D)

Ou seja, nesse DAG não é só relevante as informações que ele nos diz, mas também aquilo que ele não diz. Isto é, sabemos que D afeta causalmente A, que em troca afeta casualmente B, portanto D afeta B. Essas são informações valiosas, mas igualmente valiosa é o fato que nenhuma das variáveis A, B e D afetam diretamente ou indiretamente a variável C.

Então, o SCM formalmente consiste em um modelo com duas variáveis U e V, e um conjunto de funções f que atribuem para cada variável V um valor baseado nos valores das outras variáveis no modelo. Sendo que U representa as variáveis exógenas do modelo (variáveis que não são explicadas pelo modelo), que não podem ser descendentes de nenhuma outra variável, ou seja, não tem ascendentes, e sendo que V são as variáveis endógenas do modelo (variáveis que são explicadas pelo modelo), que são sempre descendentes de uma variável exógena.

Causação para SCM é definido da seguinte maneira: a variável X é uma causa direta da variável Y se X aparece na função que atribui valor a Y. Assim, X é a causa de Y se é uma causa direta de Y, ou qualquer causa de Y.

Para cada SCM temos um DAG associado. Ou seja, um DAG em si não representa um SCM, mas todo SCM tem um DAG o representando, por construção. Então para cada gráfico que é acíclico, a distribuição conjunta das variáveis no modelo é dada pelo produto da distribuição condicional P(filho|pai) de todas as famílias no gráfico. Formalmente, podemos escrever essa regra assim:

Onde pa_{i} significa os valores dos pais de x_{i}

Então para solidificar. No seguinte DAG:

Temos que a distribuição conjunta se dá dessa forma:

Os DAGs apresentam alguns caminhos representados pelas arestas. Entre esses caminhos é importante conhecer os seguintes:

Fork (garfo): X ← Y → Z

Chains (cadeias): X → Y → Z

Colliders (colisores): X → Y ← Z

A importância desses deriva do fato de que se os nós A e B estão no final de um caminho, eles estão associados se alguma informação flui para ambos e a informação de um vai até o outro. No caso de A → G ← B, G é conhecido como um collider (colisor). Ou seja, A e B afetam G, mas nenhuma informação flui de G até A ou B, portanto essas variáveis são independentes (se esses são os únicos caminhos entre elas).

Essas informações são relevantes na medida que a nível de associação para saber do efeito de uma variável de tratamento na variável resposta é preciso condicionar algumas variáveis a modo de conseguir o efeito puro entre tratamento e resposta. A depender dos caminhos que temos entre as variáveis, sabemos quais devemos condicionar. Se devemos condicionar ou não.

Em termos de grafos, um caminho pode ser bloqueado ao condicionar um dos nós no caminho. Por exemplo, considere o caminho: A → G → B. Ao condicionar em G bloqueamos o caminho de A até B. Portanto, associações em uma cadeia (chain) podem ser bloqueadas. Assim como associações em um garfo (fork). Considere o seguinte caminho: A ← G → B. Novamente, ao condicionar em G, os caminhos de A até B são bloqueados.

Parece que temos um padrão, porém isso é enganoso uma vez que se bloquearmos um collider temos exatamente o efeito oposto! Considere o seguinte caminho: A → G ← B. Neste cenário A e B não tem uma associação, porém ao condicionar em G se cria um caminho que previamente não existia. Logo, o condicionamento em G criou nos dados um efeito de A e B.

Aqui o DAG corresponde ao ato de condicionar em G, quando este é um collider. Perceba a associação entre A e B, que é denotada pela aresta pontilhada.

Daqui tiramos algumas regras tiradas de Pearl et al. (2016):

Regra 1 (Independência Condicional em Cadeias): Duas variáveis, X e Y são condicionalmente independentes dado Z, se houver apenas um caminho unidirecional entre X e Y e Z é qualquer conjunto de variáveis ​​que interceptam esse caminho.

Regra 2 (Independência Condicional em Garfos): Se uma variável X é uma causa comum das variáveis ​​Y e Z, e há apenas um caminho entre Y e Z, então Y e Z são condicionais independentes em X.

Regra 3 (Independência Condicional em Colliders): Se uma variável Z é o nó de colisão entre duas variáveis ​​X e Y, e há apenas um caminho entre X e Y, então X e Y são incondicionalmente independentes, mas são condicionais a Z e quaisquer descendentes de Z.

Definição (d-separação): Um caminho p é bloqueado por um conjunto de nós Z se e somente se:

  1. p contém uma cadeia (chain) de nós A → B → C ou um garfo (fork) A ← B→ C tal que o nó do meio B está em Z (i.e, B é condicionado em), ou
  2. p contém uma colisão A → B ← C tal que o nó colisor B não está em Z, e nenhum descendente de B está em Z.

Agora que sabemos tudo sobre os grafos, podemos subir um degrau da escada da causalidade. Portanto, podemos ir para o nível das intervenções.

O efeito das Intervenções:

No fim, todo estudo estatístico busca prever o efeito das intervenções. Queremos saber se ao dar uma aspirina, então a dor de cabeça da unidade vai melhorar. Queremos saber se a unidade receber um ano adicional de educação, se seu salário vai aumentar em algumas unidades. E etc. O nosso problema mora no fato que quando conduzimos um experimento controlado, está vigente a condição de ceteris paribus, ou as demais variáveis que não são de interesse para o pesquisador variam aleatoriamente a modo de se tornarem irrelevantes para o trabalho em questão. Assim fica fácil nesse cenário saber o efeito causal médio, dado que a variação do tratamento implica na variação da resposta. Porém, em um cenário observacional não temos o controle que o RCT (“Randomized Control Trial” ou “Estudo clínico randomizado controlado” em português) exige.

De qualquer modo, é preciso saber que quando intervimos em uma variável, fixamos o seu valor. Ou seja, mudamos o sistema e haverá uma respostas das outras variáveis em consequência disso. Algo que, por exemplo, não acontece quando apenas condicionamos uma variável, uma vez que nada muda no sistema. Apenas focamos no subconjunto de eventos no qual a variável condicionada admite certo valor. Por exemplo, olhe o seguinte DAG:

Suponhamos que intervimos na variável X, tal que X = x. Deste modo, por conta disso, mesmo que Z varie, X não vai variar. Consequentemente Z não está mais afetando X, e portanto cortamos o caminho entre Z e X. Ou seja, o modelo modificado após a intervenção fica desta maneira:

Aqui entra o cálculo-do (ou “do-calculus”, que em tradução livre significa “cálculo do fazer”). A diferença entre o cenário em que X toma o valor x naturalmente e aquele em que fixamos x, é que neste último denotamos com a seguinte fórmula do(X = x). Portanto,

P(Y = y|X = x) é a probabilidade de Y = y condicionado no achado X = x, i.e, reflete a distribuição populacional de Y entre indivíduos cujo valor de X é x.

P(Y = y|do(X = x)) é a probabilidade de Y = y quando intervimos para que X = x, i.e, representa a distribuição populacional de Y se todo mundo na população tivesse seu valor de X fixado em x.

A partir das expressões do e da cirurgia gráfica podemos entender as relações causais entre variáveis mesmo em um cenário observacional, ou seja, mesmo que não conseguimos de fato fixar um dado valor a uma dada variável. Apenas exigimos que seja possível em abstrato. Vale notar que estamos assumindo implicitamente que a intervenção não possui efeitos colaterais.

Para descobrir um efeito causal, tomemos o exemplo de tomar a aspirina. Nosso tratamento é A = 1 se receber a aspirina, A = 0 caso contrário, enquanto o resultado é Y = 1 se melhorar a dor de cabeça, Y = 0 caso contrário. Consequentemente, o efeito causal médio é representado pela seguinte expressão:

P(Y = 1|do(A = 1)) — P(Y = 0|do(A = 0))

Esta expressão é representada pela seguinte imagem:

Ou seja, seria como se estivéssemos comparando dois cenários potenciais na qual atribuímos uma intervenção diferente na mesma população. Ou seja, se aplicarmos a intervenção na qual aplicamos o tratamento, isso nos fecha a possibilidade de aplicarmos a intervenção na qual não aplicamos o tratamento. Para obter o resultado que desejamos é necessário contrafactuais.

Fórmula de Ajustamento

Para o cálculo-do ser útil em um cenário não-experimental, precisamos conectar a intervenção com o que efetivamente temos, que são as associações. Tomemos um exemplo de DAG para clarificar:

Modelo original. Relembrando P(X = x, Y = y, Z = z) = P(Z = z)*P(Y = y|Z = z)*P(Y = y| X = x, Z = z) sendo essa a distribuição pré-intervenção

Esse é nosso modelo original. Queremos saber do efeito de X em Y. Em abstrato devemos fazer uma intervenção em X de tal modo que eliminamos o confundidor Z. Ou seja, queremos apenas P(Y = y|do(X = x)).

Modelo modificado. No nosso cenário P(Y = y, Z = z|do(X =x)) = Pm(Z = z)*Pm(Y = y|X = x, Z = z) que é a distribuição pós-intervenção.

Aplicando a intervenção, fixamos x como valor de X. Sendo assim, dado o modelo modificado ficamos com a seguinte expressão, que na realidade é verdadeiro por definição:

Sendo Pm o modelo modificado. A intervenção modifica o modelo por construção, por isso a expressão acima tem que ser verdadeira.

Podemos derivar do modelo modificado também as seguintes expressões:

  • Pm(Y = y| Z = z, X = x) = P(Y = y| Z = z, X = x)
  • Pm(Z = z) = P(Z = z)
  • Assim, Pm(Z = z| X = x) = Pm(Z = z), então Pm(Z = z| X = x) = P(Z = z)

Assim, juntando essas informações temos que:

Ou seja, podemos simplificar para:

Essa é a fórmula do ajustamento, perceba que ela apresenta o efeito causal em termos de probabilidades pré-intervenção. Assim conectando o primeiro degrau da escada da causalidade com o segundo.

Regra 1 (A Regra do Efeito Causal): Dado o grafo G no qual um conjunto de variáveis ​​PA é designado como os pais de X, o efeito causal de X sobre Y é dado por:

onde z abrange todas as combinações de valores que a variável PA pode assumir.

Se aplicarmos a regra de Bayes a essa fórmula, ficamos com a seguinte expressão:

Onde P(X = x| PA = z) é conhecido como o “propensity score”.

Podemos generalizar a fórmula de ajustamento para considerar múltiplas intervenções, i.e, intervenções que fixam os valores de um conjunto de variáveis X a uma constante:

Essa fórmula é conhecida como fórmula do produto truncado ou fórmula-g

Para saber mais sobre o cálculo-do e suas regras, recomendo o seguinte vídeo e o seguinte texto.

Critério Backdoor

Vamos voltar ao básico para não nos perdermos de vista. Se o modelo do efeito que queremos entender fosse tão básico quanto o seguinte DAG:

Bastaria para nós descobrirmos o efeito causal média, fazermos uma regressão linear com a variável A como variável independente e a variável Y como variável dependente.

Isso vale, uma vez que o próprio DAG codifica que estamos em uma situação de ceteris paribus na qual a única variável que afeta Y é A. Então para encontrar a variação da variável Y em termos da variação da variável A, i.e, quanto a variação de A explica a variação de Y (o efeito causal médio). Basta uma regressão linear simples. [Para saber mais sobre essa técnica estatística e sobre econometria no geral, recomendo este meu vídeo]

Todavia, na esmagadora maioria das vezes a realidade não é tão simples. Existe sempre uma variável confundidora que está viesando nosso efeito causal médio. Um exemplo mais realista seria o seguinte DAG, na qual a variável X representa todo e qualquer covariável que atrapalha nossa estimação causal:

O objetivo do pesquisador, principalmente quando está restrito a dados observacionais, é controlar por X a modo de ficar com efeito puro de A até Y. Nesse caso, é preciso saber sobre os backdoor paths (“caminhos de porta dos fundos” em uma tradução livre) do modelo. Backdoor paths do tratamento A até a resposta Y são os caminhos de A até Y que viajam pelas setas indo para A.

No DAG acima, A ← X → Y é um backdoor path de A até Y. Assim, para controlar os confundidores, precisamos identificar um conjunto de variáveis que bloqueiam todos os backdoor paths de tratamento até a resposta. Para quem sabe das hipóteses do modelo Neyman-Rubin, ao fazermos isso estamos satisfazendo a hipótese de ignorabilidade.

Precisamos controlar as covariáveis X de tal modo que a seta vermelha seja bloqueada, consequentemente, eliminamos a transmissão entre X e A.

Então tomando conhecimento desses fatos, uma das ferramentas mais importantes para determinar se conseguimos computar o efeito causal (médio) é um simples teste chamado de critério backdoor.

Definição (Critério Backdoor): dado um par ordenado de variáveis (X, Y) em um grafo direcionado acíclico G, um conjunto de variáveis Z satisfaz o critério backdoor relativo a (X,Y) se nenhum nó em Z é um descendente de X, e Z bloqueia todo caminho entre X e Y que contém uma seta indo até X.

Se um conjunto de variáveis Z satisfaz tal critério para X e Y, então o efeito causal (médio) de X em Y é dado pela seguinte fórmula:

Assim como ajustamos para PA(X)

Em geral, nós gostaríamos de condicionar em um conjunto de nós Z tal que;

  1. Nós bloqueamos todos os caminhos espúrios entre X e Y.
  2. Nós deixamos todos os caminhos direcionados entre X e Y sem perturbações.
  3. Nós não criamos nenhum caminho espúrio novo.

Assim, não condicionamos em nenhum descendente de X e evitamos condicionar em colliders, tais que abram um novo caminho entre X e Y.

Critério Front-Door

Tendo entendido o critério backdoor, se faz necessário entender outro critério. Vamos a um exemplo para tornar esse intuitivo, tome por exemplo o seguinte DAG:

A história desse modelo é a seguinte: X, nossa variável de tratamento, significa fumar. A variável resposta Y é câncer no pulmão, enquanto a variável Z mediando o efeito entre X e Y é depósitos de alcatrão nos pulmões. Porém, existe um confundidor U não mensurável afetando nosso efeito causal médio, que acreditamos ser o genótipo da unidade em consideração.

Nesse caso, não é possível atender o critério backdoor, pois por construção a variável U não é mensurável. Todavia, o efeito causal, que é P(Y = y|do(X = x)) é identificável no nosso modelo.

Sabemos que P(Z = z|do(X = x)) = P(Z = z| X = x). Além disso, sabemos da seguinte expressão:

Podemos derivar disso que:

Portanto, chegamos nessa expressão:

Ou seja, tendo em vista o modelo Z ← X ← U → Y, o efeito de X em Z é identificável [P(Z = z|do(X =x))], assim como o efeito de X em Y [P(Y = y|do(Z = z))] e dessa forma achamos o efeito de X em Y [P(Y = y|do(X = x))]. Vale a nota, que a expressão acima é conhecida como a fórmula front-door.

Daí podemos definir o nosso critério.

Definição (Critério Front-Door): Um conjunto de variáveis Z é dito satisfazer o critério front-door relativo ao par ordenado de variáveis (X,Y) se:

  1. Z intercepta todos os caminhos direcionados de X a Y.
  2. Não há nenhum caminho não bloqueado entre X e Z.
  3. Todos os backdoor paths de Z a Y são bloqueados por X.

Com isso podemos demonstrar o seguinte teorema:

Teorema (Ajustamento Front-Door): Se Z satisfaz o critério front-door relativo ao par ordenado (X,Y) e se P(x,z) > 0, então o efeito causal (médio) de X em Y é identificável e é dado pela seguinte fórmula.

Poderia dizer mais sobre intervenções, como o efeito z-específico em X e a regra 2 associado a este efeito. Todavia, para evitar deixar o texto ainda mais longo que já está recomendo a leitura do capítulo 3 de Pearl et al. (2016). Além disso, para saber mais sobre controles, quando condicionar e onde condicionar, recomendo o paper Cinelli et al. (2020). Assim como recomendo meu video sobre DAGs, segue o link.

Contrafactuais

Uma vez que subimos o degrau de associações para as intervenções, nos falta para alcançar o efeito causal (médio) subir este degrau para chegar ao topo, que é o degrau dos contrafactuais. Mas afinal, o que é um contrafactual? Pensemos em um exemplo:

Imagine que está com dor de cabeça e pretende tomar uma aspirina. Antes de qualquer atitude, você tem apenas duas opções: tomar aspirina (X = 1) ou não toma-lá (X = 0). Imagine que por algum motivo, você muda de ideia e resolve não tomar, pois decide que vai em uma festa. Assim que você chega na festa uma hora depois, ainda com a cabeça latejando de dor, você pensa consigo mesmo: “Eu deveria ter tomado aspirina.”.

A afirmação pensada é equivalente à seguinte: “Se eu tivesse tomado a aspirina, então minha dor de cabeça teria passado”. Ou seja, esse tipo de expressão no qual contém um “se” em que a porção do “se” da frase não foi de fato realizada, é conhecido como um contrafactual. Pode ser pensado como um cenário alternativo, ou um mundo possível, como é chamado na filosofia.

O fato de que você sabe o resultado do sua decisão presente é importante, uma vez que o resultado estimado de tomar aspirina após ver as consequências de minha decisão feita pode ser totalmente diferente da minha estimativa anterior a ver as consequências. Minha estimativa retrospectiva e a minha estimativa anteriora são claramente diferentes.

Então se expressarmos com o cálculo-do ficamos com o seguinte:

E[dor de cabeça|do(aspirina), tempo = 1 hora]

Isso leva a um conflito entre efeito na dor de cabeça após uma hora que queremos estimar e o real efeito da dor de cabeça após uma hora observado. Para evitar esse conflito precisamos de duas variáveis:

  1. O real efeito da dor de cabeça após uma hora
  2. O hipotético efeito da dor de cabeça ao tomar aspirina depois de uma hora.

Infelizmente o operador do não é suficiente para nossos propósitos. Mesmo este operador nos permitindo distinguir entre P(dor de cabeça|do(sem aspirina)) e P(dor de cabeça|do(aspirina)), ele não nos oferece os meios para distinguir entre as próprias variáveis, uma considerando uma hora após a ausência da aspirina e outra uma hora hipotética após tomar aspirina. Precisamos dessa distinção para permitir que a real hora após a ausência da aspirina nos informe sobre nossa avaliação da uma hora hipotética após tomar aspirina.

Para isso, vale lembrar dos conceitos de resultados potenciais e sua notação. A distinção é feita desta maneira, Y é nossa variável resposta. Consequentemente Yx =1 ou (Y1) significa o efeito de tomar aspirina após uma hora, enquanto Yx = 0 ou (Y0) significa o efeito de não tomar aspirina após uma hora. No nosso caso, como Y0 é o Y realmente observado, a quantidade que queremos estimar é a seguinte:

Note que nessa expressão temos uma variável hipotética (ou potencial) e duas variáveis observadas.

Quando usamos o operador-do para prever o efeito de intervenções, escrevemos a seguinte expressão:

E queremos estimar eles em termos de probabilidades observadas.

Tendo entendido esse exemplo, podemos partir para onde queremos chegar. Pensemos na interpretação estrutural dos contrafactuais, para isso imagine um modelo M completamente especificado, no qual conhecemos tanto as funções {F} e os valores das variáveis exógenas. Em tal modelo determinístico, cada atribuição U = u para a variável exógena corresponde a um único membro, ou unidade, da população. Cada atribuição U = u unicamente determina os valores das variáveis V.

Queremos interpretar a expressão contrafactual: “Y seria y se X fosse x, na situação que U = u”, denotando essa por Yx(u) = y, em que Y e X são duas variáveis em V. Então, pensemos essas questões com um modelo simples com apenas três variáveis, X, Y e U, e duas equações:

X = aU

Y = bX + U

Primeiro computamos o contrafactual Yx(u), i.e, o que Y seria caso X fosse x, na situação U = u. Substituindo a primeira equação com X = x nos dá o modelo modificado Mx:

X = x

Y = bX + U

Substituindo U = u e resolvendo para Y, temos:

Mas isso é apenas um caso particular. Vamos generalizar.

A Lei Fundamental dos Contrafactuais

Deixe Mx representando como a versão modificada do modelo M, com a equação de X substituída por X = x. A definição formal de um contrafactual Yx(u) lê-se:

Em palavras: O contrafactual Yx(u) no modelo M é definido como a solução para Y no submodelo “cirurgicamente modificado” Mx.

Em geral, contrafactuais seguem a seguinte regra de consistência:

Se X é binário, então a regra da consistência toma a forma conveniente:

Uma vez entendido, agora falta apenas sabermos computar os contrafactuais a partir dos nossos dados. Para isso, devemos seguir apenas três passos.

Em um modelo de contrafactual determinístico:

  1. Abdução: use a evidência E = e para determinar o valor de U
  2. Ação: Modifique o modelo, M, ao remover a equação estrutural para as variáveis em X e substituindo com sua função apropriada: X =x, para obter o modelo modificado, Mx
  3. Predição: Use o modelo modificado, Mx, e o valor de U para computar o valor de Y, a consequência do contrafactual.

Podemos generalizar para qualquer sistema probabilístico não-linear. Tomando o contrafactual arbitrário com a seguinte forma:

  1. Abdução: atualize P(U) pela evidência para obter P(U|E = e)
  2. Ação: Modifique o modelo, M, ao remover a equação estrutural para as variáveis X e as substituindo com a função apropriada X = x, para obter o modelo modificado, Mx
  3. Predição: Use o modelo modificado, Mx, e a probabilidade atualizada sobre a variável U, P(U|E = e), para computar a expectativa de Y, a consequência do contrafactual.

Se usarmos metáforas temporais, a etapa 1) explica o passado (U) em luz das evidências atuais e; etapa 2) entorta o curso da história (minimamente) para se comportar com o antecedente hipotético X = x; finalmente a etapa 3) prevê o futuro (Y) baseado em nosso entendimento do passado e da nossa nova condição estabelecida, X = x.

Podemos entender o critério backdoor a luz dos contrafactuais, disso derivamos o seguinte teorema:

Teorema (Interpretação Contrafactual do Backdoor): Se o conjunto de variáveis Z satisfaz o critério backdoor relativo ao par ordenado (X,Y), então, para todo x, o contrafactual Yx é condicionalmente independente de X dado Z. Ou seja,

Uma consequência em particular deste resultado é a seguinte expressão:

Desta forma, unificamos em uma única fórmula todos os degraus da escada da causalidade. Portanto, escrevemos probabilidades contrafactuais em termos de probabilidades de associações!

Em conclusão:

Espero que com esse texto, tenha causado a curiosidade dos leitores e que se aprofundem cada vez mais nesse fascinante mundo da causalidade. Até a próxima.

Referência

Pearl, Judea, and Dana Mackenzie. The book of why: the new science of cause and effect. Basic books, 2018.

Angrist, Joshua D., and Jörn-Steffen Pischke. “The credibility revolution in empirical economics: How better research design is taking the con out of econometrics.” Journal of economic perspectives 24.2 (2010): 3–30.

Pearl, Judea. Causality. Cambridge university press, 2009.

Glymour, Madelyn, Judea Pearl, and Nicholas P. Jewell. Causal inference in statistics: A primer. John Wiley & Sons, 2016.

Wright, Sewall. “Systems of mating. I. The biometric relations between parent and offspring.” Genetics 6.2 (1921): 111.

Becker, Gary S. Human capital: A theoretical and empirical analysis, with special reference to education. University of Chicago press, 1994.

Cunningham, Scott. Causal inference. Yale University Press, 2021.

Cinelli, Carlos, Andrew Forney, and Judea Pearl. “A crash course in good and bad controls.” Available at SSRN 3689437 (2020).

--

--

Zinho

Mestrando em Estatística pela IMECC - Unicamp, bacharel em ciências econômicas FEA-USP. Sonho em ser acadêmico/professor.