## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) if (!requireNamespace("dplyr", quietly = TRUE)) { install.packages("dplyr", repos = "https://cloud.r-project.org/") } if (!requireNamespace("tidyr", quietly = TRUE)) { install.packages("tidyr", repos = "https://cloud.r-project.org/") } ## ----------------------------------------------------------------------------- library(bpbounds) library(dplyr) library(tidyr) ## ----------------------------------------------------------------------------- tab1dat <- data.frame( z = c(0, 0, 1, 1, 1, 1, 0, 0), x = c(0, 0, 0, 0, 1, 1, 1, 1), y = c(0, 1, 0, 1, 0, 1, 0, 1), freq = c(74, 11514, 34, 2385, 12, 9663, 0, 0) ) tab1inddat <- uncount(tab1dat, freq) xt <- xtabs(~ x + y + z, data = tab1inddat) xt ## ----------------------------------------------------------------------------- p <- prop.table(xt, margin = 3) p ## ----------------------------------------------------------------------------- bpres <- bpbounds(p) sbp <- summary(bpres) print(sbp) ## ----------------------------------------------------------------------------- covyz <- cov(tab1inddat$y, tab1inddat$z) covxz <- cov(tab1inddat$x, tab1inddat$z) ace <- covyz / covxz ace ## ----------------------------------------------------------------------------- condprob <- c(.0064, 0, .9936, 0, .0028, .001, .1972, .799) tabp <- array(condprob, dim = c(2, 2, 2), dimnames = list( x = c(0, 1), y = c(0, 1), z = c(0, 1) )) %>% as.table() bpbounds(tabp) ## ----------------------------------------------------------------------------- gtab <- xtabs( ~ y + z, data = tab1inddat) gp <- prop.table(gtab, margin = 2) gp ttab <- xtabs( ~ x + z, data = tab1inddat) tp <- prop.table(ttab, margin = 2) tp bpres2 <- bpbounds(p = gp, t = tp, fmt = "bivariate") sbp2 <- summary(bpres2) print(sbp2) ## ----------------------------------------------------------------------------- mt3 <- c(.83, .05, .11, .01, .88, .06, .05, .01, .72, .05, .20, .03) p3 = array(mt3, dim = c(2, 2, 3), dimnames = list( x = c(0, 1), y = c(0, 1), z = c(0, 1, 2) )) p3 <- as.table(p3) bpres3 <- bpbounds(p3) sbp3 <- summary(bpres3) print(sbp3) ## ----------------------------------------------------------------------------- set.seed(2232011) n <- 10000 z <- rbinom(n, 1, .5) u <- rbinom(n, 1, .5) px <- .05 + .1 * z + .1 * u x <- rbinom(n, 1, px) p1 <- .1 + .2 * z + .05 * x + .1 * u y1 <- rbinom(n, 1, p1) p2 <- .1 + .05 * z + .05 * x + .1 * u y2 <- rbinom(n, 1, p2) tab1 <- xtabs(~ x + y1 + z) p1 <- prop.table(tab1, margin = 3) bpres1 <- bpbounds(p1) sbp1 <- summary(bpres1) print(sbp1) ## ----------------------------------------------------------------------------- tab2 <- xtabs(~ x + y2 + z) p2 <- prop.table(tab2, margin = 3) bpres2 <- bpbounds(p2) sbp2 <- summary(bpres2) print(sbp2)