Dari Identifikasi ke Estimasi

9

Saat ini saya sedang membaca karya Pearl (Pearl, 2009, 2nd edition) tentang hubungan sebab akibat dan perjuangan untuk membangun hubungan antara identifikasi nonparametrik dari suatu model dan estimasi aktual. Sayangnya, Pearl sendiri sangat diam tentang topik ini.

Untuk memberikan contoh, saya memiliki model sederhana dalam pikiran dengan jalur kausal, , dan perancu yang mempengaruhi semua variabel , dan . Selain itu, dan terkait dengan pengaruh yang tidak teramati, . Menurut aturan do-calculus, saya sekarang tahu bahwa distribusi probabilitas pasca-intervensi (diskrit) diberikan oleh:w x w z w y x y x yxzywxwzwyxyx←→y

P(ydo(x))=w,z[P(zw,x)P(w)x[P(yw,x,z)P(xw)]].

Saya tahu bagaimana saya bisa memperkirakan jumlah ini (non-parametrik atau dengan memperkenalkan asumsi parametrik)? Khusus untuk kasus ketika adalah seperangkat beberapa variabel pengganggu dan jumlah bunga yang kontinu. Untuk memperkirakan distribusi pra-intervensi bersama dari data tampaknya sangat tidak praktis dalam kasus ini. Apakah ada yang tahu aplikasi metode Pearl yang menangani masalah ini? Saya akan sangat senang untuk sebuah pointer. w

PHU
sumber
1
Jika Anda memiliki faktor-faktor yang tidak teramati yang mempengaruhi x dan y, maka saya pikir Anda tidak dapat memperkirakan ini tanpa benar-benar mengacak x. Tetapi, meskipun saya tahu cukup banyak tentang pendekatan kontrafaktual untuk kausalitas, saya tidak begitu akrab dengan kalkulus do Pearl (saya sendiri masih mengerjakan bukunya sendiri).
Ellie

Jawaban:

7

Ini pertanyaan yang sangat bagus. Pertama mari kita verifikasi apakah formula Anda benar. Informasi yang Anda berikan sesuai dengan model kausal berikut:

masukkan deskripsi gambar di sini

Dan seperti yang telah Anda katakan, kita dapat memperoleh estimasi dan untuk menggunakan aturan do-calculus. Di R kita bisa dengan mudah melakukannya dengan paket . Kami pertama-tama memuat untuk membuat objek dengan diagram sebab akibat yang Anda usulkan:P(Y|do(X))causaleffectigraph

library(igraph)
g <- graph.formula(X-+Y, Y-+X, X-+Z-+Y, W-+X, W-+Z, W-+Y, simplify = FALSE)
g <- set.edge.attribute(graph = g, name = "description", index = 1:2, value = "U")

Di mana dua istilah pertama X-+Y, Y-+Xmewakili perancu dan tidak teramati dan sisa istilah mewakili tepi terarah yang Anda sebutkan.YXY

Kemudian kami meminta estimasi kami:

library(causaleffect)
cat(causal.effect("Y", "X", G = g, primes = TRUE, simp = T, expr = TRUE))

W,Z(XP(Y|W,X,Z)P(X|W))P(Z|W,X)P(W)

Yang memang bertepatan dengan formula Anda --- kasus pintu depan dengan perancu yang diamati.

Sekarang mari kita pergi ke bagian estimasi. Jika Anda menganggap linearitas (dan normalitas), banyak hal disederhanakan. Pada dasarnya apa yang ingin Anda lakukan adalah untuk memperkirakan koefisien jalur .XZY

Mari kita simulasikan beberapa data:

set.seed(1)
n <- 1e3
u <- rnorm(n) # y -> x unobserved confounder
w <- rnorm(n)
x <- w + u + rnorm(n)
z <- 3*x + 5*w + rnorm(n)
y <- 7*z + 11*w + 13*u + rnorm(n)

Perhatikan dalam simulasi kami efek kausal sebenarnya dari perubahan pada adalah 21. Anda dapat memperkirakan ini dengan menjalankan dua regresi. Pertama untuk mendapatkan efek dari pada dan kemudian untuk mendapatkan efek dari pada . Perkiraan Anda akan menjadi produk dari kedua koefisien:Y Y Z + W + X Z Y Z X + W X ZXYYZ+W+XZYZX+WXZ

yz_model <- lm(y ~ z + w + x)
zx_model <- lm(z ~ x + w)

yz <- coef(yz_model)[2]
zx <- coef(zx_model)[2]
effect <- zx*yz
effect
       x 
21.37626 

Dan untuk kesimpulan Anda dapat menghitung kesalahan standar (asimptotik) dari produk:

se_yz <- coef(summary(yz_model))[2, 2]
se_zx <- coef(summary(zx_model))[2, 2]
se <- sqrt(yz^2*se_zx^2 + zx^2*se_yz^2)

Yang dapat Anda gunakan untuk tes atau interval kepercayaan:

c(effect - 1.96*se, effect + 1.96*se) # 95% CI
       x        x 
19.66441 23.08811 

Anda juga dapat melakukan estimasi (non / semi) -parametric, saya akan mencoba memperbarui jawaban ini termasuk prosedur lain nanti.

Carlos Cinelli
sumber