从鉴定到估计


9

我目前正在阅读Pearl的文章(Pearl,2009年,第二版),探讨因果关系,并努力建立模型的非参数识别与实际估计之间的联系。不幸的是,珀尔本人对此话题非常沉默。

举个例子,我想到一个简单的因果关系模型, xzy,以及影响所有变量的混杂因素 wxwzwy。此外,xy 受到不可观察的影响, x←→y。根据微积分规则,我现在知道干预后(离散)的概率分布由下式给出:

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

我知道不知道如何估算此数量(非参数或通过引入参数假设)?特别是当w是一组混杂变量,并且关注的数量是连续的。在这种情况下,估计联合干预前的数据分布似乎非常不切实际。有人知道处理这些问题的Pearl方法的应用吗?我很高兴获得一个指针。


1
如果您有影响x和y的未知因素,那么我认为如果不对x进行随机化就无法估算出这一点。但是,尽管我对因果关系的反事实方法了解很多,但我对Pearl的微积分不是很熟悉(我自己仍在研究他的书)。
Ellie 2014年

Answers:


7

这个问题问得好。首先,让我们验证您的公式是否正确。您提供的信息与以下因果模型相对应:

在此处输入图片说明

正如您所说,我们可以得出 P(Y|do(X))使用做微积分的规则。在R中,我们可以使用package轻松地做到这一点causaleffect。我们首先加载igraph以使用您建议的因果图创建一个对象:

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")

前两个词X-+Y, Y-+X代表未观察到的混杂因素XY 其他术语代表您提到的有向边。

然后我们要求我们的估计:

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)

这确实与您的公式吻合---一个观察到混杂因素的前门案例。

现在让我们进入估计部分。如果假设线性(和正态性),那么事情将大大简化。基本上,您要做的是估算路径的系数XZY

让我们模拟一些数据:

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)

注意在我们的模拟中,改变的真正因果关系 XY是21。您可以通过运行两个回归来估算。第一 YZ+W+X 得到效果 ZY 然后 ZX+W 得到效果 XZ。您的估计将是两个系数的乘积:

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 

为了进行推断,您可以计算产品的(渐近)标准误差:

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)

可用于测试或置信区间:

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

您也可以执行(非/半)参数估计,稍后我将尝试更新此答案,包括其他步骤。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.