Skip to contents

Output is a parameter dataframe recording both parameters (case level priors) and the case level causal type.

Usage

draw_causal_type(model, ...)

Arguments

model

A causal_model. A model object generated by make_model.

...

Arguments passed to `set_parameters`

Examples


# Simple draw using model's parameter vector
make_model("X -> M -> Y") %>%
draw_causal_type(.)
#> # A tibble: 10 × 9
#>    param_names node    gen param_set nodal_type given param_value priors
#>    <chr>       <chr> <int> <chr>     <chr>      <chr>       <dbl>  <dbl>
#>  1 X.0         X         1 X         0          ""           0.5       1
#>  2 X.1         X         1 X         1          ""           0.5       1
#>  3 M.00        M         2 M         00         ""           0.25      1
#>  4 M.10        M         2 M         10         ""           0.25      1
#>  5 M.01        M         2 M         01         ""           0.25      1
#>  6 M.11        M         2 M         11         ""           0.25      1
#>  7 Y.00        Y         3 Y         00         ""           0.25      1
#>  8 Y.10        Y         3 Y         10         ""           0.25      1
#>  9 Y.01        Y         3 Y         01         ""           0.25      1
#> 10 Y.11        Y         3 Y         11         ""           0.25      1
#> # ℹ 1 more variable: causal_type <int>

# Draw parameters from priors and draw type from parameters
make_model("X -> M -> Y") %>%
draw_causal_type(., param_type = "prior_draw")
#> # A tibble: 10 × 9
#>    param_names node    gen param_set nodal_type given param_value priors
#>    <chr>       <chr> <int> <chr>     <chr>      <chr>       <dbl>  <dbl>
#>  1 X.0         X         1 X         0          ""         0.446       1
#>  2 X.1         X         1 X         1          ""         0.554       1
#>  3 M.00        M         2 M         00         ""         0.0355      1
#>  4 M.10        M         2 M         10         ""         0.420       1
#>  5 M.01        M         2 M         01         ""         0.195       1
#>  6 M.11        M         2 M         11         ""         0.349       1
#>  7 Y.00        Y         3 Y         00         ""         0.488       1
#>  8 Y.10        Y         3 Y         10         ""         0.188       1
#>  9 Y.01        Y         3 Y         01         ""         0.0661      1
#> 10 Y.11        Y         3 Y         11         ""         0.259       1
#> # ℹ 1 more variable: causal_type <int>

# Draw type given specified parameters
make_model("X -> M -> Y") %>%
draw_causal_type(., parameters = 1:10)
#> # A tibble: 10 × 9
#>    param_names node    gen param_set nodal_type given param_value priors
#>    <chr>       <chr> <int> <chr>     <chr>      <chr>       <dbl>  <dbl>
#>  1 X.0         X         1 X         0          ""          0.333      1
#>  2 X.1         X         1 X         1          ""          0.667      1
#>  3 M.00        M         2 M         00         ""          0.167      1
#>  4 M.10        M         2 M         10         ""          0.222      1
#>  5 M.01        M         2 M         01         ""          0.278      1
#>  6 M.11        M         2 M         11         ""          0.333      1
#>  7 Y.00        Y         3 Y         00         ""          0.206      1
#>  8 Y.10        Y         3 Y         10         ""          0.235      1
#>  9 Y.01        Y         3 Y         01         ""          0.265      1
#> 10 Y.11        Y         3 Y         11         ""          0.294      1
#> # ℹ 1 more variable: causal_type <int>

# Define a causal type and reveal data
model <- make_model("X -> Y; X <-> Y")
type <- model %>% draw_causal_type()
make_data(model, parameters = type$causal_type)
#>   X Y
#> 1 1 0