Assess d-separation between variables | R Documentation |
D-separation is a key concept in causal structural models. Variables are
d-separated if there are no open paths between them. The node_d*()
functions label variables as d-connected or d-separated. The
ggdag_d*()
functions plot the results. The *_dconnected()
,
*_dseparated()
, and *_drelationship()
functions essentially
produce the same output and are just different ways of thinking about the
relationship. See dagitty::dseparated()
for details.
node_dconnected(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
as_factor = TRUE,
...
)
node_dseparated(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
as_factor = TRUE
)
node_drelationship(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
as_factor = TRUE
)
ggdag_drelationship(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
...,
edge_type = "link_arc",
size = 1,
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 10,
arrow_length = 5,
use_edges = TRUE,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label = NULL,
text = NULL,
node = deprecated(),
stylized = deprecated(),
collider_lines = TRUE
)
ggdag_dseparated(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
...,
edge_type = "link_arc",
size = 1,
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 10,
arrow_length = 5,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label = NULL,
text = NULL,
node = deprecated(),
stylized = deprecated(),
collider_lines = TRUE
)
ggdag_dconnected(
.tdy_dag,
from = NULL,
to = NULL,
controlling_for = NULL,
...,
edge_type = "link_arc",
size = 1,
node_size = 16,
text_size = 3.88,
label_size = text_size,
text_col = "white",
label_col = "black",
edge_width = 0.6,
edge_cap = 10,
arrow_length = 5,
use_nodes = TRUE,
use_stylized = FALSE,
use_text = TRUE,
use_labels = FALSE,
label = NULL,
text = NULL,
node = deprecated(),
stylized = deprecated(),
collider_lines = TRUE
)
.tdy_dag |
input graph, an object of class |
from |
a character vector, the starting variable (must by in DAG). If
|
to |
a character vector, the ending variable (must by in DAG). If
|
controlling_for |
a character vector, variables in the DAG to control for. |
as_factor |
logical. Should the |
... |
additional arguments passed to |
edge_type |
The type of edge, one of "link_arc", "link", "arc", "diagonal". |
size |
A numeric value scaling the size of all elements in the DAG. This allows you to change the scale of the DAG without changing the proportions. |
node_size |
The size of the nodes. |
text_size |
The size of the text. |
label_size |
The size of the labels. |
text_col |
The color of the text. |
label_col |
The color of the labels. |
edge_width |
The width of the edges. |
edge_cap |
The size of edge caps (the distance between the arrowheads and the node borders). |
arrow_length |
The length of arrows on edges. |
use_edges |
A logical value. Include a |
use_nodes |
A logical value. Include |
use_stylized |
A logical value. Include |
use_text |
A logical value. Include |
use_labels |
A logical value. Include |
label |
The bare name of a column to use for |
text |
The bare name of a column to use for |
node |
Deprecated. |
stylized |
Deprecated. |
collider_lines |
logical. Should the plot show paths activated by adjusting for a collider? |
a tidy_dagitty
with a d_relationship
column for
variable D relationship or a ggplot
library(ggplot2)
dag <- dagify(m ~ x + y)
dag %>% ggdag_drelationship("x", "y")
dag %>% ggdag_drelationship("x", "y", controlling_for = "m")
dag %>%
node_dseparated("x", "y") %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend, shape = adjusted, col = d_relationship)) +
geom_dag_edges() +
geom_dag_collider_edges() +
geom_dag_node() +
geom_dag_text(col = "white") +
theme_dag() +
scale_adjusted()
dag %>%
node_dconnected("x", "y", controlling_for = "m") %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend, shape = adjusted, col = d_relationship)) +
geom_dag_edges() +
geom_dag_collider_edges() +
geom_dag_node() +
geom_dag_text(col = "white") +
theme_dag() +
scale_adjusted()
dagify(m ~ x + y, m_jr ~ m) %>%
tidy_dagitty(layout = "nicely") %>%
node_dconnected("x", "y", controlling_for = "m_jr") %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend, shape = adjusted, col = d_relationship)) +
geom_dag_edges() +
geom_dag_collider_edges() +
geom_dag_node() +
geom_dag_text(col = "white") +
theme_dag() +
scale_adjusted()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.