Translate response functions into matrix of counterfactuals

create_q_matrix(respvars, right.vars, cond.vars, constraints)

Arguments

respvars

A list of functions as returned by create_response_function

right.vars

Vertices of graph on the right side

cond.vars

Vertices of graph on the left side

constraints

A vector of character strings that represent the constraints

Value

A list of 3 data frames of counterfactuals and their associated labels

Examples

graphres <- graph_from_literal(Z -+ X, X -+ Y, Ul -+ Z, Ur -+ X, Ur -+ Y)
V(graphres)$leftside <- c(1, 0, 0, 1, 0)
V(graphres)$latent <- c(0, 0, 0, 1, 1)
V(graphres)$nvals <- c(3, 2, 2, 2, 2)
V(graphres)$exposure <- c(0, 1, 0, 0, 0)
V(graphres)$outcome <- c(0, 0, 1, 0, 0)
E(graphres)$rlconnect <- c(0, 0, 0, 0, 0)
E(graphres)$edge.monotone <- c(0, 0, 0, 0, 0)
constraints <- "X(Z = 1) >= X(Z = 0)"
cond.vars <- V(graphres)[V(graphres)$leftside == 1 & names(V(graphres)) != "Ul"]
right.vars <- V(graphres)[V(graphres)$leftside == 0 & names(V(graphres)) != "Ur"] 
respvars <- create_response_function(graphres, right.vars, cond.vars)
create_q_matrix(respvars, right.vars, cond.vars, constraints)
#> $q.vals
#>    X Y
#> 1  0 0
#> 2  2 0
#> 3  3 0
#> 4  4 0
#> 5  6 0
#> 6  7 0
#> 7  0 1
#> 8  2 1
#> 9  3 1
#> 10 4 1
#> 11 6 1
#> 12 7 1
#> 13 0 2
#> 14 2 2
#> 15 3 2
#> 16 4 2
#> 17 6 2
#> 18 7 2
#> 19 0 3
#> 20 2 3
#> 21 3 3
#> 22 4 3
#> 23 6 3
#> 24 7 3
#> 
#> $q.vals.all
#>    X Y Z
#> 1  0 0 0
#> 2  2 0 0
#> 3  3 0 0
#> 4  4 0 0
#> 5  6 0 0
#> 6  7 0 0
#> 7  0 1 0
#> 8  2 1 0
#> 9  3 1 0
#> 10 4 1 0
#> 11 6 1 0
#> 12 7 1 0
#> 13 0 2 0
#> 14 2 2 0
#> 15 3 2 0
#> 16 4 2 0
#> 17 6 2 0
#> 18 7 2 0
#> 19 0 3 0
#> 20 2 3 0
#> 21 3 3 0
#> 22 4 3 0
#> 23 6 3 0
#> 24 7 3 0
#> 25 0 0 1
#> 26 2 0 1
#> 27 3 0 1
#> 28 4 0 1
#> 29 6 0 1
#> 30 7 0 1
#> 31 0 1 1
#> 32 2 1 1
#> 33 3 1 1
#> 34 4 1 1
#> 35 6 1 1
#> 36 7 1 1
#> 37 0 2 1
#> 38 2 2 1
#> 39 3 2 1
#> 40 4 2 1
#> 41 6 2 1
#> 42 7 2 1
#> 43 0 3 1
#> 44 2 3 1
#> 45 3 3 1
#> 46 4 3 1
#> 47 6 3 1
#> 48 7 3 1
#> 49 0 0 2
#> 50 2 0 2
#> 51 3 0 2
#> 52 4 0 2
#> 53 6 0 2
#> 54 7 0 2
#> 55 0 1 2
#> 56 2 1 2
#> 57 3 1 2
#> 58 4 1 2
#> 59 6 1 2
#> 60 7 1 2
#> 61 0 2 2
#> 62 2 2 2
#> 63 3 2 2
#> 64 4 2 2
#> 65 6 2 2
#> 66 7 2 2
#> 67 0 3 2
#> 68 2 3 2
#> 69 3 3 2
#> 70 4 3 2
#> 71 6 3 2
#> 72 7 3 2
#> 
#> $q.vals.all.lookup
#>    X Y Z vars
#> 1  0 0 0 q0_0
#> 2  0 0 2 q0_0
#> 3  0 0 1 q0_0
#> 4  0 1 0 q0_1
#> 5  0 1 2 q0_1
#> 6  0 1 1 q0_1
#> 7  0 2 2 q0_2
#> 8  0 2 1 q0_2
#> 9  0 2 0 q0_2
#> 10 0 3 2 q0_3
#> 11 0 3 1 q0_3
#> 12 0 3 0 q0_3
#> 13 2 0 2 q2_0
#> 14 2 0 1 q2_0
#> 15 2 0 0 q2_0
#> 16 2 1 0 q2_1
#> 17 2 1 1 q2_1
#> 18 2 1 2 q2_1
#> 19 2 2 0 q2_2
#> 20 2 2 2 q2_2
#> 21 2 2 1 q2_2
#> 22 2 3 0 q2_3
#> 23 2 3 2 q2_3
#> 24 2 3 1 q2_3
#> 25 3 0 0 q3_0
#> 26 3 0 2 q3_0
#> 27 3 0 1 q3_0
#> 28 3 1 1 q3_1
#> 29 3 1 0 q3_1
#> 30 3 1 2 q3_1
#> 31 3 2 2 q3_2
#> 32 3 2 1 q3_2
#> 33 3 2 0 q3_2
#> 34 3 3 0 q3_3
#> 35 3 3 1 q3_3
#> 36 3 3 2 q3_3
#> 37 4 0 0 q4_0
#> 38 4 0 1 q4_0
#> 39 4 0 2 q4_0
#> 40 4 1 2 q4_1
#> 41 4 1 1 q4_1
#> 42 4 1 0 q4_1
#> 43 4 2 0 q4_2
#> 44 4 2 2 q4_2
#> 45 4 2 1 q4_2
#> 46 4 3 1 q4_3
#> 47 4 3 0 q4_3
#> 48 4 3 2 q4_3
#> 49 6 0 1 q6_0
#> 50 6 0 0 q6_0
#> 51 6 0 2 q6_0
#> 52 6 1 1 q6_1
#> 53 6 1 0 q6_1
#> 54 6 1 2 q6_1
#> 55 6 2 0 q6_2
#> 56 6 2 1 q6_2
#> 57 6 2 2 q6_2
#> 58 6 3 2 q6_3
#> 59 6 3 1 q6_3
#> 60 6 3 0 q6_3
#> 61 7 0 2 q7_0
#> 62 7 0 1 q7_0
#> 63 7 0 0 q7_0
#> 64 7 1 2 q7_1
#> 65 7 1 1 q7_1
#> 66 7 1 0 q7_1
#> 67 7 2 1 q7_2
#> 68 7 2 0 q7_2
#> 69 7 2 2 q7_2
#> 70 7 3 1 q7_3
#> 71 7 3 0 q7_3
#> 72 7 3 2 q7_3
#>