Proper Scoring Rules for Missing Value Imputation

Provides tools for evaluating and ranking missing value imputation methods using proper scoring rules. Implements the Energy-I-Score and the DR-I-Score for the assessment of deterministic, stochastic and multiple imputation methods for numerical and mixed datasets, following Näf et al. (2022) and Näf et al. (2025) .


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:

  • numerical datasets,
  • mixed numerical and categorical data,
  • deterministic imputations,
  • stochastic and multiple imputations,
  • comparison of several imputation methods.

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:

  • accept a dataset with missing values,
  • return a completed dataset with the same dimensions.

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.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("Iscores")

1.2.0 by Krystyna Grzesiak, 4 months ago


https://krystynagrzesiak.github.io/Iscores/


Browse source code at https://github.com/cran/Iscores


Authors: Krystyna Grzesiak [aut, cre] (ORCID: , Loris Michel [aut, ctb] , Meta-Lina Spohn [aut, ctb] , Jeffrey Näf [aut, ctb]


Documentation:   PDF Manual  


GPL-3 license


Imports energy, kernlab, pbapply, pbmcapply, ranger, scoringRules, stats

Suggests knitr, mice, rmarkdown, spelling, testthat


See at CRAN