Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(causaloptim)
## ----Multiple_Instruments_Image, echo = FALSE, fig.align = "center", out.width = "40%", fig.cap = "Benchmark Example. Multiple Instruments."----
knitr::include_graphics("TwoIVs.png")
## ----Multiple_Instruments_Code, eval = TRUE-----------------------------------
library(causaloptim)
library(igraph)
b <- graph_from_literal(Z1 -+ X, Z2 -+ X, Z2 -+ Z1, Ul -+ Z1, Ul -+ Z2, X -+ Y, Ur -+ X, Ur -+ Y)
V(b)$leftside <- c(1, 0, 1, 1, 0, 0)
V(b)$latent <- c(0, 0, 0, 1, 0, 1)
V(b)$nvals <- c(2, 2, 2, 2, 2, 2)
E(b)$rlconnect <- c(0, 0, 0, 0, 0, 0, 0, 0)
E(b)$edge.monotone <- c(0, 0, 0, 0, 0, 0, 0, 0)
obj <- analyze_graph(b, constraints = NULL, effectt = "p{Y(X = 1) = 1} - p{Y(X = 0) = 1}")
## ----Running_Time_Pre, eval = FALSE-------------------------------------------
# system.time(oldbnds <- optimize_effect(obj))
# #> user system elapsed
# #> 31093.57 47.02 61368.22
## ----Running_Time_Post, eval = FALSE------------------------------------------
# system.time(newbnds <- optimize_effect_2(obj))
# #> user system elapsed
# #> 0.139 0.001 0.140
## ----include = FALSE----------------------------------------------------------
oldbnds <- readRDS("MIV-bounds-result.RData")
newbnds <- optimize_effect_2(obj)
## ----eval = TRUE--------------------------------------------------------------
eval_newbnds <- interpret_bounds(newbnds$bounds, obj$parameters)
eval_oldbnds <- interpret_bounds(oldbnds$bounds, obj$parameters)
## ----eval = TRUE--------------------------------------------------------------
sim.qs <- rbeta(length(obj$variables), .05, 1)
sim.qs <- sim.qs / sum(sim.qs)
names(sim.qs) <- obj$variables
inenv <- new.env()
for(j in 1:length(sim.qs)) {
assign(names(sim.qs)[j], sim.qs[j], inenv)
}
res <- lapply(as.list(obj$constraints[-1]), function(x){
x1 <- strsplit(x, " = ")[[1]]
x0 <- paste(x1[1], " = ", x1[2])
eval(parse(text = x0), envir = inenv)
})
params <- lapply(obj$parameters, function(x) get(x, envir = inenv))
names(params) <- obj$parameters
## ----eval = TRUE--------------------------------------------------------------
do.call(eval_newbnds, params)
do.call(eval_oldbnds, params)
## ----User_Input_DAG_D, echo = FALSE, fig.align = "center", out.width = "40%", fig.cap = "Original Example: User Input DAG $D$."----
knitr::include_graphics("User_Input_DAG.png")
## ----Causal_Graph_G, echo = FALSE, fig.align = "center", out.width = "40%", fig.cap = "Original Example: Causal Graph $G$."----
knitr::include_graphics("Causal_Graph.png")
## ----Response_Function_Variables, echo = FALSE, fig.align = "center", out.width = "30%", fig.cap = "Original Example: Response Function Variables."----
knitr::include_graphics("Canonical_Partitions.png")
## ----Dual_from_Primal, eval = FALSE-------------------------------------------
# a1 <- rbind(cbind(t(A_l), t(A_e)),
# cbind(diag(x = 1, nrow = m_l, ncol = m_l), matrix(data = 0, nrow = m_l, ncol = m_e)))
# b1 <- rbind(c0,
# matrix(data = 0, nrow = m_l, ncol = 1))
# if (opt == "max") {
# a1 <- -a1
# b1 <- -b1
# }
## ----Vertex_Enumeration, eval = FALSE-----------------------------------------
# library(rcdd)
# hrep <- makeH(a1 = a1, b1 = b1)
# vrep <- scdd(input = hrep)
# matrix_of_vrep <- vrep$output
# indices_of_vertices <- matrix_of_vrep[ , 1] == 0 & matrix_of_vrep[ , 2] == 1
# vertices <- matrix_of_vrep[indices_of_vertices, -c(1, 2), drop = FALSE]
## ----Potential_Optima, eval = FALSE-------------------------------------------
# expressions <- apply(vertices, 1, function(y) evaluate_objective(c1_num = c1_num, p = p, y = y))
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.