getSuff {micd}R Documentation

Obtain 'suffStat' for conditional independence testing

Description

A convenience function for transforming a multiply imputed data set into the 'suffStat' required by pcalg::gaussCItest(), pcalg::disCItest(), mixCItest(), flexCItest(), gaussMItest(), disMItest(), mixMItest() and flexMItest().

Usage

getSuff(
  X,
  test = c("gaussCItest", "gaussMItest", "disCItest", "disMItest", "disCItwd",
    "mixCItest", "mixMItest", "flexMItest", "flexCItest"),
  adaptDF = NULL,
  nlev = NULL
)

Arguments

X

For 'test=xxxCItest': a data.frame or matrix; for 'test=xxxMItest': an object of class mice::mids, or a list of data.frames containing the multiply imputed data sets.

test

one of gaussCItest(), gaussMItest(), disCItest(), disMItest(), mixCItest(), mixMItest(), flexCItest(), flexMItest().

adaptDF

for discrete variables: logical specifying if the degrees of freedom should be lowered by one for each zero count. The value for the degrees of freedom cannot go below 1.

nlev

(Optional) for discrete variables: vector with numbers of levels for each variable in the data.

Value

An R object that can be used as input to the specified conditional independence test:

Examples


# Example 1: continuous variables, no missing values =====================
data(windspeed)
dat1 <- as.matrix(windspeed)

## analyse data
gaussCItest(1, 2, NULL, suffStat = getSuff(windspeed, test = "gaussCItest"))
mixCItest(1, 2, NULL, suffStat = windspeed)

## Example 2: continuous variables, multiple imputation ===================
dat2 <- mice::ampute(windspeed)$amp

## delete some observations
set.seed(123)

## Impute missing values under normal model
imp2 <- mice(dat2, method = "norm", printFlag = FALSE)

## analyse imputed data
gaussMItest(1, 2, c(4,5), suffStat = getSuff(imp2, test="gaussMItest"))
mixMItest(1, 2, c(4,5), suffStat = getSuff(imp2, test="mixMItest"))
mixMItest(1, 2, c(4,5), suffStat = mice::complete(imp2, action="all"))
flexMItest(1, 2, c(4,5), suffStat = getSuff(imp2, test="flexMItest"))

## Example 3: discrete variables, multiple imputation =====================
## simulate factor variables
n <- 200
set.seed(789)
x <- factor(sample(0:2, n, TRUE)) # factor, 3 levels
y <- factor(sample(0:3, n, TRUE)) # factor, 4 levels
z <- factor(sample(0:1, n, TRUE)) # factor, 2 levels
dat3 <- data.frame(x,y,z)

## delete some observations of z
dat3[sample(1:n, 40), 3] <- NA

## impute missing values under saturated model
form <- make.formulas.saturated(dat3)
imp3 <- mice::mice(dat3, method = "logreg", formulas = form, printFlag = FALSE)

## analyse imputed data
disMItest(1, 3, 2, suffStat = getSuff(imp3, test="disMItest"))
disMItest(1, 3, 2, suffStat = mice::complete(imp3, action = "all"))
mixMItest(1, 3, 2, suffStat = getSuff(imp3, test="mixMItest"))
mixMItest(1, 3, 2, suffStat = mice::complete(imp3, action = "all"))
flexMItest(1, 3, 2, suffStat = getSuff(imp3, test="flexMItest"))

# Example 4: mixed variables, multiple imputation =========================
dat4 <- toenail2[1:400, ]
set.seed(123)
dat4[sample(400, 20), 2] <- NA
dat4[sample(400, 30), 4] <- NA

## impute missing values using random forests
imp4 <- mice(dat4, method="rf", m = 3, printFlag = FALSE)
mixMItest(2, 3, 5, suffStat = getSuff(imp4, test="mixMItest"))
mixMItest(2, 3, 5, suffStat = mice::complete(imp4, action="all"))
flexMItest(2, 3, 5, suffStat = getSuff(imp4, test="flexMItest"))


[Package micd version 1.1.1 Index]