-
Notifications
You must be signed in to change notification settings - Fork 7
/
draw_causal_type.R
36 lines (34 loc) · 1.06 KB
/
draw_causal_type.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#' Draw a single causal type given a parameter vector
#'
#' Output is a parameter dataframe recording both parameters
#' (case level priors) and
#' the case level causal type.
#'
#' @inheritParams CausalQueries_internal_inherit_params
#' @param ... Arguments passed to `set_parameters`
#' @export
#' @examples
#'
#' # Simple draw using model's parameter vector
#' make_model("X -> M -> Y") %>%
#' draw_causal_type(.)
#'
#' # Draw parameters from priors and draw type from parameters
#' make_model("X -> M -> Y") %>%
#' draw_causal_type(., param_type = "prior_draw")
#'
#' # Draw type given specified parameters
#' make_model("X -> M -> Y") %>%
#' draw_causal_type(., parameters = 1:10)
#'
#' # 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)
draw_causal_type <- function(model, ...){
param_value <- NULL
set_parameters(model, ...)$parameters_df %>%
group_by(param_set) %>%
mutate(causal_type = rmultinom(1, 1, param_value)[,1]) %>%
ungroup()
}