Modelli causali strutturali

1.5.1 Modellazione di ipotesi causali

Nel post precedente abbiamo trattato i grafici aciclici diretti. In questa sezione, impariamo come possiamo usare i DAG per ragionare sulle ipotesi causali nei nostri modelli.

Matematicamente, un modello causale strutturale (SCM) consiste in un insieme di variabili endogene (V) e un insieme di variabili esogene (U) collegate da un insieme di funzioni (F) che determinano i valori delle variabili in V in base ai valori delle variabili in U.

Intuitivamente, se pensiamo a un DAG come a rappresentare un flusso di informazioni, allora le variabili U sono gli input al sistema, mentre le variabili V sono i nodi in cui tali informazioni vengono elaborate.

Ogni SCM è associato con un modello grafico (DAG), dove ogni nodo è una variabile U o V e ogni spigolo è una funzione f. Ogni bordo (funzione) corrisponde ad una causale di assunzione:

  • Se la variabile Y è il figlio di una variabile X, allora diciamo che Y è causato da X, o che X è la causa diretta di Y.
  • Se la variabile Y è il discendente di una variabile X, allora diciamo che Y è potenzialmente causati da X, o che X è causa potenziale di Y.

si consideri l’esempio in figura 1.9:

Fig 1.9 — Grafica modello di SCM 1.5.1

Da semplicemente guardando questo grafico, abbiamo immediatamente e intuitivamente, afferrare un sacco di dettagli sul sottostante SCM:

  • X e Y non hanno bordi in entrata, quindi sono variabili esogene (appartenenti a U).
  • Z ha due bordi in entrata, quindi è una variabile endogena (appartenente a V).
  • Z ha due cause dirette X e Y, o, in altre parole, il valore di Z dipende esplicitamente dai valori di X e Y e fz=f(X, Y).

Tuttavia, abbiamo bisogno della specifica completa del SCM per sapere esattamente qual è la funzione fz che determina il valore di Z. Il modello Causale strutturale viene specificato completamente solo quando, oltre al DAG sopra, specifichiamo anche:

SCM 1.5.1

Qui è importante notare che, anche se DAGs contengono meno informazioni rispetto all’completamente specificata, SCM, essi sono spesso più utili. I grafici sono oggetti estremamente visivi, che li rende più facili da interpretare e analizzare. Inoltre, è spesso il caso in cui semplicemente non abbiamo abbastanza informazioni per specificare completamente l’SCM, ma possiamo definire intuitivamente come dovrebbe essere il grafico causale.

Simulazione di modelli

Uno dei vantaggi di un SCM completamente specificato è che sono abbastanza facili da simulare. Per esempio, si può creare un falso (deterministico) i dati per il SCM descritto sopra:

Che genera una semplice panda DataFrame con i valori di X, Y e Z:

Ti perdono se non sono particolarmente colpito da questo esempio. Dopotutto, l’unica cosa che abbiamo fatto è stata generare alcuni dati falsi basati su una semplice equazione. Questo non è particolarmente impressionante, finché non guardiamo un po ‘ sotto la superficie:

Questo DataFrame rappresenta una descrizione completamente numerica del nostro modello in in altre parole, questa è una versione giocattolo di ciò che i dati originali avrebbero potuto essere utilizzati, in combinazione con DAG sopra, per adattarsi alla funzione fz.

Se trattiamo questo DataFrame come il nostro “dati empirici”, e non ci assumiamo (sulla base di alcune conoscenze di dominio) che fz dovrebbe essere una regressione lineare di X e Y, quindi si può semplicemente adattare Z ~ X + Y:

Per recuperare i coefficienti di moltiplicazione X e Y, rispettivamente:

Vedremo più in dettaglio su come valutare e adattare i Modelli Causali più tardi, ma anche questo semplice giocattolo modello già ci fornisce un assaggio di quello che verrà e la semplicità (e generalità) di questo approccio.

Un esempio stocastico

Diamo ora un’occhiata a un esempio più complesso, SCM 1.5.3. In questo caso, l’SCM è dato da:

SCM 1.5.3

From this specification, we can easily obtain the corresponding DAG:

Graphical Model for SCM 1.5.3

We are also told that all exogenous variables are independently distributed with an expected value zero. Ciò implica che le variabili esogene corrispondono a influenze non osservate nel nostro modello, quindi possono essere trattate come fattori di errore.

Collegando valori casuali normalmente distribuiti per Ux, Uy e Uz possiamo costruire rapidamente un DataFrame specificando i valori di X, Y e Z.

Dimentichiamo per un secondo che abbiamo le formule analitiche esplicite che producono i valori delle nostre variabili endogene e usano solo i valori numerici nel nostro DataFrame.

Qualsiasi domanda che potremmo avere sul comportamento di questo modello può essere risolta con una procedura simile a quella usata sopra: adattamento di un modello lineare (poiché assumiamo che tutte le dipendenze siano lineari) in cui i nostri valori osservati sono le variabili indipendenti e le nostre incognite sono le variabili dipendenti.

Per esempio, se vogliamo sapere che cosa il valore di Z potrebbe essere per uno specifico valore di Y, si sarebbe semplicemente fit Z ~ Y e quindi il plugin corrispondente valore di y Se Y=3, allora il valore atteso di Z è 0.189261, come può essere facilmente verificato collegando Y=3 nell’espressione per fZ sopra (dove abbiamo subito vedere che Z=3/16).

D’altra parte, quale sarebbe il valore di Z se oltre ad osservare Y=3, osserviamo anche che X=1? Per rispondere a questa domanda che ci si poteva montare Z~X+Y. Quando si esegue questa forma, si ottiene:

Dove si può semplicemente leggere i coefficienti di Y e di X. Se noi ora collegare i valori di X e Y, otteniamo Z=0.189821 che è simile al valore ottenuto in precedenza.

Avremmo potuto immaginare che questo sarebbe stato il risultato guardando la tabella riassuntiva sopra. Seminiamo che il coefficiente per X è 0,0053±0,003 rendendolo molto vicino allo zero, praticamente trascurabile.

Anche se questo potrebbe sembrare sorprendente, è uno dei motivi principali per cui questa classe di modelli è così potente.

Il valore di una specifica variabile endogena può dipendere solo dai valori dei suoi genitori

Questa semplice osservazione significa che possiamo semplificare significativamente i nostri calcoli ignorando qualsiasi variabile che non sia tra i genitori di quella a cui siamo interessati.

Che ci porta al nostro prossimo argomento

1.5.2 Decomposizione del prodotto

Possiamo costruire sulla nostra osservazione sopra per definire una regola semplice, ma potente, la “Regola della decomposizione del prodotto” che è definita nel libro come:

Per qualsiasi modello di cui grafo è aciclico, la distribuzione congiunta delle variabili del modello è data dal prodotto delle distribuzioni condizionate P(figli|genitori) su tutte le “famiglie” nel grafico

Così, per una semplice catena grafico:

Possiamo subito scrivere:

Questo significa che, invece di un grande tavolo di osservazioni per ogni possibile combinazione di X, di Y e di X abbiamo bisogno solo molto più piccoli tavoli per X, Y|X e Z|Y) che conterrà le stesse informazioni e sono molto più facili da ottenere.

Ancora più importante, i modelli grafici ci permettono di scrivere questa decomposizione senza dover sapere esplicitamente nulla sulle funzioni sottostanti ogni variabile.

In general, we write:

Let us now consider the example in Fig 1.10:

DAG from Fig 1.10 with the associated probability tables.

From this figure, we can immediately write:

and:

Which could also be obtained from the definition of the conditional probability P(X|Z). We can further write:

by the theorem of total probability. And if we plugin the values from the conditional probability tables above, we obtain:

And, similarly:

Infine, siamo in grado di stimare l’effetto sulla mortalità (Y=1) di assumere il farmaco (X=1) calcolando la differenza P(Y=1|X=1)-P(Y=1|X=0). Per la popolazione con (Z=1) e senza (Z=0) la malattia, abbiamo:

Qui dovrebbe essere chiaro il motivo per cui siamo condizionata su entrambi X e Z: ci stanno imponendo che ogni individuo appartiene a una specifica popolazione (Z) e che prende o meno il farmaco (X).

D’altra parte, se vogliamo solo un effetto medio su tutta la popolazione, allora dobbiamo condizionare solo il trattamento (X). In questo caso, vogliamo calcolare P(Y=1|X=1)-P (Y=1|X=0). Riscriviamo questa espressione come:

Where we can easily plugin the expressions defined above.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.