The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Iscores

CRAN status Lifecycle: experimental R-CMD-check

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:


Installation

CRAN

install.packages("Iscores")

Development version

install.packages("devtools")

devtools::install_github("missValTeam/Iscores")

Basic workflow

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)

Energy-I-Score

The energy_IScore() function evaluates the quality of an imputation method.

sc <- energy_IScore(
  X = X,
  imputation_func = impute_zero,
  N = 10,
  silent = TRUE
)

sc

Detailed variable-level results are stored as an attribute:

attr(sc, "dat")

DR-I-Score

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_dr

Comparing imputation methods

Several 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
)

Documentation

See the vignette for a complete introduction:

vignette("Example_IScore")

References

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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.