@dagitty, @ggdag 可以用于概率图分析1,可以配合 @Koller2018 的课学习。
## Error in `library()`:
## ! there is no package called 'ggdag'
## Error in `library()`:
## ! there is no package called 'dagitty'
dagitty和ggdag的对比
dag <- dagitty(
"
dag {
y <- x <- z1 <- v -> z2 -> y
z1 <- w1 <-> w2 -> z2
x <- w1 -> y
x <- w2 -> y
x [exposure]
y [outcome]
}
"
)## Error in `dagitty()`:
## ! could not find function "dagitty"
## Error in `tidy_dagitty()`:
## ! could not find function "tidy_dagitty"
## Error:
## ! object 'tidy_dag' not found
## Error in `ggdag()`:
## ! could not find function "ggdag"
- 这里的代码,类似于 @DiagrammeR
开发的包
DiagrammeR。 <->表示双向箭头。
tidy_ggdag <-
ggdag::dagify(
y ~ x + z2 + w2 + w1,
x ~ z1 + w1,
z1 ~ w1 + v,
z2 ~ w2 + v,
w1 ~~ w2, # bidirected path
exposure = "x",
outcome = "y"
) %>%
tidy_dagitty()## Error in `ggdag::dagify(y ~ x + z2 + w2 + w1, x ~ z1 + w1, z1 ~ w1 + v, z2 ~ w2 + v, w1 ~
## (~w2), exposure = "x", outcome = "y") %>% tidy_dagitty()`:
## ! could not find function "%>%"
## Error:
## ! object 'tidy_ggdag' not found
## Error in `ggdag()`:
## ! could not find function "ggdag"
ggdag函数是内置ggplot2的,因此非常方便。~~表示双向箭头。y ~ x + z2 + w2 + w1表示这四个变量都导致y,类似于回归方程中,自变量和因变量的关系。- 而且这里不需要string格式的输入。
加label
confounder_triangle是ggdag的一个内置函数,
@Barrett2018 给了一个加上label的例子。
confounder_triangle(x = "Coffee", y = "Lung Cancer", z = "Smoking") %>%
ggdag_dconnected(text = FALSE, use_labels = "label")## Error in `confounder_triangle(x = "Coffee", y = "Lung Cancer", z = "Smoking") %>%
## ggdag_dconnected(text = FALSE, use_labels = "label")`:
## ! could not find function "%>%"
批量label
coffee_dag <- dagify(cancer ~ smoking,
smoking ~ addictive,
coffee ~ addictive,
exposure = "coffee",
outcome = "cancer",
labels = c("coffee" = "Coffee", "cancer" = "Lung Cancer",
"smoking" = "Smoking", "addictive" = "Addictive \nBehavior")) %>%
tidy_dagitty(layout = "tree")## Error in `dagify(cancer ~ smoking, smoking ~ addictive, coffee ~ addictive, exposure = "coffee",
## outcome = "cancer", labels = c(coffee = "Coffee", cancer = "Lung Cancer",
## smoking = "Smoking", addictive = "Addictive \nBehavior")) %>% tidy_dagitty(
## layout = "tree")`:
## ! could not find function "%>%"
## Error in `ggdag()`:
## ! could not find function "ggdag"
参考文献
@ggdag 是在 @dagitty 的基础上进行开发的。↩︎