Iscores provides scoring rules for evaluating and
comparing imputation methods.
The package implements the methodology introduced in Näf et al. (2022) and Näf, Grzesiak, and Scornet (2025). The package supports:
For more details about the energy-I-Score check our vignettes:
install.packages("Iscores")install.packages("devtools")
devtools::install_github("missValTeam/Iscores")The package evaluates user-defined imputation methods.
An imputation function must:
Below we define a simple zero-imputation method.
library(Iscores)
impute_zero <- function(X) {
X[is.na(X)] <- 0
X
}We now generate example data with missing values.
set.seed(10)
X <- Iscores:::random_mcar_data(100, 4)
head(X)The energy_IScore() function evaluates the quality of an
imputation method.
sc <- energy_IScore(
X = X,
imputation_func = impute_zero,
N = 10,
silent = TRUE
)
scDetailed variable-level results are stored as an attribute:
attr(sc, "dat")The package also provides the density-ratio based DR-I-Score.
sc_dr <- DR_IScore(
X = X,
imputation_func = impute_zero,
m = 3,
n_proj = 10,
n_trees_per_proj = 2,
n_cores = 1
)
sc_drSeveral methods can be compared simultaneously using
compare_Iscores().
library(mice)
impute_mice_norm <- function(X) {
imp <- mice(
X,
m = 1,
method = "norm",
maxit = 5,
printFlag = FALSE
)
complete(imp)
}
impute_mice_rf <- function(X) {
imp <- mice(
X,
m = 1,
method = "rf",
maxit = 5,
printFlag = FALSE
)
complete(imp)
}
methods_list <- list(
zero = impute_zero,
norm = impute_mice_norm,
rf = impute_mice_rf
)
compare_Iscores(
X = X,
methods_list = methods_list,
score = c("energy_IScore", "DR_IScore"),
N = 10,
m = 3,
silent = TRUE
)See the vignette for a complete introduction:
vignette("Example_IScore")Näf, Jeffrey, Krystyna Grzesiak, and Erwan Scornet. 2025. “How to Rank Imputation Methods?” https://arxiv.org/abs/2507.11297.
Näf, Jeffrey, Meta-Lina Spohn, Loris Michel, and Nicolai Meinshausen. 2022. “Imputation Scores.” https://arxiv.org/abs/2106.03742.