Perform single or multiple imputation with ARFs. Calls adversarial_rf,
forde and expct/forge.
Usage
impute(
x,
m = 1,
expectation = ifelse(m == 1, TRUE, FALSE),
num_trees = 100L,
min_node_size = 10L,
round = TRUE,
finite_bounds = "local",
epsilon = 1e-14,
verbose = FALSE,
...
)Arguments
- x
Input data.
- m
Number of imputed datasets to generate. The default is single imputation (
m = 1).- expectation
Return expected value instead of multiple imputations. By default, for single imputation (
m = 1), the expected value is returned.- num_trees
Number of trees to grow in the ARF.
- min_node_size
Minimal number of real data samples in leaf nodes.
- round
Round continuous variables to their respective maximum precision in the real data set?
- finite_bounds
Impose finite bounds on all continuous variables? See
forde.- epsilon
Slack parameter on empirical bounds; see
forde.- verbose
Print progress for
adversarial_rf?- ...
Extra parameters to be passed to
adversarial_rf,fordeandexpct/forge.
Examples
# Generate some missings
iris_na <- iris
for (j in 1:ncol(iris)) {
iris_na[sample(1:nrow(iris), 5), j] <- NA
}
# Single imputation
iris_imputed <- arf::impute(iris_na, num_trees = 10, m = 1)
# Multiple imputation
iris_imputed <- arf::impute(iris_na, num_trees = 10, m = 10)
if (FALSE) { # \dontrun{
# Parallelization with doParallel
doParallel::registerDoParallel(cores = 4)
# ... or with doFuture
doFuture::registerDoFuture()
future::plan("multisession", workers = 4)
} # }
