Esercizio - Rete causale con CausalGraphicalModels, cammini backdoor e insiemi validi (esempio d'esame 2)
Teoria: Interventi e operatore do - criterio backdoor e aggiustamentoOsservare $X=x$ e forzare $X=x$ sono cose diverse: $P(y\mid x)\ne P(y\mid do(x))$ quando c'è un confondente. L'intervento $do(X=x)$ si calcola con la «chirurgia» del grafo (si tolgono le frecce entranti in X) e si traduce in probabilità osservazionali con la formula di aggiustamento $P(y\mid do(x))=\sum_z P(y\mid x,z)P(z)$, dove $Z$ sono i genitori di X, o più in generale un insieme S che soddisfa il criterio backdoor: blocca ogni cammino backdoor (cammino da X a Y che inizia con una freccia entrante in X) e non contiene discendenti di X. Effetto causale medio $ACE=P(y\mid do(x))-P(y\mid do(\neg x))$. Se il confondente non è osservabile ma c'è un mediatore Z con X→Z→Y, vale il front-door $P(y\mid do(x))=\sum_z P(z\mid x)\sum_{x'}P(y\mid x',z)P(x')$. Mediazione: effetto diretto controllato CDE con $do(x),do(z)$. Se due insiemi backdoor danno risultati diversi sui dati, il modello è sbagliato. Argomento del corso da 9 CFU.Interventi e operatore do - criterio backdoor e aggiustamento → e Inferenza causale - modelli causali strutturali e scala della causalitàI dati e la distribuzione congiunta da soli non dicono quali variabili causano quali: lo mostrano il paradosso di Simpson (la medicina funziona in ogni sottogruppo ma sembra peggiorare la popolazione) e il fatto che reti bayesiane diverse (A→B e B→A) descrivono la stessa congiunta. Serve un modello causale: un modello causale strutturale (SCM) ha variabili esogene U, endogene V e funzioni $v_i=f_i(\text{genitori},u_i)$; il suo grafo è la rete causale, e una rete causale è una rete bayesiana in cui le frecce sono cause. Le tre strutture elementari decidono l'indipendenza: catena $A\to B\to C$ e fork $A\leftarrow B\to C$ si bloccano osservando B, il collider $A\to B\leftarrow C$ si blocca se B e i suoi discendenti NON sono osservati (osservarlo crea dipendenza, explaining away). d-separazione: X e Y sono separati da Z se ogni cammino è bloccato; allora $X\perp!!!\perp Y\mid Z$. La scala della causalità (Pearl): associazione $P(y\mid x)$, intervento $P(y\mid do(x))$, controfattuali. Argomento del corso da 9 CFU.Inferenza causale - modelli causali strutturali e scala della causalità →. Esercizi collegati: Esercizio - Cammini backdoor e insiemi di aggiustamento validi (laboratorio 8) e Esercizio - Rete bayesiana dell'offerta di lavoro e intervento do (esempio di forma d'esame). Domanda 3 del quiz da 9 CFU (la causale non è nel programma da 6 CFU).
Testo. Rete causale della figura, con archi , , , , , , .
bdnet1 = cgm.CausalGraphicalModel(
nodes = ['X', 'C', 'Y', 'D', 'B', 'A'],
edges = [('X', Blank1), ('C', 'Y'), ('Y', 'D'), ('B', 'C'),
('A', 'X'), ('B', 'X'), ('A', 'Y')])- Q1. Completare l'arco
('X', ...). Menu: A, B, C, D. - Q2. Come si ottengono tutti i cammini backdoor tra e con CausalGraphicalModels? Menu:
bdnet1.get_all_backdoor_paths("X","Y"),bdnet1.backdoor_paths("X","Y"),bdnet1.all_backdoor_paths("X","Y"),bdnet1.find_backdoor_paths("X","Y"). - Q3. Quale opzione contiene tutti i cammini backdoor tra e ? Menu:
['X','A','Y'];['X','B','C','Y'];[['X','B','C','Y'], ['X','A','Y']];['X','C','Y','D']. Le opzioni sono trascritte dal sistema con parentesi sbilanciate nelle prime due: il senso è un cammino solo contro due cammini. - Q4. Quale opzione contiene tutti gli insiemi validi per la formula di aggiustamento con il criterio backdoor? Menu:
{'A','B'};{'A','B'}, {'A'}, {'B'};{'A','B'}, {'A'};{'A','B'}, {'A'}, {'B'}(la seconda e la quarta compaiono identiche nella trascrizione).
Soluzione
Q1: C. Nella figura la freccia esce da ed entra in (, e ). A e B sono già genitori di (('A','X'), ('B','X'): aggiungere ('X','A') creerebbe un ciclo, che un grafo aciclico non ammette); ('X','D') non c'è: è figlio di .
Q2: bdnet1.get_all_backdoor_paths("X", "Y"). È il nome del metodo della libreria (insieme a get_all_backdoor_adjustment_sets e is_valid_backdoor_adjustment_set); gli altri nomi non esistono.
Q3: [['X','B','C','Y'], ['X','A','Y']]. Un cammino backdoor è un cammino da a il cui primo arco entra in . Dei quattro cammini senza ripetizioni:
- : causale (il primo arco esce da ), non backdoor;
- : backdoor;
- : backdoor, è causa di e, tramite , di ;
- : non arriva a senza tornare su .
(ultima opzione) è causale e comprende il discendente . Le prime due opzioni contengono un cammino solo.
Q4: {'A','B'}. Occorre bloccare i due cammini backdoor senza includere discendenti di .
- : è una biforcazione, si blocca condizionando su (obbligatorio).
- : si blocca condizionando su (biforcazione) o su (catena). Ma è discendente di (mediatore ): condizionare su bloccherebbe parte dell'effetto causale, quindi non è ammesso. Resta .
- è discendente di , quindi di : escluso.
Gli insiemi che bloccano entrambi i cammini devono contenere e : l'unico valido è . lascia aperto il cammino , lascia aperto . Controllato con un programma che enumera tutti i sottoinsiemi dei non discendenti di : risulta solo .
Versione ripasso
- Q1:
('X','C'), opzione C (freccia ;A,Bdarebbero un ciclo). - Q2:
bdnet1.get_all_backdoor_paths("X","Y"). - Q3: backdoor = primo arco entra in : e , quindi
[['X','B','C','Y'], ['X','A','Y']]. - Q4: blocca il primo; per il secondo (non , che è discendente di ); discendente. Solo
{'A','B'}.
Errori tipici: includere o nell'insieme; contare come backdoor; trascurare .