# ----------------------------------------------------------------------------------------
# Compare test results for not imputed data
# ----------------------------------------------------------------------------------------
library(micd)
dat <- data.frame(x = rnorm(200),
A = factor(rbinom(200, 1, 0.4)),
y = rnorm(200),
B = factor(rbinom(200, 2, c(0.1,0.4))),
z = rnorm(200),
C = factor(rbinom(200, 2, c(0.2,0.3))),
Z = rnorm(200),
D = factor(rbinom(200, 1, 0.5)))
# 2 variables ----------------------------------------------------------------------------
# 2 continuous ----------------
x <- 3
y <- 5
S <- NULL
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::gaussCItest(1, 2, NULL, suffStat = getSuff(dat[,c(x, y, S)], test = "gaussCItest"))
(eq1 <- all.equal(res1, res2, res3, tol = 1e-5))
test1 <- isTRUE(eq1)
rm(res1, res2, res3, x, y, S)
# 2 discrete ------------------
x <- 2; nlev_x <- nlevels(dat[,x])
y <- 4; nlev_y <- nlevels(dat[,y])
S <- NULL
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::disCItest(1,2,NULL,
suffStat = getSuff(dat[,c(x,y,S)], test = "disCItest",
adaptDF = TRUE, nlev = c(nlev_x, nlev_y)))
(eq2 <- all.equal(res1, res2, res3, tol = 1e-5))
test2 <- isTRUE(eq2)
rm(res1, res2, res3, x, y, S, nlev_x, nlev_y)
# 1 discrete, 1 continuous ----
x <- 3;
y <- 6; nlev_y <- nlevels(dat[,y])
S <- NULL
res1 <- flexCItest(x, y, NULL, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, NULL, suffStat = dat)
(eq3 <- all.equal(res1, res2, tol = 1e-5))
test3 <- isTRUE(eq3)
rm(res1, res2, x, y, S, nlev_y)
# 3 variables ----------------------------------------------------------------------------
# 3 continuous ----------------
x <- 3
y <- 5
S <- 1
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::gaussCItest(1, 2, NULL, suffStat = getSuff(dat[,c(x, y, S)], test = "gaussCItest"))
(eq4 <- all.equal(res1, res2, res3, tol = 1e-5))
test4 <- isTRUE(eq4)
rm(res1, res2, res3, x, y, S)
# 3 discrete ------------------
x <- 2; nlev_x <- nlevels(dat[,x])
y <- 4; nlev_y <- nlevels(dat[,y])
S <- 6; nlev_S <- nlevels(dat[,S])
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::disCItest(1,2,3,
suffStat = getSuff(dat[,c(x,y,S)], test = "disCItest",
adaptDF = TRUE, nlev = c(nlev_x, nlev_y, nlev_S)))
(eq5 <- all.equal(res1, res2, res3, tol = 1e-5))
test5 <- isTRUE(eq5)
rm(res1, res2, res3, x, y, S, nlev_x, nlev_y, nlev_S)
# 1 discrete, 2 continuous ----
x <- 1
y <- 3
S <- 2; nlev_S <- nlevels(dat[,S])
res1 <- flexCItest(x, y, NULL, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, NULL, suffStat = dat)
(eq6 <- all.equal(res1, res2, tol = 1e-5))
test6 <- isTRUE(eq6)
rm(res1, res2, x, y, S, nlev_S)
# more variables -------------------------------------------------------------------------
# 4 continuous ----------------
x <- 3
y <- 5
S <- c(1,7)
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::gaussCItest(1, 2, NULL, suffStat = getSuff(dat[,c(x, y, S)], test = "gaussCItest"))
(eq7 <- all.equal(res1, res2, res3, tol = 1e-5))
test7 <- isTRUE(eq7)
rm(res1, res2, res3, x, y, S)
# 4 discrete ------------------
x <- 2; nlev_x <- nlevels(dat[,x])
y <- 4; nlev_y <- nlevels(dat[,y])
S <- c(6,8); nlev_S <- c(nlevels(dat[,S[1]]), nlevels(dat[,S[2]]))
res1 <- flexCItest(x, y, S, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, S, suffStat = dat)
res3 <- pcalg::disCItest(1, 2, c(3,4),
suffStat = getSuff(dat[,c(x,y,S)], test = "disCItest",
adaptDF = TRUE, nlev = c(nlev_x, nlev_y, nlev_S)))
(eq8 <- all.equal(res1, res2, res3, tol = 1e-5))
test8 <- isTRUE(eq8)
rm(res1, res2, res3, x, y, S, nlev_x, nlev_y, nlev_S)
# 2 discrete, 2 continuous ----
x <- 1
y <- 3
S <- c(7,8); nlev_S <- nlevels(dat[,8])
res1 <- flexCItest(x, y, NULL, suffStat = getSuff(dat, test="flexCItest"))
res2 <- mixCItest(x, y, NULL, suffStat = dat)
(eq9 <- all.equal(res1, res2, tol = 1e-5))
test9 <- isTRUE(eq9)
rm(res1, res2, x, y, S, nlev_S)
# Result --------------------------------------------------------------------------------
if (!all(test1,test2,test3,test4,test5,test6,test7,test8,test9))
stop("CI tests wrong!")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.