Calculates score for one imputation function
Usage
Iscore(
X,
X_imp,
multiple = TRUE,
N = 50,
imputation_func,
max_length = NULL,
skip_if_needed = TRUE,
scale = FALSE
)Arguments
- X
data containing missing values denoted with NA's
- X_imp
imputed dataset.
- multiple
a logical indicating whether provided imputation method is a multiple imputation approach (i.e. it generates different values to impute for each call). Default to TRUE. Note that if multiple equals to FALSE, N is automatically set to 1.
- N
a numeric value. Number of samples from imputation distribution H. Default to 50.
- imputation_func
a function that imputes data
- max_length
Maximum number of variables \(X_j\) to consider, can speed up the code. Default to
NULLmeaning that all the columns will be taken under consideration.- skip_if_needed
logical, indicating whether some observations should be skipped to obtain complete columns for scoring. If FALSE, NA will be returned for column with no observed variable for training.
- scale
logica. If TRUE, each variable is scaled in the score.
Value
a numerical value denoting weighted Imputation Score obtained for provided imputation function and a table with scores and weights calculated for particular columns.
Examples
set.seed(111)
X <- matrix(rnorm(1000), nrow = 100)
X[runif(1000) < 0.4] <- NA
imputation_func <- miceDRF:::create_mice_imputation("pmm")
X_imp <- imputation_func(X)
miceDRF::Iscore(X, X_imp, N = 50, imputation_func = imputation_func)
#> No complete variables for training column 1. Skipping some observations.
#> No complete variables for training column 3. Skipping some observations.
#> No complete variables for training column 8. Skipping some observations.
#> No complete variables for training column 10. Skipping some observations.
#> No complete variables for training column 5. Skipping some observations.
#> No complete variables for training column 6. Skipping some observations.
#> No complete variables for training column 7. Skipping some observations.
#> No complete variables for training column 4. Skipping some observations.
#> No complete variables for training column 9. Skipping some observations.
#> No complete variables for training column 2. Skipping some observations.
#> [1] 0.5583584
#> attr(,"dat")
#> column_id weight score n_columns_used
#> V1 1 0.2499 0.5616408 1
#> V3 3 0.2491 0.4377913 1
#> V8 8 0.2475 0.5055475 1
#> V10 10 0.2475 0.5922144 1
#> V5 5 0.2464 0.6850586 1
#> V6 6 0.2436 0.5006411 1
#> V7 7 0.2379 0.6925815 1
#> V4 4 0.2331 0.5294290 1
#> V9 9 0.2331 0.5369845 1
#> V2 2 0.2244 0.5429367 1
imputation_func <- miceDRF:::create_mice_imputation("mean")
X_imp <- imputation_func(X)
miceDRF::Iscore(X, X_imp, N = 50, imputation_func = imputation_func)
#> No complete variables for training column 1. Skipping some observations.
#> No complete variables for training column 3. Skipping some observations.
#> No complete variables for training column 8. Skipping some observations.
#> No complete variables for training column 10. Skipping some observations.
#> No complete variables for training column 5. Skipping some observations.
#> No complete variables for training column 6. Skipping some observations.
#> No complete variables for training column 7. Skipping some observations.
#> No complete variables for training column 4. Skipping some observations.
#> No complete variables for training column 9. Skipping some observations.
#> No complete variables for training column 2. Skipping some observations.
#> [1] 0.7652515
#> attr(,"dat")
#> column_id weight score n_columns_used
#> V1 1 0.2499 0.7787504 1
#> V3 3 0.2491 0.6142445 1
#> V8 8 0.2475 0.7015580 1
#> V10 10 0.2475 0.7621273 1
#> V5 5 0.2464 0.9875052 1
#> V6 6 0.2436 0.6425266 1
#> V7 7 0.2379 0.9592499 1
#> V4 4 0.2331 0.7665391 1
#> V9 9 0.2331 0.7250410 1
#> V2 2 0.2244 0.7154879 1
miceDRF::Iscore(X, X_imp, N = 50, imputation_func = imputation_func, multiple = FALSE)
#> No complete variables for training column 1. Skipping some observations.
#> No complete variables for training column 3. Skipping some observations.
#> No complete variables for training column 8. Skipping some observations.
#> No complete variables for training column 10. Skipping some observations.
#> No complete variables for training column 5. Skipping some observations.
#> No complete variables for training column 6. Skipping some observations.
#> No complete variables for training column 7. Skipping some observations.
#> No complete variables for training column 4. Skipping some observations.
#> No complete variables for training column 9. Skipping some observations.
#> No complete variables for training column 2. Skipping some observations.
#> [1] 0.7652515
#> attr(,"dat")
#> column_id weight score n_columns_used
#> V1 1 0.2499 0.7787504 1
#> V3 3 0.2491 0.6142445 1
#> V8 8 0.2475 0.7015580 1
#> V10 10 0.2475 0.7621273 1
#> V5 5 0.2464 0.9875052 1
#> V6 6 0.2436 0.6425266 1
#> V7 7 0.2379 0.9592499 1
#> V4 4 0.2331 0.7665391 1
#> V9 9 0.2331 0.7250410 1
#> V2 2 0.2244 0.7154879 1
# zero imputation
X <- matrix(rnorm(1000), nrow = 100)
X[c(runif(1000) < 0.3)] <- NA
imputation_func <- function(X) {X[is.na(X)] <- 0; X}
X_imp <- imputation_func(X)
Iscore(X, X_imp, N = 50, imputation_func = imputation_func, multiple = FALSE)
#> No complete variables for training column 5. Skipping some observations.
#> No complete variables for training column 7. Skipping some observations.
#> No complete variables for training column 2. Skipping some observations.
#> No complete variables for training column 4. Skipping some observations.
#> No complete variables for training column 8. Skipping some observations.
#> No complete variables for training column 6. Skipping some observations.
#> No complete variables for training column 1. Skipping some observations.
#> No complete variables for training column 10. Skipping some observations.
#> No complete variables for training column 3. Skipping some observations.
#> No complete variables for training column 9. Skipping some observations.
#> [1] 0.8265311
#> attr(,"dat")
#> column_id weight score n_columns_used
#> V5 5 0.2400 0.7023632 1
#> V7 7 0.2275 0.8767438 1
#> V2 2 0.2211 0.8043624 1
#> V4 4 0.2100 0.9224779 1
#> V8 8 0.2100 0.8895373 1
#> V6 6 0.2059 0.7644872 1
#> V1 1 0.1971 0.7896345 1
#> V10 10 0.1971 0.8515953 1
#> V3 3 0.1924 0.8454487 1
#> V9 9 0.1659 0.8347622 1