## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "figures/getting-started-" ) set.seed(1) ## ----------------------------------------------------------------------------- library(ivcheck) set.seed(1) n <- 500 z <- sample(0:1, n, replace = TRUE) d <- rbinom(n, 1, 0.3 + 0.4 * z) y <- rnorm(n, mean = d) result <- iv_kitagawa(y, d, z, n_boot = 500, parallel = FALSE) print(result) ## ----------------------------------------------------------------------------- str(result, max.level = 1) ## ----------------------------------------------------------------------------- quantile(result$boot_stats, c(0.9, 0.95, 0.99)) ## ----------------------------------------------------------------------------- set.seed(2) n <- 1500 z <- sample(0:1, n, replace = TRUE) d <- rbinom(n, 1, 0.3 + 0.4 * z) # Direct Z effect on Y for treated units only: clean exclusion violation y <- rnorm(n, mean = d + 2 * d * z) result_v <- iv_kitagawa(y, d, z, n_boot = 500, parallel = FALSE) print(result_v) ## ----------------------------------------------------------------------------- result_v$binding ## ----------------------------------------------------------------------------- set.seed(3) n <- 800 x <- rnorm(n) z <- rbinom(n, 1, plogis(x)) d <- rbinom(n, 1, plogis(-0.5 + 0.8 * z + 0.5 * x)) y <- rnorm(n, mean = d + 0.3 * x) result_mw <- iv_mw(y, d, z, x = x, n_bins = 4, n_boot = 300, parallel = FALSE) print(result_mw) ## ----------------------------------------------------------------------------- set.seed(1) n <- 600 z <- sample(0:1, n, replace = TRUE) d <- rbinom(n, 1, 0.3 + 0.4 * z) y <- rnorm(n, mean = d) check <- structure(list( table = data.frame( test = c("Kitagawa (2015)", "Mourifie-Wan (2017)"), statistic = c(0.3, 0.35), p_value = c(0.82, 0.78), verdict = c("pass", "pass") ), alpha = 0.05, overall = "cannot reject IV validity at 0.05." ), class = "iv_check") print(check)