model <-
make_model ("S -> C -> Y <- R <- X; X -> C -> R" ) |>
set_restrictions (labels = list (C = c ('1110' , '1111' ),
R = c ('0000' , '0001' ),
Y = '0001' ),
keep = TRUE )
query <- "Y[X=1] > Y[X=0]"
model$ parameters_df |> kable ()
1
S.0
S
1
S
0
0.5
1
2
S.1
S
1
S
1
0.5
1
3
X.0
X
2
X
0
0.5
1
4
X.1
X
2
X
1
0.5
1
12
C.1110
C
3
C
1110
0.5
1
20
C.1111
C
3
C
1111
0.5
1
21
R.0000
R
4
R
0000
0.5
1
29
R.0001
R
4
R
0001
0.5
1
45
Y.0001
Y
5
Y
0001
1.0
1
my_table <-
model |>
grab (what = "ambiguities_matrix" ) |>
data.frame () |>
mutate (
in_query = get_query_types (model, query)$ types,
priors = CausalQueries::: get_type_prob (model))
S0X0C1110R0000Y0001
0
1
0
0
0
0
0
FALSE
0.0625
S1X0C1110R0000Y0001
0
0
1
0
0
0
0
FALSE
0.0625
S0X1C1110R0000Y0001
0
0
0
1
0
0
0
FALSE
0.0625
S1X1C1110R0000Y0001
1
0
0
0
0
0
0
FALSE
0.0625
S0X0C1111R0000Y0001
0
1
0
0
0
0
0
FALSE
0.0625
S1X0C1111R0000Y0001
0
0
1
0
0
0
0
FALSE
0.0625
S0X1C1111R0000Y0001
0
0
0
1
0
0
0
FALSE
0.0625
S1X1C1111R0000Y0001
0
0
0
0
1
0
0
FALSE
0.0625
S0X0C1110R0001Y0001
0
1
0
0
0
0
0
TRUE
0.0625
S1X0C1110R0001Y0001
0
0
1
0
0
0
0
FALSE
0.0625
S0X1C1110R0001Y0001
0
0
0
0
0
1
0
TRUE
0.0625
S1X1C1110R0001Y0001
1
0
0
0
0
0
0
FALSE
0.0625
S0X0C1111R0001Y0001
0
1
0
0
0
0
0
TRUE
0.0625
S1X0C1111R0001Y0001
0
0
1
0
0
0
0
TRUE
0.0625
S0X1C1111R0001Y0001
0
0
0
0
0
1
0
TRUE
0.0625
S1X1C1111R0001Y0001
0
0
0
0
0
0
1
TRUE
0.0625
Examples of inferences
(using a helper funciton to display the subset of the data we care about)
An inference:
I observe \(S=0, Y=0\) only:
data_consistent (my_table, seen = c ("S0" , "Y0" ))
[1] "prob_DQ:" "0.125"
[1] "prob_D:" "0.375"
[1] "prob_Q|D:" "0.333333333333333"
S0X0C1R0Y0 S0X1C1R0Y0 in_query priors
S0X0C1110R0000Y0001 1 0 FALSE 0.0625
S0X1C1110R0000Y0001 0 1 FALSE 0.0625
S0X0C1111R0000Y0001 1 0 FALSE 0.0625
S0X1C1111R0000Y0001 0 1 FALSE 0.0625
S0X0C1110R0001Y0001 1 0 TRUE 0.0625
S0X0C1111R0001Y0001 1 0 TRUE 0.0625
I observe \(S = 1, X = 1, C = 0\)
data_consistent (my_table, seen = c ("S1" , "X1" , "C0" ))
[1] "prob_DQ:" "0"
[1] "prob_D:" "0.125"
[1] "prob_Q|D:" "0"
S1X1C0R0Y0 in_query priors
S1X1C1110R0000Y0001 1 FALSE 0.0625
S1X1C1110R0001Y0001 1 FALSE 0.0625