mixCItest {micd} | R Documentation |
Likelihood Ratio Test for (Conditional) Independence between Mixed Variables
Description
A likelihood ratio test for (conditional) independence between mixed
(continuous and unordered categorical) variables, to be used within
pcalg::skeleton
, pcalg::pc
or
pcalg::fci
. It assumes that the variables in the test
follow a Conditional Gaussian distribution, i.e. conditional on each
combination of values of the discrete variables, the continuous variables
are multivariate Gaussian. Each multivariate Gaussian distribution is
allowed to have its own mean vector and covariance matrix.
Usage
mixCItest(x, y, S = NULL, suffStat, moreOutput = FALSE)
Arguments
x , y , S |
(Integer) position of variable X, Y and set of variables S,
respectively, in |
suffStat |
A |
moreOutput |
If |
Details
The implementation follows Andrews et al. (2018). The same test is also implemented in TETRAD and in the R-package rcausal, a wrapper for the TETRAD Java library. Small differences in the p-values returned by CGtest and the TETRAD/rcausal equivalent are due to differences in handling sparse or empty cells.
Value
A p-value. If moreOutput=TRUE
, the test statistic and the
degrees of freedom are returned as well.
Author(s)
Janine Witte
References
Andrews B., Ramsey J., Cooper G.F. (2018): Scoring Bayesian networks of mixed variables. International Journal of Data Science and Analytics 6:3-18.
Lauritzen S.L., Wermuth N. (1989): Graphical models for associations between variables, some of which are qualitative and some quantitative. The Annals of Statistics 17(1):31-57.
Scheines R., Spirtes P., Glymour C., Meek C., Richardson T. (1998): The TETRAD project: Constraint based aids to causal model specification. Multivariate Behavioral Research 33(1):65-117. http://www.phil.cmu.edu/tetrad/index.html
Examples
# load data (numeric and factor variables)
dat <- toenail2[,-1]
# analyse data
mixCItest(4, 1, NULL, suffStat = dat)
mixCItest(1, 2, 3, suffStat = dat)
## use mixCItest within pcalg::fci
fci.fit <- fci(suffStat = dat, indepTest = mixCItest, alpha = 0.01, p = 4)
if (requireNamespace("Rgraphviz", quietly = TRUE))
plot(fci.fit)