Это очень хороший вопрос. Сначала давайте проверим правильность вашей формулы. Информация, которую вы предоставили, соответствует следующей причинно-следственной модели:
И, как вы сказали, мы можем получить оценку для используя правила do-исчисления. В R мы можем легко сделать это с пакетом . Сначала мы загружаемся, чтобы создать объект с причинной диаграммой, которую вы предлагаете:п( Y| do ( X) )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
представляют ненаблюдаемые составители и а остальные слагаемые обозначают указанные вами ребра.YИксY
Затем мы просим нашу оценку:
library(causaleffect)
cat(causal.effect("Y", "X", G = g, primes = TRUE, simp = T, expr = TRUE))
ΣW, Z( ∑Икс'п( Y| W, X', Z) P( Х'| W) ) P( Z| W, X) P( W)
Что действительно совпадает с вашей формулой - случай входной двери с наблюдаемым спутником.
Теперь перейдем к части оценки. Если вы предполагаете линейность (и нормальность), все значительно упрощается. В основном то , что вы хотите сделать , это оценить коэффициенты пути .Икс→ Z→ Y
Давайте смоделируем некоторые данные:
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)
Y Y ∼ Z + W + X Z Y Z ∼ X + W XИксYY∼ Z+ W+ XZYZ∼ X+ WИксZ
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
Вы также можете выполнить (не / полу) -параметрическую оценку, я постараюсь обновить этот ответ, включая другие процедуры позже.