我对因果推理非常陌生,我想尝试一些治疗效果评估的方法。为此,我在Python中创建了以下数据生成过程:
import numpy as np
n = 10000
X3 = np.random.randint(1,4, n)
X2 = np.random.randint(1,11, n)
X1 = 5 * X2 + 3 * X3 + np.random.randint(-1,3, n)
X4 = 10 * X2 + np.random.randint(-2,5, n)
#treatment probability
propensity = np.where(X1 > 30, 0.8, 0.2)
T = np.random.binomial(1, propensity)
#treatment effect
tau = np.where(X2 > 5, 10,0) * T * (-1)
#define outcome
Y = 50 * X2 - 5 * np.sqrt(X1) + T*tau + np.random.randint(10,21, n)对于生成的数据,将创建以下图表:
我的问题是:由于X2 (根据数据生成)不影响T的分配,但对治疗效果本身有影响,那么是否需要X2和T (X2->T)之间的边界?
非常感谢!
发布于 2022-05-05 16:10:08
可悲的事实是,一般来说,DAG只能告诉您哪些变量会影响其他变量,但是它们不能告诉您它们是如何做到的--它们不描述函数的形式。
有几种结构形式可以产生效果修改。,但是您的数据生成模拟中的一个与您在DAG中已经绘制的那个匹配(X2影响Y,而不是T)。
如果传递交互很重要,提出了基于DAG的方法。,但是它们不再是有效的DAG。
发布于 2022-11-04 08:49:55
仅仅因为您没有看到X2和T之间的直接联系,这并不意味着它对T的分配没有影响,因为您设置了您所知道的数据生成规则,因为X2通过X1对T有一定的影响,这在DAG中是很清楚的。
https://stackoverflow.com/questions/71218816
复制相似问题