## Simulate data from a chain of 3 variables: x1 -> x2 -> x3
set.seed(123)
b0 <- 0
b1 <- 1
b2 <- 1
n <- 10000
x1 <- sample(c(0,1),n,replace=TRUE)
## NB: plogis(u) := "expit(u)" := exp(u) / (1 + exp(u))
p2 <- plogis(b0 + b1*x1)
x2 <- numeric(length(x1))
for (i in 1:n) {
x2[i] <- sample(c(0,1),1,prob=c(1-p2[i],p2[i]))
}
p3 <- plogis(b0 + b2*x2)
x3 <- numeric(length(x2))
for (i in 1:n) {
x3[i] <- sample(c(0,1),1,prob=c(1-p3[i],p3[i]))
}
xtabs(~ x1+x2+x3)
dat <- cbind(x1,x2,x3)
## Test marginal and conditional independencies
gSquareBin(3,1,NULL,dat, verbose=TRUE)
gSquareBin(3,1, 2, dat)
gSquareBin(1,3, 2, dat) # the same
gSquareBin(1,3, 2, dat, adaptDF=TRUE)
stopifnot(all.equal(gSquareBin(3,1, 2, dat),
gSquareBin(1,3, 2, dat)),
all.equal(gSquareBin(3,1, 2, dat, adaptDF=TRUE),
gSquareBin(1,3, 2, dat, adaptDF=TRUE))
)
Run the code above in your browser using DataLab