Skip to contents

The helper make.modeltype() creates a vector that identifies per block if the imputation model is taken from predictorMatrix or formulas. The function is used internally by mice().

Usage

make.modeltype(modeltype, predictorMatrix, formulas, priority = "pred")

Arguments

modeltype

A character vector of length equal to the number of blocks in predictorMatrix. Each element specifies how the imputation model for the corresponding block is defined. Valid values are "pred" and "formula". If NULL, the modeltype will be "pred" for all blocks, unless priority is "formula".

predictorMatrix

A matrix specifying the predictors for each block. Each row corresponds to a block, and each column corresponds to a variable. Non-zero entries indicate that the variable is used as a predictor for the block.

formulas

A list of formulas, where each element corresponds to a block in predictorMatrix. If a formula is provided for a block, the corresponding modeltype entry is set to "formula". If NULL, formulas are not used to modify modeltype.

priority

A character string specifying the default value for modeltype when it is NULL. Defaults to "pred". If priority == "formula", the modeltype will be "formula" for blocks found in formulas with a matching name.

Value

A character vector of length equal to the number of rows in predictorMatrix. Each element is either "pred" or "formula", indicating how the imputation model is specified for the corresponding block.

Examples

# Example predictorMatrix
predictorMatrix <- matrix(1, nrow = 3, ncol = 3,
 dimnames = list(c("block1", "block2", "block3"), c("x1", "x2", "y")))
predictorMatrix[1, 3] <- 0

# Case 1: No modeltype or formulas specified
make.modeltype(NULL, predictorMatrix, NULL)
#> block1 block2 block3 
#> "pred" "pred" "pred" 

# Case 2: Formulas provided
formulas <- list(
  NULL,
  y ~ x1 + x2,
  NULL
)
make.modeltype(NULL, predictorMatrix, formulas)
#> block1 block2 block3 
#> "pred" "pred" "pred" 

# Case 3: Custom modeltype
modeltype <- c("pred", "formula", "pred")
make.modeltype(modeltype, predictorMatrix, NULL)
#>    block1    block2    block3 
#>    "pred" "formula"    "pred"