Nothing
## -----------------------------------------------------------------------------
#| label: setup
library(causalDisco)
## -----------------------------------------------------------------------------
#| label: dag
cg <- caugi::caugi(
Z %-->% X1,
X3 %-->% X2,
X1 %-->% Y,
X2 %-->% Y
)
## -----------------------------------------------------------------------------
#| label: plot dag
layout <- caugi::caugi_layout_sugiyama(cg)
plot(cg, layout = layout, main = "True DAG")
## -----------------------------------------------------------------------------
#| label: simple causal discovery
data_linear <- generate_dag_data(
cg,
n = 10000,
seed = 1405,
coef_range = c(0.1, 0.9),
error_sd = c(0.3, 2)
)
head(data_linear)
## -----------------------------------------------------------------------------
#| label: generating model
attr(data_linear, "generating_model")
## -----------------------------------------------------------------------------
#| label: pc algorithm simple
pc_pcalg <- pc(engine = "pcalg", test = "fisher_z", alpha = 0.05)
pc_result_pcalg <- disco(data = data_linear, method = pc_pcalg)
## -----------------------------------------------------------------------------
#| label: plot pc results simple
plot(pc_result_pcalg, layout = layout, main = "PC (pcalg)")
## -----------------------------------------------------------------------------
#| label: pc algorithm reversed
cg_reverse <- caugi::caugi(
Z %-->% X1,
X2 %-->% X3,
X1 %-->% Y,
X2 %-->% Y
)
data_linear_reverse <- generate_dag_data(
cg_reverse,
n = 10000,
seed = 1405,
coef_range = c(0.1, 0.9),
error_sd = c(0.3, 2)
)
pc_result_reverse <- disco(data = data_linear_reverse, method = pc_pcalg)
plot(pc_result_reverse, layout = layout, main = "PC (pcalg) reversed")
## -----------------------------------------------------------------------------
#| label: dag unobserved confounder
cg_unobserved <- caugi::caugi(
Z %-->% X1,
X3 %-->% X2,
X1 %-->% Y,
X2 %-->% Y,
U %-->% X1 + X2
)
## -----------------------------------------------------------------------------
#| label: plot dag unobserved confounder
plot(
cg_unobserved,
edge_style = list(
by_edge = list(
U = list(col = "red", fill = "red", lty = "dashed")
)
),
node_style = list(
by_node = list(
U = list(col = "red", fill = "red")
)
),
main = "True DAG"
)
## -----------------------------------------------------------------------------
#| label: data unobserved confounder
data_unobserved <- generate_dag_data(
cg_unobserved,
n = 10000,
seed = 1405,
coef_range = c(0.1, 0.9),
error_sd = c(0.3, 2)
)
data_unobserved <- data_unobserved[, names(data_unobserved) != "U"]
head(data_unobserved)
## -----------------------------------------------------------------------------
#| label: pc algorithm unobserved confounder
pc_pcalg_unobserved <- pc(engine = "pcalg", test = "fisher_z", alpha = 0.05)
pc_result_unobserved <- disco(
data = data_unobserved,
method = pc_pcalg_unobserved
)
plot(pc_result_unobserved, layout = layout, main = "PC (pcalg)")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.