From 957852074019cadab957a8846a049a607a455c57 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 24 Aug 2023 10:47:27 +0200 Subject: [PATCH 01/56] Bugfix in `prepare_data()` related to vector of approaches. When using several approaches the old version only used the first approach. Verified this by adding a print in each prepare_data.approach() function and saw that only the first approach in internal$parameters$approach was used. Can maybe remove code comments before pull request is accepted. Maybe a better method to get the approach? Also updated roxygen2 for the function, as it seemed that it was reflecting the old version of shapr(?) due to arguments which are no longer present. However, one then get a warning when creating the roxygen2 documentation. Discuss some solutions as comments below. Discuss with Martin. --- R/approach.R | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/R/approach.R b/R/approach.R index f90e37841..c0fa2782d 100644 --- a/R/approach.R +++ b/R/approach.R @@ -2,6 +2,9 @@ #' #' The different choices of `approach` takes different (optional) parameters, which are forwarded from [explain()]. #' +#' @param internal List. Holds all parameters, data, functions and computed objects used within [explain()]. +#' The list contains one or more of the elements `parameters`, `data`, `objects`, `output`. +#' #' @param ... `approach`-specific arguments. See below. #' #' @inheritParams default_doc_explain @@ -36,24 +39,52 @@ setup_approach.combined <- function(internal, ...) { return(internal) } -#' Generate data used for predictions +#' Generate data used for predictions and Monte Carlo integration +#' +#' @note +#' There is currently a warning when calling `roxygen2::roxygenise()`. +#' Warning message: +#' inheritParams failed in topic "prepare_data", "prepare_data.categorical", "prepare_data.copula", "prepare_data.ctree", "prepare_data.empirical", "prepare_data.gaussian", "prepare_data.independence", "prepare_data.timeseries", and "prepare_data.vaeac". +#' ✖ All parameters are already documented; none remain to be inherited. #' -#' @param x Explainer object. See [explain()] for more information. +#' This occurred after Lars updated the code as he now documents all parameters here. This was not the case before, as the roxygen had not been updated. +#' Can solve this by removing, e.g., `param ... Currently not used.` below, or remove rdname from the subfunctions and rather use intherateparams. #' -#' @param seed Positive integer. If `NULL` the seed will be inherited from the calling environment. #' +#' @param internal List. Holds all parameters, data, functions and computed objects used within \code{\link[=explain]{explain()}}. +#' The list contains one or more of the elements `parameters`, `data`, `objects`, `output`. #' @param index_features Positive integer vector. Specifies the indices of combinations to apply to the present method. #' `NULL` means all combinations. Only used internally. #' #' @param ... Currently not used. #' -#' @return A data.table containing simulated data passed to prediction(). +#' @return A data.table containing simulated data used to estimate the contribution function by Monte Carlo integration. #' #' @export #' @keywords internal -prepare_data <- function(internal, ...) { - this_class <- "" - class(this_class) <- internal$parameters$approach +prepare_data <- function(internal, index_features = NULL, ...) { + + # Extract the used approach(es) + approach = internal$parameters$approach + + # Auxiliary object such that we can use the `UseMethod` function + this_class = "" + + # Check if the user provided one or several approaches. + if (length(approach) > 1) { + # Figure out which approach we should use for the provided `index_features` (i.e., coalition indices). + # We can use that the function `create_S_batch_new()` in setup_computation.R, which creates + # the batches of coalitions, always ensures that the index_features (i.e., the coalitions) in + # each batch of them are using the same approach. Meaning that we can figure out which approach + # the first value in `index_features` is connected to, and then use that approach to generate + # the Monte Carlo samples data. + class(this_class) = internal$objects$X[id_combination == index_features[1], approach] + } else { + # Only one approach for all coalitions sizes + class(this_class) = approach + } + + # Use the `prepare_data` function for the correct approach UseMethod("prepare_data", this_class) } From 8da040d3c50571376a9fab92db582775b2c3694a Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 24 Aug 2023 12:10:00 +0200 Subject: [PATCH 02/56] # Lars have added `n_combinations` - 1 as a possibility, as the function `check_n_batches` threw an error for the vignette with gaussian approach with `n_combinations` = 8 and `n_batches = NULL`, as this function here then set `n_batches` = 10, which was too large. We subtract 1 as `check_n_batches` function specifies that `n_batches` must be strictly less than `n_combinations`. --- R/setup.R | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/R/setup.R b/R/setup.R index e1c12e48e..abaf65dad 100644 --- a/R/setup.R +++ b/R/setup.R @@ -693,15 +693,13 @@ get_default_n_batches <- function(approach, n_combinations) { suggestion <- ceiling(n_combinations / 10) this_min <- 10 this_max <- 1000 - min_checked <- max(c(this_min, suggestion)) - ret <- min(c(this_max, min_checked)) } else { suggestion <- ceiling(n_combinations / 100) this_min <- 2 this_max <- 100 - min_checked <- max(c(this_min, suggestion)) - ret <- min(c(this_max, min_checked)) } + min_checked <- max(c(this_min, suggestion)) + ret <- min(c(this_max, min_checked, n_combinations - 1)) message( paste0( "Setting parameter 'n_batches' to ", ret, " as a fair trade-off between memory consumption and ", From e9f6ae9fda4e221d314ffd381fc7b06c29f040b5 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 24 Aug 2023 12:14:26 +0200 Subject: [PATCH 03/56] Samll typo. --- R/setup.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/setup.R b/R/setup.R index abaf65dad..5e32df5ae 100644 --- a/R/setup.R +++ b/R/setup.R @@ -217,7 +217,7 @@ check_n_batches <- function(internal) { if (n_batches >= actual_n_combinations) { stop(paste0( - "`n_batches` (", n_batches, ") must be smaller than the number feature combinations/`n_combinations` (", + "`n_batches` (", n_batches, ") must be smaller than the number of feature combinations/`n_combinations` (", actual_n_combinations, ")" )) } From 741278062204595af4d7d4e5632053361b389d07 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 24 Aug 2023 12:44:42 +0200 Subject: [PATCH 04/56] Fixed bug. All messages says "n_combinations is larger than or equal to 2^m", but all the test only tested for "larger than". I.e., if the user specified n_combinations = 2^m in the call to shapr::explain, the function would not treat it as exact. --- R/setup_computation.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/setup_computation.R b/R/setup_computation.R index a4a3ed9ea..23418b50a 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -103,7 +103,7 @@ shapley_setup_forecast <- function(internal) { #### Updating parameters #### # Updating parameters$exact as done in feature_combinations - if (!exact && n_combinations > 2^n_features0) { + if (!exact && n_combinations >= 2^n_features0) { internal$parameters$exact <- TRUE # Note that this is exact only if all horizons use the exact method. } @@ -161,7 +161,7 @@ shapley_setup <- function(internal) { #### Updating parameters #### # Updating parameters$exact as done in feature_combinations - if (!exact && n_combinations > 2^n_features0) { + if (!exact && n_combinations >= 2^n_features0) { internal$parameters$exact <- TRUE } @@ -253,7 +253,7 @@ feature_combinations <- function(m, exact = TRUE, n_combinations = 200, weight_z if (!exact) { if (m_group == 0) { # Switch to exact for feature-wise method - if (n_combinations > 2^m) { + if (n_combinations >= 2^m) { n_combinations <- 2^m exact <- TRUE message( @@ -266,7 +266,7 @@ feature_combinations <- function(m, exact = TRUE, n_combinations = 200, weight_z } } else { # Switch to exact for feature-wise method - if (n_combinations > (2^m_group)) { + if (n_combinations >= (2^m_group)) { n_combinations <- 2^m_group exact <- TRUE message( From 22c8e17d75a3c1facc5a30fb6ac489dab3636713 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 31 Aug 2023 11:34:10 +0200 Subject: [PATCH 05/56] Added script demonstrating the bug that shapr does not enter the exact mode when `n_combinations = 2^m`, before the bugfix. --- .../testing_n_cobinations_equal_2_power_m.R | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 inst/scripts/devel/testing_n_cobinations_equal_2_power_m.R diff --git a/inst/scripts/devel/testing_n_cobinations_equal_2_power_m.R b/inst/scripts/devel/testing_n_cobinations_equal_2_power_m.R new file mode 100644 index 000000000..56e447dee --- /dev/null +++ b/inst/scripts/devel/testing_n_cobinations_equal_2_power_m.R @@ -0,0 +1,71 @@ +# In this code we demonstrate that (before the bugfix) the `explain()` function +# does not enter the exact mode when n_combinations is larger than or equal to 2^m. +# The mode is only changed if n_combinations is strictly larger than 2^m. +# This means that we end up with using all coalitions when n_combinations is 2^m, +# but use not the exact Shapley kernel weights. +# Bugfix replaces `>` with `=>`in the places where the code tests if +# n_combinations is larger than or equal to 2^m. Then the text/messages printed by +# shapr and the code correspond. + +library(xgboost) +library(data.table) + +data("airquality") +data <- data.table::as.data.table(airquality) +data <- data[complete.cases(data), ] + +x_var <- c("Solar.R", "Wind", "Temp", "Month") +y_var <- "Ozone" + +ind_x_explain <- 1:6 +x_train <- data[-ind_x_explain, ..x_var] +y_train <- data[-ind_x_explain, get(y_var)] +x_explain <- data[ind_x_explain, ..x_var] + +# Fitting a basic xgboost model to the training data +model <- xgboost::xgboost( + data = as.matrix(x_train), + label = y_train, + nround = 20, + verbose = FALSE +) + +# Specifying the phi_0, i.e. the expected prediction without any features +p0 <- mean(y_train) + +# Computing the conditional Shapley values using the gaussian approach +explanation_exact <- explain( + model = model, + x_explain = x_explain, + x_train = x_train, + n_samples = 2, # Low value for fast computations + n_batches = 1, # Not related to the bug + approach = "gaussian", + prediction_zero = p0, + n_combinations = NULL +) + +# Computing the conditional Shapley values using the gaussian approach +explanation_should_also_be_exact <- explain( + model = model, + x_explain = x_explain, + x_train = x_train, + n_samples = 2, # Low value for fast computations + n_batches = 1, # Not related to the bug + approach = "gaussian", + prediction_zero = p0, + n_combinations = 2^ncol(x_explain) +) + +# see that both `explain()` objects have the same number of combinations +explanation_exact$internal$parameters$n_combinations +explanation_should_also_be_exact$internal$parameters$n_combinations + +# But the first one of them is exact and the other not. +explanation_exact$internal$parameters$exact +explanation_should_also_be_exact$internal$parameters$exact + +# Can also see that the Shapley weights differ, as the first one uses +# the correct values, while the other one uses the sampling frequency. +explanation_exact$internal$objects$X$shapley_weight +explanation_should_also_be_exact$internal$objects$X$shapley_weight From a05b82f629dc24764db39ae8a32a8b0c2cf2e318 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 31 Aug 2023 11:36:15 +0200 Subject: [PATCH 06/56] Added (tentative) test that checks that shapr enters exact mode when `n_combinations >= 2^m`. Remove the large comment after discussing that with Martin. --- tests/testthat/test-setup.R | 100 ++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index e1de21f7d..e097e2546 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1345,6 +1345,105 @@ test_that("Error with too low `n_combinations`", { ) }) +test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights", { + # Check that the `explain()` function enters the exact mode when n_combinations + # is larger than or equal to 2^m. + + # Create three explainer object: one with exact mode, one with + # `n_combinations` = 2^m, and one with `n_combinations` > 2^m + expect_no_message( + object = { + explanation_exact = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = "gaussian", + prediction_zero = p0, + n_samples = 2, # Low value for fast computations + n_batches = 1, # Not related to the bug + seed = 123, + n_combinations = NULL + ) + } + ) + + # We should get a message saying that we are using the exact mode. + # The `regexp` format match the one written in `feature_combinations()`. + expect_message( + object = { + explanation_equal = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = "gaussian", + prediction_zero = p0, + n_samples = 2, # Low value for fast computations + n_batches = 1, # Not related to the bug + seed = 123, + n_combinations = 2^ncol(x_explain_numeric)) + }, + regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") + + # We should get a message saying that we are using the exact mode. + # The `regexp` format match the one written in `feature_combinations()`. + expect_message( + object = { + explanation_larger = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = "gaussian", + prediction_zero = p0, + n_samples = 2, # Low value for fast computations + n_batches = 1, # Not related to the bug + seed = 123, + n_combinations = 2^ncol(x_explain_numeric) + 1) + }, + regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") + + # REMOVE THIS AFTER DISCUSSING WITH MARTIN. + # Note that the tests below are technically redundant if the test above have passed. + # I.e., we technically don't need to define `explanation_exact`, `explanation_equal`, + # and `explanation_larger`. Thus, we can remove those above and go from getting + # the nonconstructive error message "Error: `{ ... }` did not throw the expected message." + # to the error message "Error: `explain(...)` did not throw the expected message." by rather + # using: + # + # expect_message( + # object = explain( + # model = model_lm_numeric, + # x_explain = x_explain_numeric, + # x_train = x_train_numeric, + # approach = "gaussian", + # prediction_zero = p0, + # n_samples = 2, # Low value for fast computations + # n_batches = 1, # Not related to the bug + # seed = 123, + # n_combinations = 2^ncol(x_explain_numeric)), + # regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") + # + # However, the error message shall idealy not be shown, so not sure if this is important. + # Hear what Martin has to say. + + # Test that they have the same number of combinations + expect_equal(explanation_exact$internal$parameters$n_combinations, + explanation_equal$internal$parameters$n_combinations) + expect_equal(explanation_exact$internal$parameters$n_combinations, + explanation_larger$internal$parameters$n_combinations) + + # Test that all of them use the exact mode + expect_equal(explanation_exact$internal$parameters$exact, + explanation_equal$internal$parameters$exact) + expect_equal(explanation_exact$internal$parameters$exact, + explanation_larger$internal$parameters$exact) + + # Test that they have the same Shapley kernel weights + expect_equal(explanation_exact$internal$objects$X$shapley_weight, + explanation_equal$internal$objects$X$shapley_weight) + expect_equal(explanation_exact$internal$objects$X$shapley_weight, + explanation_larger$internal$objects$X$shapley_weight) +}) + test_that("Correct dimension of S when sampling combinations with groups", { n_combinations <- 5 @@ -1596,3 +1695,4 @@ test_that("gaussian approach use the user provided parameters", { gaussian.provided_cov_mat ) }) + From d0f278d0136a057170849c715e29e19bfbb01cb2 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 31 Aug 2023 14:21:47 +0200 Subject: [PATCH 07/56] Added script that demonstrates the bug before the bugfix, and added test checking that we do not get an error when runing the code after the bugfix has been applied. --- .../testing_for_valid_defualt_n_batches.R | 54 +++++++++++++++++++ tests/testthat/test-setup.R | 25 +++++++++ 2 files changed, 79 insertions(+) create mode 100644 inst/scripts/devel/testing_for_valid_defualt_n_batches.R diff --git a/inst/scripts/devel/testing_for_valid_defualt_n_batches.R b/inst/scripts/devel/testing_for_valid_defualt_n_batches.R new file mode 100644 index 000000000..2c5f3ef09 --- /dev/null +++ b/inst/scripts/devel/testing_for_valid_defualt_n_batches.R @@ -0,0 +1,54 @@ +# In this code we demonstrate that (before the bugfix) the `explain()` function +# does not enter the exact mode when n_combinations is larger than or equal to 2^m. +# The mode is only changed if n_combinations is strictly larger than 2^m. +# This means that we end up with using all coalitions when n_combinations is 2^m, +# but use not the exact Shapley kernel weights. +# Bugfix replaces `>` with `=>`in the places where the code tests if +# n_combinations is larger than or equal to 2^m. Then the text/messages printed by +# shapr and the code correspond. + +library(xgboost) +library(data.table) + +data("airquality") +data <- data.table::as.data.table(airquality) +data <- data[complete.cases(data), ] + +x_var <- c("Solar.R", "Wind", "Temp", "Month") +y_var <- "Ozone" + +ind_x_explain <- 1:6 +x_train <- data[-ind_x_explain, ..x_var] +y_train <- data[-ind_x_explain, get(y_var)] +x_explain <- data[ind_x_explain, ..x_var] + +# Fitting a basic xgboost model to the training data +model <- xgboost::xgboost( + data = as.matrix(x_train), + label = y_train, + nround = 20, + verbose = FALSE +) + +# Specifying the phi_0, i.e. the expected prediction without any features +p0 <- mean(y_train) + +# Shapr sets the default number of batches to be 10 for this dataset for the +# "ctree", "gaussian", and "copula" approaches. Thus, setting `n_combinations` +# to any value lower of equal to 10 causes the error. +any_number_equal_or_below_10 = 8 + +# Before the bugfix, shapr:::check_n_batches() throws the error: +# Error in check_n_batches(internal) : +# `n_batches` (10) must be smaller than the number feature combinations/`n_combinations` (8) +# Bug only occures for "ctree", "gaussian", and "copula" as they are treated different in +# `get_default_n_batches()`, I am not certain why. Ask Martin about the logic behind that. +explanation <- explain( + model = model, + x_explain = x_explain, + x_train = x_train, + n_samples = 2, # Low value for fast computations + approach = "gaussian", + prediction_zero = p0, + n_combinations = any_number_equal_or_below_10 +) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index e1de21f7d..1ab2d454a 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1596,3 +1596,28 @@ test_that("gaussian approach use the user provided parameters", { gaussian.provided_cov_mat ) }) + +test_that("Shapr sets a valid default value for `n_batches`", { + # Shapr sets the default number of batches to be 10 for this dataset and the + # "ctree", "gaussian", and "copula" approaches. Thus, setting `n_combinations` + # to any value lower of equal to 10 causes the error. + any_number_equal_or_below_10 = 8 + + # Before the bugfix, shapr:::check_n_batches() throws the error: + # Error in check_n_batches(internal) : + # `n_batches` (10) must be smaller than the number feature combinations/`n_combinations` (8) + # Bug only occures for "ctree", "gaussian", and "copula" as they are treated different in + # `get_default_n_batches()`, I am not certain why. Ask Martin about the logic behind that. + expect_no_error( + explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + n_samples = 2, # Low value for fast computations + approach = "gaussian", + prediction_zero = p0, + n_combinations = any_number_equal_or_below_10 + ) + ) +}) + From 6fd2d915ff2ba752e4ab04a5d7e56347254da618 Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 31 Aug 2023 14:48:21 +0200 Subject: [PATCH 08/56] Fixed lint warnings in `approach.R`. --- R/approach.R | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/R/approach.R b/R/approach.R index c0fa2782d..e2a02f77c 100644 --- a/R/approach.R +++ b/R/approach.R @@ -1,8 +1,10 @@ #' Set up the framework chosen approach #' -#' The different choices of `approach` takes different (optional) parameters, which are forwarded from [explain()]. +#' The different choices of `approach` takes different (optional) parameters, +#' which are forwarded from [explain()]. #' -#' @param internal List. Holds all parameters, data, functions and computed objects used within [explain()]. +#' @param internal List. Holds all parameters, data, functions and computed +#' objects used within [explain()]. #' The list contains one or more of the elements `parameters`, `data`, `objects`, `output`. #' #' @param ... `approach`-specific arguments. See below. @@ -44,31 +46,37 @@ setup_approach.combined <- function(internal, ...) { #' @note #' There is currently a warning when calling `roxygen2::roxygenise()`. #' Warning message: -#' inheritParams failed in topic "prepare_data", "prepare_data.categorical", "prepare_data.copula", "prepare_data.ctree", "prepare_data.empirical", "prepare_data.gaussian", "prepare_data.independence", "prepare_data.timeseries", and "prepare_data.vaeac". +#' inheritParams failed in topic "prepare_data", "prepare_data.categorical", "prepare_data.copula", +#' "prepare_data.ctree", "prepare_data.empirical", "prepare_data.gaussian", +#' "prepare_data.independence", "prepare_data.timeseries", and "prepare_data.vaeac". #' ✖ All parameters are already documented; none remain to be inherited. #' -#' This occurred after Lars updated the code as he now documents all parameters here. This was not the case before, as the roxygen had not been updated. -#' Can solve this by removing, e.g., `param ... Currently not used.` below, or remove rdname from the subfunctions and rather use intherateparams. +#' This occurred after Lars updated the code as he now documents all parameters here. This was not +#' the case before, as the roxygen had not been updated. Can solve this by removing, e.g., +#' `param ... Currently not used.` below, or remove rdname from the subfunctions and rather +# use inherateparams. #' #' -#' @param internal List. Holds all parameters, data, functions and computed objects used within \code{\link[=explain]{explain()}}. -#' The list contains one or more of the elements `parameters`, `data`, `objects`, `output`. -#' @param index_features Positive integer vector. Specifies the indices of combinations to apply to the present method. -#' `NULL` means all combinations. Only used internally. +#' @param internal List. Holds all parameters, data, functions and computed objects used +#' within \code{\link[=explain]{explain()}}. The list contains one or more of the elements +#' `parameters`, `data`, `objects`, `output`. +#' @param index_features Positive integer vector. Specifies the indices of combinations to +#' apply to the present method. `NULL` means all combinations. Only used internally. #' #' @param ... Currently not used. #' -#' @return A data.table containing simulated data used to estimate the contribution function by Monte Carlo integration. +#' @return A data.table containing simulated data used to estimate +#' the contribution function by Monte Carlo integration. #' #' @export #' @keywords internal prepare_data <- function(internal, index_features = NULL, ...) { # Extract the used approach(es) - approach = internal$parameters$approach + approach <- internal$parameters$approach # Auxiliary object such that we can use the `UseMethod` function - this_class = "" + this_class <- "" # Check if the user provided one or several approaches. if (length(approach) > 1) { @@ -78,10 +86,10 @@ prepare_data <- function(internal, index_features = NULL, ...) { # each batch of them are using the same approach. Meaning that we can figure out which approach # the first value in `index_features` is connected to, and then use that approach to generate # the Monte Carlo samples data. - class(this_class) = internal$objects$X[id_combination == index_features[1], approach] + class(this_class) <- internal$objects$X[id_combination == index_features[1], approach] } else { # Only one approach for all coalitions sizes - class(this_class) = approach + class(this_class) <- approach } # Use the `prepare_data` function for the correct approach From 4f0bdb90be47086121a066ad95c973a0aa99ae75 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 12:25:13 +0200 Subject: [PATCH 09/56] Added two parameters to the `internal$parameters` list which contains the number of approaches and the number of unique approaches. This is for example useful to check that the provided `n_batches` is a valid value. (see next commits) --- R/setup.R | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/R/setup.R b/R/setup.R index 5e32df5ae..8b5c40c5f 100644 --- a/R/setup.R +++ b/R/setup.R @@ -368,6 +368,17 @@ get_extra_parameters <- function(internal) { internal$parameters$n_groups <- NULL } + # Get the number of unique approaches + if (length(internal$parameters$approach) > 1) { + internal$parameters$n_approaches = length(internal$parameters$approach) + # Remove the last approach as `explain` forces the user to specify the last approach + # even if it is not used as all variables are conditioned on and no estimation is needed. + internal$parameters$n_unique_approaches = unique(internal$parameters$approach[-n_approaches]) + } else { + internal$parameters$n_approaches = 1 + internal$parameters$n_unique_approaches = 1 + } + return(internal) } From 2a940bfca6e5f2fb13202111e73f1c0268fc850c Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 12:39:34 +0200 Subject: [PATCH 10/56] Added test to check that `n_batches` must be larger than or equal to the number of unique approaches. Before the user could, e.g., set `n_batches = 2`, but use 4 approaches and then shapr would use 4 but not update `n_batches` and without giwing a warning to the user. --- R/setup.R | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/R/setup.R b/R/setup.R index 8b5c40c5f..00f0b96fb 100644 --- a/R/setup.R +++ b/R/setup.R @@ -208,6 +208,7 @@ check_n_batches <- function(internal) { n_combinations <- internal$parameters$n_combinations is_groupwise <- internal$parameters$is_groupwise n_groups <- internal$parameters$n_groups + n_unique_approaches <- internal$parameters$n_unique_approaches if (!is_groupwise) { actual_n_combinations <- ifelse(is.null(n_combinations), 2^n_features, n_combinations) @@ -221,6 +222,14 @@ check_n_batches <- function(internal) { actual_n_combinations, ")" )) } + + if (n_batches < n_unique_approaches) { + stop(paste0( + "`n_batches` (", n_batches, ") must be larger than the number of unique approaches in `approach` (", + actual_n_combinations, "). Note that the last approach in `approach` is not includeded as it is not used ", + "to do any computations as described in the vignette." + )) + } } From 303df5cce6940b498c65e0b655afcfc3147c2f33 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 12:41:21 +0200 Subject: [PATCH 11/56] Updated `get_default_n_batches` to take into consideration the number of unique approaches that is used. This was not done before and gave inconsistency in what number shapr would reccomend and use when `n_batches` was set to `null` by the user. --- R/setup.R | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/R/setup.R b/R/setup.R index 00f0b96fb..8f3a5cbbb 100644 --- a/R/setup.R +++ b/R/setup.R @@ -695,18 +695,20 @@ set_defaults <- function(internal) { # Set defaults for certain arguments (based on other input) approach <- internal$parameters$approach + n_unique_approaches <- internal$parameters$n_unique_approaches used_n_combinations <- internal$parameters$used_n_combinations n_batches <- internal$parameters$n_batches # n_batches if (is.null(n_batches)) { - internal$parameters$n_batches <- get_default_n_batches(approach, used_n_combinations) + internal$parameters$n_batches <- get_default_n_batches(approach, n_unique_approaches, used_n_combinations) } return(internal) } + #' @keywords internal -get_default_n_batches <- function(approach, n_combinations) { +get_default_n_batches <- function(approach, n_unique_approaches, n_combinations) { used_approach <- names(sort(table(approach), decreasing = TRUE))[1] # Most frequent used approach (when more present) if (used_approach %in% c("ctree", "gaussian", "copula")) { @@ -718,7 +720,7 @@ get_default_n_batches <- function(approach, n_combinations) { this_min <- 2 this_max <- 100 } - min_checked <- max(c(this_min, suggestion)) + min_checked <- max(c(this_min, suggestion, n_unique_approaches)) ret <- min(c(this_max, min_checked, n_combinations - 1)) message( paste0( From c3c7a874ce1866127cbba96ecbf3abd2ba2c7519 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 13:11:09 +0200 Subject: [PATCH 12/56] Changed where seed is set such that it applies for both regular and combined approaches. Furthermore, added if test, because previous version resulted in not reproducible code, as setting seed to `null` ruins that we set seed in `explain()`. Just consider this small example: # Set seed to get same values twice set.seed(123) rnorm(1) # Seting the same seed gives the same value set.seed(123) rnorm(1) # If we also include null then the seed is removed and we do not get the same value set.seed(123) set.seed(NULL) rnorm(1) # Setining seed to null actually gives a new "random" number each time. set.seed(123) set.seed(NULL) rnorm(1) --- R/setup_computation.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/setup_computation.R b/R/setup_computation.R index a4a3ed9ea..35dae3833 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -622,6 +622,7 @@ create_S_batch_new <- function(internal, seed = NULL) { X <- internal$objects$X + if (!is.null(seed)) set.seed(seed) if (length(approach0) > 1) { X[!(n_features %in% c(0, n_features0)), approach := approach0[n_features]] @@ -640,7 +641,6 @@ create_S_batch_new <- function(internal, seed = NULL) { # Randomize order before ordering spreading the batches on the different approaches as evenly as possible # with respect to shapley_weight - set.seed(seed) X[, randomorder := sample(.N)] data.table::setorder(X, randomorder) # To avoid smaller id_combinations always proceeding large ones data.table::setorder(X, shapley_weight) From 8e6cc9b7ca23025fa23dea4336b44e5439a5d00f Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 17:18:38 +0200 Subject: [PATCH 13/56] Typo --- R/setup.R | 4 ++-- tests/testthat/test-setup.R | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/R/setup.R b/R/setup.R index 8f3a5cbbb..d62ec8e91 100644 --- a/R/setup.R +++ b/R/setup.R @@ -226,7 +226,7 @@ check_n_batches <- function(internal) { if (n_batches < n_unique_approaches) { stop(paste0( "`n_batches` (", n_batches, ") must be larger than the number of unique approaches in `approach` (", - actual_n_combinations, "). Note that the last approach in `approach` is not includeded as it is not used ", + n_unique_approaches, "). Note that the last approach in `approach` is not included as it is not used ", "to do any computations as described in the vignette." )) } @@ -382,7 +382,7 @@ get_extra_parameters <- function(internal) { internal$parameters$n_approaches = length(internal$parameters$approach) # Remove the last approach as `explain` forces the user to specify the last approach # even if it is not used as all variables are conditioned on and no estimation is needed. - internal$parameters$n_unique_approaches = unique(internal$parameters$approach[-n_approaches]) + internal$parameters$n_unique_approaches = length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) } else { internal$parameters$n_approaches = 1 internal$parameters$n_unique_approaches = 1 diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 1ab2d454a..5ccca5df3 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1621,3 +1621,35 @@ test_that("Shapr sets a valid default value for `n_batches`", { ) }) + +test_that("Error with less batches than unique used approaches", { + # Expect to get the following error: + # `n_batches` (3) must be larger than the number of unique approaches in `approach` (4). Note that + # the last approach in `approach` is not includeded as it is not used to do any computations as + # described in the vignette. + expect_error( + object = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + n_batches = 3, + timing = FALSE, + seed = 1)) + + # Except that shapr sets a valid `n_batches` and get no errors + expect_no_error( + object = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + n_batches = NULL, + timing = FALSE, + seed = 1)) +}) + + + From 246c2cf32e1a95400b47b8a2ad0b36140f372ad1 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 17:31:01 +0200 Subject: [PATCH 14/56] Added test to check that setting the seed works for combined approaches. --- tests/testthat/test-setup.R | 51 ++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 5ccca5df3..6d0eb22d8 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1621,11 +1621,10 @@ test_that("Shapr sets a valid default value for `n_batches`", { ) }) - -test_that("Error with less batches than unique used approaches", { +test_that("Error with to low `n_batches` compared to the number of unique approaches", { # Expect to get the following error: # `n_batches` (3) must be larger than the number of unique approaches in `approach` (4). Note that - # the last approach in `approach` is not includeded as it is not used to do any computations as + # the last approach in `approach` is not included as it is not used to do any computations as # described in the vignette. expect_error( object = explain( @@ -1651,5 +1650,51 @@ test_that("Error with less batches than unique used approaches", { seed = 1)) }) +test_that("setting the seed for combined approaches works", { + # Check that setting the seed works for a combination of approaches + # Here `n_batches` is set to `4`, so one batch for each method, + # i.e., no randomness. + explanation_combined_1 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + explanation_combined_2 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + + # Check that they are equal + expect_equal(explanation_combined_1, explanation_combined_2) + # Here `n_batches` is set to `10`, so one batch for each method, + # i.e., no randomness. + explanation_combined_3 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + + explanation_combined_4 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + + # Check that they are equal + expect_equal(explanation_combined_3, explanation_combined_4) +}) From e873f1df66a477b6386432fe086707578cc63136 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 18:53:47 +0200 Subject: [PATCH 15/56] typo in test function --- tests/testthat/test-setup.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 6d0eb22d8..8333a10f8 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1675,8 +1675,8 @@ test_that("setting the seed for combined approaches works", { # Check that they are equal expect_equal(explanation_combined_1, explanation_combined_2) - # Here `n_batches` is set to `10`, so one batch for each method, - # i.e., no randomness. + # Here `n_batches` is set to `10`, so NOT one batch for each method, + # i.e., randomness in assigning the batches. explanation_combined_3 = explain( model = model_lm_numeric, x_explain = x_explain_numeric, From 5a2c2eb06843ca86f36eca1283ca9252617c7248 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 18:54:11 +0200 Subject: [PATCH 16/56] Added file to demonstrate the bugs (before the bugfix) --- .../demonstrate_combined_approaches_bugs.R | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 inst/scripts/devel/demonstrate_combined_approaches_bugs.R diff --git a/inst/scripts/devel/demonstrate_combined_approaches_bugs.R b/inst/scripts/devel/demonstrate_combined_approaches_bugs.R new file mode 100644 index 000000000..d6dcab15b --- /dev/null +++ b/inst/scripts/devel/demonstrate_combined_approaches_bugs.R @@ -0,0 +1,133 @@ +# Use the data objects from the helper-lm.R file. +# Here we want to illustrate three bugs related to combined approaches (before the bugfix) + + +# First we see that setting `n_batches` lower than the number of unique approaches +# produce some inconsistencies in shapr. +explanation_1 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + n_batches = 3, + timing = FALSE, + seed = 1) + +# It says shapr is using 3 batches +explanation_1$internal$parameters$n_batches + +# But shapr has actually used 4. +# This is because shapr can only handle one type of approach for each batch. +# Hence, the number of batches must be at least as large as the number of unique approaches. +# (excluding the last approach which is not used, as we then condition on all features) +length(explanation_1$internal$objects$S_batch) + +# Note that after the bugfix, we give an error if `n_batches` < # unique approaches. + + + + + +# Second we look at at another situation where # unique approaches is two and we set `n_batches` = 2, +# but shapr still use three batches. This is due to how shapr decides how many batches each approach +# should get. Right now it decided based on the proportion of the number of coalitions each approach +# is responsible. In this setting, independence is responsible for 5 coalitions and ctree for 25 coalitions, +# So, initially shapr sets that ctree should get the two batches while independence gets 0, but this +# is than changed to 1 without considering that it now breaks the consistency with the `n_batches`. +# This is done in the function `create_S_batch_new()` in setup_computation.R. +explanation_2 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + prediction_zero = p0, + n_batches = 2, + timing = FALSE, + seed = 1) + +# It says shapr is using 2 batches +explanation_2$internal$parameters$n_batches + +# But shapr has actually used 3 +length(explanation_2$internal$objects$S_batch) + + +# Same type of bug but in the opposite direction +explanation_3 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + prediction_zero = p0, + n_batches = 15, + timing = FALSE, + seed = 1) + +# It says shapr is using 15 batches +explanation_3$internal$parameters$n_batches + +# It says shapr is using 14 batches +length(explanation_3$internal$objects$S_batch) + + + + + + + +# Bug number three caused shapr to not to be reproducible as seting the seed did not work for combined approaches. +# This was due to a `set.seed(NULL)` which ruins all of the earlier set.seed procedures. + + +# Check that setting the seed works for a combination of approaches +# Here `n_batches` is set to `4`, so one batch for each method, +# i.e., no randomness. +# In the first example we get no bug as there is no randomness in assigning the batches. +explanation_combined_1 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + +explanation_combined_2 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + +# Check that they are equal +all.equal(explanation_combined_1, explanation_combined_2) + + +# Here `n_batches` is set to `10`, so NOT one batch for each method, +# i.e., randomness in assigning the batches. +explanation_combined_3 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + +explanation_combined_4 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + +# Check that they are not equal +all.equal(explanation_combined_3, explanation_combined_4) +explanation_combined_3$internal$objects$X +explanation_combined_4$internal$objects$X + From 42c5ed15ec7acd995ba646eaf63e38b62573794d Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 19:00:12 +0200 Subject: [PATCH 17/56] Added new test --- tests/testthat/test-setup.R | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 8333a10f8..d9173f0fe 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1650,6 +1650,56 @@ test_that("Error with to low `n_batches` compared to the number of unique approa seed = 1)) }) +test_that("the used number of batches mathces the provided `n_batches` for combined approaches", { + explanation_1 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + prediction_zero = p0, + n_batches = 2, + n_samples = 10, + timing = FALSE, + seed = 1) + + # Check that the used number of batches corresponds with the provided `n_batches` + expect_equal(explanation_1$internal$parameters$n_batches, + length(explanation_1$internal$objects$S_batch)) + + explanation_2 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + prediction_zero = p0, + n_batches = 15, + n_samples = 10, + timing = FALSE, + seed = 1) + + # Check that the used number of batches corresponds with the provided `n_batches` + expect_equal(explanation_2$internal$parameters$n_batches, + length(explanation_2$internal$objects$S_batch)) + + # Check for the default value for `n_batch` + explanation_3 = explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + prediction_zero = p0, + n_batches = NULL, + n_samples = 10, + timing = FALSE, + seed = 1) + + # Check that the used number of batches corresponds with the `n_batches` + expect_equal(explanation_3$internal$parameters$n_batches, + length(explanation_3$internal$objects$S_batch)) +}) + + + test_that("setting the seed for combined approaches works", { # Check that setting the seed works for a combination of approaches # Here `n_batches` is set to `4`, so one batch for each method, From bccf6ff03a4a3863491d24aec5eb833226aa6d6a Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 19:04:56 +0200 Subject: [PATCH 18/56] Updated tests by removing n_samples --- tests/testthat/test-setup.R | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index d9173f0fe..2bcfbf680 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1658,7 +1658,6 @@ test_that("the used number of batches mathces the provided `n_batches` for combi approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), prediction_zero = p0, n_batches = 2, - n_samples = 10, timing = FALSE, seed = 1) @@ -1673,7 +1672,6 @@ test_that("the used number of batches mathces the provided `n_batches` for combi approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), prediction_zero = p0, n_batches = 15, - n_samples = 10, timing = FALSE, seed = 1) @@ -1689,7 +1687,6 @@ test_that("the used number of batches mathces the provided `n_batches` for combi approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), prediction_zero = p0, n_batches = NULL, - n_samples = 10, timing = FALSE, seed = 1) From 078c838ed2e738a1d6ba1c590c83be2c1e6a360f Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 19:05:38 +0200 Subject: [PATCH 19/56] Added a bugfix to shapr not using the correct number of batches. Maybe not the most elegant solution. --- R/setup_computation.R | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/R/setup_computation.R b/R/setup_computation.R index 35dae3833..8965604fa 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -633,6 +633,57 @@ create_S_batch_new <- function(internal, seed = NULL) { pmax(1, round(.N / (n_combinations - 2) * n_batches)), n_S_per_approach = .N ), by = approach] + + # DELETE THIS COMMENT: + # The fix below is simple, but I feel like it is double work as one first does lines 631-635, + # and then later changes the output from said lines. A better idea would likely be to look at the logic + # in said lines. + # We can now use the additional (new) parameter + # `n_unique_approaches = internal$parameters$n_unique_approaches`. + # So instead of doing + # `pmax(1, round(.N / (n_combinations - 2) * n_batches))` + # one could maybe do something like + # `round(.N / (n_combinations - 2) * (n_batches - n_unique_approaches)) + 1`. + # Here we subtract `n_unique_approaches` as we know that at least `n_unique_approaches` of the + # `n_batches` have been looked to a specific approach, so we only want to divide the remaining + # batches among the approaches. We add 1 as each method needs to have 1 batch, and these + # corresponds to the `n_unique_approaches` batches we subtracted before. + # But this is will break too. + # Consider same example as in `demonstrate_combined_appraoches_bugs.R`. + # There `n_combinations = 32`, `n_unique_approaches = 2`, and `.N = c(5, 25)`. + # If we let `n_batches = 5`, then my proposal breaks, as + # round(.N / (n_combinations - 2) * (n_batches - n_unique_approaches)) + 1 + # gives c(1,3) which sums to 4 < 5. + # This is because before we round we have c(0.5, 2.5) which are both rounded down + # So my conclusion is that it might be the easiest to do what is done above, + # or use my proposed approach and add batches until the correct amount has been reached. + # Discuss with Martin. + # Furthermore, we can both end up in situations with too few and too many coalitions, + # so have to check for both. + # Consider the same situation where one has `n_batches = 15`, and `n_combinations = 32`, then + # round(c(5, 25) / (n_combinations - 2) * n_batches) + # will yield c(2,12), whose sum is larger less `n_batches` + + # Ensures that the number of batches corresponds to `n_batches` + if (sum(batch_count_dt$n_batches_per_approach) != n_batches) { + # Ensure that the number of batches is not larger than `n_batches`. + # Remove one batch from the approach with the most batches. + while (sum(batch_count_dt$n_batches_per_approach) > n_batches) { + approach_to_subtract_batch = which.max(batch_count_dt$n_batches_per_approach) + batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] = + batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] - 1 + } + + # Ensure that the number of batches is not lower than `n_batches`. + # Add one batch to the approach with most coalitions per batch + while (sum(batch_count_dt$n_batches_per_approach) < n_batches) { + approach_to_add_batch = which.max(batch_count_dt$n_S_per_approach / + batch_count_dt$n_batches_per_approach) + batch_count_dt$n_batches_per_approach[approach_to_add_batch] = + batch_count_dt$n_batches_per_approach[approach_to_add_batch] + 1 + } + } + batch_count_dt[, n_leftover_first_batch := n_S_per_approach %% n_batches_per_approach] data.table::setorder(batch_count_dt, -n_leftover_first_batch) From 703b248ddbcc449b839741e94a20e0284a596f8b Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 19:06:00 +0200 Subject: [PATCH 20/56] Updated the demonstration script --- inst/scripts/devel/demonstrate_combined_approaches_bugs.R | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/inst/scripts/devel/demonstrate_combined_approaches_bugs.R b/inst/scripts/devel/demonstrate_combined_approaches_bugs.R index d6dcab15b..57e5b9f44 100644 --- a/inst/scripts/devel/demonstrate_combined_approaches_bugs.R +++ b/inst/scripts/devel/demonstrate_combined_approaches_bugs.R @@ -4,6 +4,7 @@ # First we see that setting `n_batches` lower than the number of unique approaches # produce some inconsistencies in shapr. +# After the bugfix, we force the user to choose a valid value for `n_batches`. explanation_1 = explain( model = model_lm_numeric, x_explain = x_explain_numeric, @@ -52,6 +53,8 @@ explanation_2$internal$parameters$n_batches # But shapr has actually used 3 length(explanation_2$internal$objects$S_batch) +# These are equal after the bugfix + # Same type of bug but in the opposite direction explanation_3 = explain( @@ -70,6 +73,7 @@ explanation_3$internal$parameters$n_batches # It says shapr is using 14 batches length(explanation_3$internal$objects$S_batch) +# These are equal after the bugfix @@ -131,3 +135,5 @@ all.equal(explanation_combined_3, explanation_combined_4) explanation_combined_3$internal$objects$X explanation_combined_4$internal$objects$X +# These are equal after the bugfix + From c903e6bba93230d3cfa9659aa14e86164137f4a6 Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 19:21:00 +0200 Subject: [PATCH 21/56] Added last test and fixed lintr --- R/setup.R | 8 ++-- R/setup_computation.R | 8 ++-- tests/testthat/test-setup.R | 89 ++++++++++++++++++++++++++++++++----- 3 files changed, 86 insertions(+), 19 deletions(-) diff --git a/R/setup.R b/R/setup.R index d62ec8e91..5f4cec009 100644 --- a/R/setup.R +++ b/R/setup.R @@ -379,13 +379,13 @@ get_extra_parameters <- function(internal) { # Get the number of unique approaches if (length(internal$parameters$approach) > 1) { - internal$parameters$n_approaches = length(internal$parameters$approach) + internal$parameters$n_approaches <- length(internal$parameters$approach) # Remove the last approach as `explain` forces the user to specify the last approach # even if it is not used as all variables are conditioned on and no estimation is needed. - internal$parameters$n_unique_approaches = length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) + internal$parameters$n_unique_approaches <- length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) } else { - internal$parameters$n_approaches = 1 - internal$parameters$n_unique_approaches = 1 + internal$parameters$n_approaches <- 1 + internal$parameters$n_unique_approaches <- 1 } return(internal) diff --git a/R/setup_computation.R b/R/setup_computation.R index 8965604fa..1d3ec933c 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -669,17 +669,17 @@ create_S_batch_new <- function(internal, seed = NULL) { # Ensure that the number of batches is not larger than `n_batches`. # Remove one batch from the approach with the most batches. while (sum(batch_count_dt$n_batches_per_approach) > n_batches) { - approach_to_subtract_batch = which.max(batch_count_dt$n_batches_per_approach) - batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] = + approach_to_subtract_batch <- which.max(batch_count_dt$n_batches_per_approach) + batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] <- batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] - 1 } # Ensure that the number of batches is not lower than `n_batches`. # Add one batch to the approach with most coalitions per batch while (sum(batch_count_dt$n_batches_per_approach) < n_batches) { - approach_to_add_batch = which.max(batch_count_dt$n_S_per_approach / + approach_to_add_batch <- which.max(batch_count_dt$n_S_per_approach / batch_count_dt$n_batches_per_approach) - batch_count_dt$n_batches_per_approach[approach_to_add_batch] = + batch_count_dt$n_batches_per_approach[approach_to_add_batch] <- batch_count_dt$n_batches_per_approach[approach_to_add_batch] + 1 } } diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 2bcfbf680..221a279a1 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1601,7 +1601,7 @@ test_that("Shapr sets a valid default value for `n_batches`", { # Shapr sets the default number of batches to be 10 for this dataset and the # "ctree", "gaussian", and "copula" approaches. Thus, setting `n_combinations` # to any value lower of equal to 10 causes the error. - any_number_equal_or_below_10 = 8 + any_number_equal_or_below_10 <- 8 # Before the bugfix, shapr:::check_n_batches() throws the error: # Error in check_n_batches(internal) : @@ -1651,11 +1651,11 @@ test_that("Error with to low `n_batches` compared to the number of unique approa }) test_that("the used number of batches mathces the provided `n_batches` for combined approaches", { - explanation_1 = explain( + explanation_1 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + approach = c("independence", "ctree", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = 2, timing = FALSE, @@ -1665,11 +1665,11 @@ test_that("the used number of batches mathces the provided `n_batches` for combi expect_equal(explanation_1$internal$parameters$n_batches, length(explanation_1$internal$objects$S_batch)) - explanation_2 = explain( + explanation_2 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + approach = c("independence", "ctree", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = 15, timing = FALSE, @@ -1680,11 +1680,11 @@ test_that("the used number of batches mathces the provided `n_batches` for combi length(explanation_2$internal$objects$S_batch)) # Check for the default value for `n_batch` - explanation_3 = explain( + explanation_3 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree" ,"ctree"), + approach = c("independence", "ctree", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = NULL, timing = FALSE, @@ -1701,7 +1701,7 @@ test_that("setting the seed for combined approaches works", { # Check that setting the seed works for a combination of approaches # Here `n_batches` is set to `4`, so one batch for each method, # i.e., no randomness. - explanation_combined_1 = explain( + explanation_combined_1 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1710,7 +1710,7 @@ test_that("setting the seed for combined approaches works", { timing = FALSE, seed = 1) - explanation_combined_2 = explain( + explanation_combined_2 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1724,7 +1724,7 @@ test_that("setting the seed for combined approaches works", { # Here `n_batches` is set to `10`, so NOT one batch for each method, # i.e., randomness in assigning the batches. - explanation_combined_3 = explain( + explanation_combined_3 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1733,7 +1733,7 @@ test_that("setting the seed for combined approaches works", { timing = FALSE, seed = 1) - explanation_combined_4 = explain( + explanation_combined_4 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1745,3 +1745,70 @@ test_that("setting the seed for combined approaches works", { # Check that they are equal expect_equal(explanation_combined_3, explanation_combined_4) }) + + +test_that("counting the number of unique approaches", { + # Test several combinations of combined approaches and check that the number of + # counted unique approaches is correct. + # Recall that the last approach is not counted in `n_unique_approaches` as + # we do not use it as we then condition on all features. + explanation_combined_1 <- explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + expect_equal(explanation_combined_1$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_1$internal$parameters$n_unique_approaches, 4) + + explanation_combined_2 <- explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + expect_equal(explanation_combined_2$internal$parameters$n_approaches, 1) + expect_equal(explanation_combined_2$internal$parameters$n_unique_approaches, 1) + + explanation_combined_3 <- explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("gaussian", "gaussian", "gaussian", "gaussian", "gaussian"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + expect_equal(explanation_combined_3$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_3$internal$parameters$n_unique_approaches, 1) + + explanation_combined_4 <- explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "independence", "empirical", "empirical"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + expect_equal(explanation_combined_4$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_4$internal$parameters$n_unique_approaches, 2) + + # Check that the last one is not counted + explanation_combined_5 <- explain( + model = model_lm_numeric, + x_explain = x_explain_numeric, + x_train = x_train_numeric, + approach = c("independence", "empirical", "independence", "empirical", "gaussian"), + prediction_zero = p0, + timing = FALSE, + seed = 1) + expect_equal(explanation_combined_5$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_5$internal$parameters$n_unique_approaches, 2) +}) + + + + From 801ff5f5802a429188a0bc2d8021980a2492b61d Mon Sep 17 00:00:00 2001 From: LHBO Date: Mon, 4 Sep 2023 20:22:04 +0200 Subject: [PATCH 22/56] Lint again. --- tests/testthat/test-setup.R | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 221a279a1..21e3672b9 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1808,7 +1808,3 @@ test_that("counting the number of unique approaches", { expect_equal(explanation_combined_5$internal$parameters$n_approaches, 5) expect_equal(explanation_combined_5$internal$parameters$n_unique_approaches, 2) }) - - - - From 9de817fa33c544d76f7c989e34a1d8d52760a54d Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 5 Sep 2023 10:04:04 +0200 Subject: [PATCH 23/56] styler --- tests/testthat/test-setup.R | 55 +++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index e097e2546..4ad189e15 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1353,7 +1353,7 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" # `n_combinations` = 2^m, and one with `n_combinations` > 2^m expect_no_message( object = { - explanation_exact = explain( + explanation_exact <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1371,7 +1371,7 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" # The `regexp` format match the one written in `feature_combinations()`. expect_message( object = { - explanation_equal = explain( + explanation_equal <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1380,15 +1380,17 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" n_samples = 2, # Low value for fast computations n_batches = 1, # Not related to the bug seed = 123, - n_combinations = 2^ncol(x_explain_numeric)) + n_combinations = 2^ncol(x_explain_numeric) + ) }, - regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") + regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead." + ) # We should get a message saying that we are using the exact mode. # The `regexp` format match the one written in `feature_combinations()`. expect_message( object = { - explanation_larger = explain( + explanation_larger <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, @@ -1397,9 +1399,11 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" n_samples = 2, # Low value for fast computations n_batches = 1, # Not related to the bug seed = 123, - n_combinations = 2^ncol(x_explain_numeric) + 1) + n_combinations = 2^ncol(x_explain_numeric) + 1 + ) }, - regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") + regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead." + ) # REMOVE THIS AFTER DISCUSSING WITH MARTIN. # Note that the tests below are technically redundant if the test above have passed. @@ -1426,22 +1430,34 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" # Hear what Martin has to say. # Test that they have the same number of combinations - expect_equal(explanation_exact$internal$parameters$n_combinations, - explanation_equal$internal$parameters$n_combinations) - expect_equal(explanation_exact$internal$parameters$n_combinations, - explanation_larger$internal$parameters$n_combinations) + expect_equal( + explanation_exact$internal$parameters$n_combinations, + explanation_equal$internal$parameters$n_combinations + ) + expect_equal( + explanation_exact$internal$parameters$n_combinations, + explanation_larger$internal$parameters$n_combinations + ) # Test that all of them use the exact mode - expect_equal(explanation_exact$internal$parameters$exact, - explanation_equal$internal$parameters$exact) - expect_equal(explanation_exact$internal$parameters$exact, - explanation_larger$internal$parameters$exact) + expect_equal( + explanation_exact$internal$parameters$exact, + explanation_equal$internal$parameters$exact + ) + expect_equal( + explanation_exact$internal$parameters$exact, + explanation_larger$internal$parameters$exact + ) # Test that they have the same Shapley kernel weights - expect_equal(explanation_exact$internal$objects$X$shapley_weight, - explanation_equal$internal$objects$X$shapley_weight) - expect_equal(explanation_exact$internal$objects$X$shapley_weight, - explanation_larger$internal$objects$X$shapley_weight) + expect_equal( + explanation_exact$internal$objects$X$shapley_weight, + explanation_equal$internal$objects$X$shapley_weight + ) + expect_equal( + explanation_exact$internal$objects$X$shapley_weight, + explanation_larger$internal$objects$X$shapley_weight + ) }) test_that("Correct dimension of S when sampling combinations with groups", { @@ -1695,4 +1711,3 @@ test_that("gaussian approach use the user provided parameters", { gaussian.provided_cov_mat ) }) - From d263f3723f253ff5ebc2ecf756fd43cb8779c1f4 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 5 Sep 2023 10:37:06 +0200 Subject: [PATCH 24/56] minor edits to tests --- tests/testthat/test-setup.R | 66 +++++++++++-------------------------- 1 file changed, 19 insertions(+), 47 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 4ad189e15..760d1656c 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1351,6 +1351,7 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" # Create three explainer object: one with exact mode, one with # `n_combinations` = 2^m, and one with `n_combinations` > 2^m + # No message as n_combination = NULL sets exact mode expect_no_message( object = { explanation_exact <- explain( @@ -1362,7 +1363,8 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" n_samples = 2, # Low value for fast computations n_batches = 1, # Not related to the bug seed = 123, - n_combinations = NULL + n_combinations = NULL, + timing = FALSE ) } ) @@ -1380,7 +1382,8 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" n_samples = 2, # Low value for fast computations n_batches = 1, # Not related to the bug seed = 123, - n_combinations = 2^ncol(x_explain_numeric) + n_combinations = 2^ncol(x_explain_numeric), + timing = FALSE ) }, regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead." @@ -1399,65 +1402,34 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" n_samples = 2, # Low value for fast computations n_batches = 1, # Not related to the bug seed = 123, - n_combinations = 2^ncol(x_explain_numeric) + 1 + n_combinations = 2^ncol(x_explain_numeric) + 1, + timing = FALSE ) }, regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead." ) - # REMOVE THIS AFTER DISCUSSING WITH MARTIN. - # Note that the tests below are technically redundant if the test above have passed. - # I.e., we technically don't need to define `explanation_exact`, `explanation_equal`, - # and `explanation_larger`. Thus, we can remove those above and go from getting - # the nonconstructive error message "Error: `{ ... }` did not throw the expected message." - # to the error message "Error: `explain(...)` did not throw the expected message." by rather - # using: - # - # expect_message( - # object = explain( - # model = model_lm_numeric, - # x_explain = x_explain_numeric, - # x_train = x_train_numeric, - # approach = "gaussian", - # prediction_zero = p0, - # n_samples = 2, # Low value for fast computations - # n_batches = 1, # Not related to the bug - # seed = 123, - # n_combinations = 2^ncol(x_explain_numeric)), - # regexp = "Success with message:\nn_combinations is larger than or equal to 2\\^m = 32. \nUsing exact instead.") - # - # However, the error message shall idealy not be shown, so not sure if this is important. - # Hear what Martin has to say. - - # Test that they have the same number of combinations + # Test that returned objects are identical (including all using the exact option and having the same Shapley weights) expect_equal( - explanation_exact$internal$parameters$n_combinations, - explanation_equal$internal$parameters$n_combinations + explanation_exact, + explanation_equal ) expect_equal( - explanation_exact$internal$parameters$n_combinations, - explanation_larger$internal$parameters$n_combinations + explanation_exact, + explanation_larger ) - # Test that all of them use the exact mode - expect_equal( - explanation_exact$internal$parameters$exact, - explanation_equal$internal$parameters$exact + # Explicitly check that exact mode is set and that n_combinations equals 2^ncol(x_explain_numeric) (32) + # Since all 3 explanation objects are equal (per the above test) it suffices to do this for explanation_exact + expect_true( + explanation_exact$internal$parameters$exact ) expect_equal( - explanation_exact$internal$parameters$exact, - explanation_larger$internal$parameters$exact + explanation_exact$internal$parameters$n_combinations, + 2^ncol(x_explain_numeric) ) - # Test that they have the same Shapley kernel weights - expect_equal( - explanation_exact$internal$objects$X$shapley_weight, - explanation_equal$internal$objects$X$shapley_weight - ) - expect_equal( - explanation_exact$internal$objects$X$shapley_weight, - explanation_larger$internal$objects$X$shapley_weight - ) + }) test_that("Correct dimension of S when sampling combinations with groups", { From 14acadc7bb332d68ea4592adb906e817c5193a2c Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 5 Sep 2023 11:23:13 +0200 Subject: [PATCH 25/56] simplifies comment --- R/approach.R | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/R/approach.R b/R/approach.R index e2a02f77c..271d0b4ca 100644 --- a/R/approach.R +++ b/R/approach.R @@ -80,12 +80,8 @@ prepare_data <- function(internal, index_features = NULL, ...) { # Check if the user provided one or several approaches. if (length(approach) > 1) { - # Figure out which approach we should use for the provided `index_features` (i.e., coalition indices). - # We can use that the function `create_S_batch_new()` in setup_computation.R, which creates - # the batches of coalitions, always ensures that the index_features (i.e., the coalitions) in - # each batch of them are using the same approach. Meaning that we can figure out which approach - # the first value in `index_features` is connected to, and then use that approach to generate - # the Monte Carlo samples data. + # Picks the relevant approach from the internal$objects$X table which list the unique approach of the batch + # matches by index_features class(this_class) <- internal$objects$X[id_combination == index_features[1], approach] } else { # Only one approach for all coalitions sizes From 0f617a4ebc1ab0cd208c808601df91abc0ebcc04 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 5 Sep 2023 11:50:37 +0200 Subject: [PATCH 26/56] comb files ok --- .../_snaps/output/output_lm_numeric_comb1.rds | Bin 4420 -> 4417 bytes .../_snaps/output/output_lm_numeric_comb2.rds | Bin 4649 -> 4647 bytes .../_snaps/output/output_lm_numeric_comb3.rds | Bin 4333 -> 4338 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds index de7b290f700c8c0172c5272eee9b684fdec28027..d81f9b74d458362710f62bd985d167cf736a99a7 100644 GIT binary patch literal 4417 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb3.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb3.rds index d41ea0cb8b23a48de5d99be23a6ff5f1f6e546a1..b071334309d34b70cec23f7923bd2f433c228552 100644 GIT binary patch literal 4338 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 literal 4333 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 b4;^rNXow{Ti`!y$($M}JaX9C#%ryW2Ai>j6 From b7d4402908046676d85a791739971cb8c22f9049 Mon Sep 17 00:00:00 2001 From: LHBO Date: Wed, 6 Sep 2023 17:10:33 +0200 Subject: [PATCH 27/56] Updated bug in independence approach related to categorical features which caused shapr to crash later. Added comments when I debuged to understand what was going on. I have added some comments about some stuff I did no understand/agree with. Discuss with Martin and correct this before merge. --- R/approach_independence.R | 82 ++++++++++++++++++++++++++++++++------- 1 file changed, 67 insertions(+), 15 deletions(-) diff --git a/R/approach_independence.R b/R/approach_independence.R index e3b50dd44..f09c58a7d 100644 --- a/R/approach_independence.R +++ b/R/approach_independence.R @@ -10,9 +10,15 @@ setup_approach.independence <- function(internal, ...) { #' @rdname prepare_data #' @export prepare_data.independence <- function(internal, index_features = NULL, ...) { + # This function generates the MC samples for an observation Xs* by extracting all the feature values + # Xsbar' from another observation in the training data and splicing the two observations together + # to form the final imputed MC sample used when estimating the contribution function in shapr. + + # Make copy of the data.tables of the data x_train0 <- copy(internal$data$x_train) x_explain0 <- copy(internal$data$x_explain) + # Extract relevant parameters feature_specs <- internal$objects$feature_specs n_samples <- internal$parameters$n_samples n_train <- internal$parameters$n_train @@ -21,17 +27,28 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { X <- internal$objects$X S <- internal$objects$S + # Check if user did not provided which feature combinations/coalitions to work on if (is.null(index_features)) { + # Use all feature combinations/coalitions index_features <- X[, .I] } + # Extract the relevant feature combinations/coalitions + # Set `drop = FALSE` to ensure that `S0` is a matrix. + S0 <- S[index_features, , drop = FALSE] + + # Get the categorical features non_numeric_features <- feature_specs$labels[feature_specs$classes != "numeric"] + # Get the levels of the categorical features level_list <- lapply(x_train0[, .SD, .SDcols = non_numeric_features], FUN = levels) - S0 <- S[index_features, , drop = FALSE] - + # Check if we have any categorical features if (length(non_numeric_features) > 0) { + # We have categorical features and we convert them to to rather be integers starting + # from 1. I.e., a categorical features which three levels `small`, `medium`, `large` + # will be encoded as `1`, `2`, and `3`, respectively. + # Apply this encodining to the training data and explicands x_train0[, (non_numeric_features) := lapply(.SD, function(x) { as.integer(x) }), @@ -44,22 +61,39 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { ] } + # We can now convert the data.tables to matrices as all entries are numeric. x_train0_mat <- as.matrix(x_train0) x_explain0_mat <- as.matrix(x_explain0) + # Get coalition indices. + # We repeat each coalition index `min(n_samples, n_train)` times. We use `min` + # as we cannot sample `n_samples` unique indices if `n_train` is less than `n_samples`. index_s <- rep(seq_len(nrow(S0)), each = min(n_samples, n_train)) - w <- 1 / n_samples # Yes, not n_samples0 - - n_col <- n_explain + # TODO: remove comment before merge with master + # MARTIN DECIDES WHAT TO DO HERE. + # Why is not w = 1 / min(n_samples, n_train)? + # But in the end it does not matter as the weights are identical + # for all MC samples when using the independence approach, so we do not need + # it. Because the weighted mean in the MC integration is just regular mean when the weights are the same. + # However, shapr needs to have a weight column. So we might as well just + # set it to 1. + w <- 1 / n_samples # Yes, not n_samples0 ?? + + # Creat a list to store the MC samples, where ith entry is associated with ith explicand dt_l <- list() - for (i in seq(n_col)) { + + # Iterate over the explicands + for (i in seq(n_explain)) { + # Extract the ith explicand in matrix form x_explain00_mat <- x_explain0_mat[i, , drop = FALSE] - # sampling index_xtrain + # Sample the indices of the training observations we are going to splice the explicand with + # and replicate these indices by the number of coalitions. index_xtrain <- c(replicate(nrow(S0), sample(x = seq(n_train), size = min(n_samples, n_train), replace = FALSE))) - # Generate data used for prediction + # Generate data used for prediction. This splices the explicand with + # the other sampled training observations for all relevant coalitions. dt_p <- observation_impute_cpp( index_xtrain = index_xtrain, index_s = index_s, @@ -71,24 +105,42 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { # Add keys dt_l[[i]] <- data.table::as.data.table(dt_p) data.table::setnames(dt_l[[i]], feature_specs$labels) - dt_l[[i]][, id_combination := index_s] - dt_l[[i]][, w := w] # IS THIS NECESSARY? + dt_l[[i]][, id_combination := index_features[index_s]] + dt_l[[i]][, w := w] # IS THIS NECESSARY? See my comment above. + # TODO: remove before merge + # Could just use `dt_l[[i]][, w := 1]`. Verified that we get the same Shapley values dt_l[[i]][, id := i] - if (!is.null(index_features)) dt_l[[i]][, id_combination := index_features[id_combination]] + # TODO: remove comment if Martin agrees + # WHY DO YOU TEST HERE? (caps so that it was easier for you to spot) + # Because `index_features` will never be `NULL` (as we ensure that above), so we will always overwrite + # id_combination in the old code version. We can rather specify `id_combination` directly as done in + # the new version of the code + # dt_l[[i]][, id_combination := index_s] + # if (!is.null(index_features)) dt_l[[i]][, id_combination := index_features[id_combination]] } - + # Combine the list of data.tables together to a single data.table dt <- data.table::rbindlist(dt_l, use.names = TRUE, fill = TRUE) + # Check if we have any categorical features if (length(non_numeric_features) > 0) { + # We have categorical features and we have go from the integer encoding applied + # above back to the original categories/levels. + + # Iterate over the categorical features for (this in non_numeric_features) { + # We extract the categories/levels for `this` categorical features this_levels <- level_list[[this]] - dt[, (this) := as.factor(get(this))] - levels(dt[[this]]) <- this_levels + + # Then we convert `this` from integers to a factor where we specify that the `levels` + # go from 1 to the number of levels/categories (i.e., the max integer). We need to + # specify this in case not all the levels are presents in `dt` which can happen for rare + # levels. We set the `labels` for each of the `levels` to be the original categories + dt[, (this) := factor(get(this), levels = seq(length(this_levels)), labels = this_levels)] } } - + # Return the final data.table return(dt) } From c28a264fefe138a42fdb3ea978144a484c961471 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 5 Sep 2023 11:50:37 +0200 Subject: [PATCH 28/56] Updated bug in independence approach related to categorical features which caused shapr to crash later. Added comments when I debuged to understand what was going on. I have added some comments about some stuff I did no understand/agree with. Discuss with Martin and correct this before merge. --- R/approach_independence.R | 82 ++++++++++++++---- .../_snaps/output/output_lm_numeric_comb1.rds | Bin 4420 -> 4417 bytes .../_snaps/output/output_lm_numeric_comb2.rds | Bin 4649 -> 4647 bytes .../_snaps/output/output_lm_numeric_comb3.rds | Bin 4333 -> 4338 bytes 4 files changed, 67 insertions(+), 15 deletions(-) diff --git a/R/approach_independence.R b/R/approach_independence.R index e3b50dd44..f09c58a7d 100644 --- a/R/approach_independence.R +++ b/R/approach_independence.R @@ -10,9 +10,15 @@ setup_approach.independence <- function(internal, ...) { #' @rdname prepare_data #' @export prepare_data.independence <- function(internal, index_features = NULL, ...) { + # This function generates the MC samples for an observation Xs* by extracting all the feature values + # Xsbar' from another observation in the training data and splicing the two observations together + # to form the final imputed MC sample used when estimating the contribution function in shapr. + + # Make copy of the data.tables of the data x_train0 <- copy(internal$data$x_train) x_explain0 <- copy(internal$data$x_explain) + # Extract relevant parameters feature_specs <- internal$objects$feature_specs n_samples <- internal$parameters$n_samples n_train <- internal$parameters$n_train @@ -21,17 +27,28 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { X <- internal$objects$X S <- internal$objects$S + # Check if user did not provided which feature combinations/coalitions to work on if (is.null(index_features)) { + # Use all feature combinations/coalitions index_features <- X[, .I] } + # Extract the relevant feature combinations/coalitions + # Set `drop = FALSE` to ensure that `S0` is a matrix. + S0 <- S[index_features, , drop = FALSE] + + # Get the categorical features non_numeric_features <- feature_specs$labels[feature_specs$classes != "numeric"] + # Get the levels of the categorical features level_list <- lapply(x_train0[, .SD, .SDcols = non_numeric_features], FUN = levels) - S0 <- S[index_features, , drop = FALSE] - + # Check if we have any categorical features if (length(non_numeric_features) > 0) { + # We have categorical features and we convert them to to rather be integers starting + # from 1. I.e., a categorical features which three levels `small`, `medium`, `large` + # will be encoded as `1`, `2`, and `3`, respectively. + # Apply this encodining to the training data and explicands x_train0[, (non_numeric_features) := lapply(.SD, function(x) { as.integer(x) }), @@ -44,22 +61,39 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { ] } + # We can now convert the data.tables to matrices as all entries are numeric. x_train0_mat <- as.matrix(x_train0) x_explain0_mat <- as.matrix(x_explain0) + # Get coalition indices. + # We repeat each coalition index `min(n_samples, n_train)` times. We use `min` + # as we cannot sample `n_samples` unique indices if `n_train` is less than `n_samples`. index_s <- rep(seq_len(nrow(S0)), each = min(n_samples, n_train)) - w <- 1 / n_samples # Yes, not n_samples0 - - n_col <- n_explain + # TODO: remove comment before merge with master + # MARTIN DECIDES WHAT TO DO HERE. + # Why is not w = 1 / min(n_samples, n_train)? + # But in the end it does not matter as the weights are identical + # for all MC samples when using the independence approach, so we do not need + # it. Because the weighted mean in the MC integration is just regular mean when the weights are the same. + # However, shapr needs to have a weight column. So we might as well just + # set it to 1. + w <- 1 / n_samples # Yes, not n_samples0 ?? + + # Creat a list to store the MC samples, where ith entry is associated with ith explicand dt_l <- list() - for (i in seq(n_col)) { + + # Iterate over the explicands + for (i in seq(n_explain)) { + # Extract the ith explicand in matrix form x_explain00_mat <- x_explain0_mat[i, , drop = FALSE] - # sampling index_xtrain + # Sample the indices of the training observations we are going to splice the explicand with + # and replicate these indices by the number of coalitions. index_xtrain <- c(replicate(nrow(S0), sample(x = seq(n_train), size = min(n_samples, n_train), replace = FALSE))) - # Generate data used for prediction + # Generate data used for prediction. This splices the explicand with + # the other sampled training observations for all relevant coalitions. dt_p <- observation_impute_cpp( index_xtrain = index_xtrain, index_s = index_s, @@ -71,24 +105,42 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { # Add keys dt_l[[i]] <- data.table::as.data.table(dt_p) data.table::setnames(dt_l[[i]], feature_specs$labels) - dt_l[[i]][, id_combination := index_s] - dt_l[[i]][, w := w] # IS THIS NECESSARY? + dt_l[[i]][, id_combination := index_features[index_s]] + dt_l[[i]][, w := w] # IS THIS NECESSARY? See my comment above. + # TODO: remove before merge + # Could just use `dt_l[[i]][, w := 1]`. Verified that we get the same Shapley values dt_l[[i]][, id := i] - if (!is.null(index_features)) dt_l[[i]][, id_combination := index_features[id_combination]] + # TODO: remove comment if Martin agrees + # WHY DO YOU TEST HERE? (caps so that it was easier for you to spot) + # Because `index_features` will never be `NULL` (as we ensure that above), so we will always overwrite + # id_combination in the old code version. We can rather specify `id_combination` directly as done in + # the new version of the code + # dt_l[[i]][, id_combination := index_s] + # if (!is.null(index_features)) dt_l[[i]][, id_combination := index_features[id_combination]] } - + # Combine the list of data.tables together to a single data.table dt <- data.table::rbindlist(dt_l, use.names = TRUE, fill = TRUE) + # Check if we have any categorical features if (length(non_numeric_features) > 0) { + # We have categorical features and we have go from the integer encoding applied + # above back to the original categories/levels. + + # Iterate over the categorical features for (this in non_numeric_features) { + # We extract the categories/levels for `this` categorical features this_levels <- level_list[[this]] - dt[, (this) := as.factor(get(this))] - levels(dt[[this]]) <- this_levels + + # Then we convert `this` from integers to a factor where we specify that the `levels` + # go from 1 to the number of levels/categories (i.e., the max integer). We need to + # specify this in case not all the levels are presents in `dt` which can happen for rare + # levels. We set the `labels` for each of the `levels` to be the original categories + dt[, (this) := factor(get(this), levels = seq(length(this_levels)), labels = this_levels)] } } - + # Return the final data.table return(dt) } diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds index de7b290f700c8c0172c5272eee9b684fdec28027..d81f9b74d458362710f62bd985d167cf736a99a7 100644 GIT binary patch literal 4417 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb3.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb3.rds index d41ea0cb8b23a48de5d99be23a6ff5f1f6e546a1..b071334309d34b70cec23f7923bd2f433c228552 100644 GIT binary patch literal 4338 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 literal 4333 zcmV@HONQqJjutwy%z&B09_$9E1)qD99ozf}#irF32K+ATU7xs(QD& zU%zyQaESkV{_n%heRa3G_g2-d_v$?+hj1LH;?xQSr_$g{PBU>rLHZy}i>3?_x5E%Y z+9-d}$v%d)D8iC`L$e5C&_j@tIbh`z4N6ukQIf*JB{R8 zCAqf9@^u$O(ad?|%>e{+zJmT_!GujQp0jluy)8X4)&SB<(oV zWIS@<;%vTYRK>;Zr!%jj*@_GkOec+=>NsU`Je!U)bJiR@wvni-4;ayKc_v~@Z zKGSD>q$vJ%{P%G$@Y}!gEPQtLE3AKJpXoC`D%H-5UwD3oY?Z0X%~ddXN*Gj)Oe6@4 zuoWK-a&0ugZDfWm5)G=<(M5#1?I)}06e_iu#vFbc;Db5N#kDY^Q;IjCAs z;E@dS{GLaSc&PAz$wW5i1iRf~6AVnez1?9fHyd1Ln^j+Dbl89#VbvRKRWr?2fpDCx zqe_Qu4(m18s&@)ic8k&JBg_awxMZV}APp4O^&Ieg7jksH0Q^ppeyRnFzDlT(vSWN~r%Q0Sq`XKU&tR*@nk-|X zY%|TMn!^UtOJbtFom~m{fNTdNJ5~|NDuxpnzQPj{?`Von_!{5VaAz^3kkBwp!%&T3 z3x@MpW(dee;r2NUHTXIdLkzyQW84Mftr!ks*oom6Oe1|Q!MH2N$1u*q_*<~u3qv7> zQYdMULI2w@yoY7)C5r>Y3JmKpGy;Bwlrs!&45=8%g4!(l$bE+Ou#O@ZLmGx~(7B2s z69c}NBlWZ6< zV7D0abYcz_2y${BfW&XWuo%N(3?E^L$FLFN*$sCA#P0@todCJ9puXbvkK)C>8Y!Wj z0_|?lPJlMU>3hjvhUId}vV3-Lq1{t94$LnWk9<7Xcrt#b ztUnen^Z#C%T#5{bf;`Kk+UkSDUZE^*_4UIcoiuN=@Lcq)eB7)EeneJKWg zc3l9z;d;ak#V}st+Y}7zhA+$-HSZgPPU!+|IF%Z3pV24}_;A4@*mpqU!h8Rek z`Jh(_z7CQ2SO(W+V3)}AAYTIU7lSWFV80mp9V*eC3cAywpAzVo`7l8;Ze))m`x@CZ zf&myUH~^hpYb7)y(++5i-cG_}b~F-@>S`p{K@xp!0No%7UFrkVk@K}O-=rYzU+S~G zA8E{ie361QXHt3)*E}DL){gU!o%s?h>5Ij{#*OTw9WW$-9(fc_;>6Pke1Aa?K_Wnp z+}5i>p0vY&M`WWVakR%k_G+@3#)2N<>p0&Nd?LsMflLhW6ws#@+MU54E%X}!adhH* zkL~2T3&f&@zQTbP26C~S?^HnvJ|=(+J9%L_iv~R%_?RH^Q3p9_54MtkPvqjEf8s|R zKxeS2gt%hBew-x!aEV+L#H|C_Fz_)({|InFnKq@Zjis9Fi?03h{)%_%vAv@rzg zgY-?-XmWN&{alg|ez&+^-WIwWw;xb^;DjL-LS+-Y;TjOCpF zTV}aO;yosrqfPuz9?#U5KECC~<*l;zol=TdYhI@Kf@&be`&JhcYzn))Y=n7dWKMqh zNm33M{8M!_ynCQoQboCn>HE(^9-cm`LSqWn)3^3f0RxaDcX-YrmFa%i=VO zUq4+<<@>ET3-%g8?p3Ono;H=X2cp>&S1;M(C;zT6h2k}*9}(>?`GD#Ty>gni%lF@6 z{?qot(0__{7AI4jjm!jpuHNsVdb!mnM~vPXnRLEe8jtDEoZpv4@!^T%-D@HvW83en zC%Dru35RJrvFsfxzjw(XDtEBk6w1FGzm~Q)?CM3^-%QG<@?nd*QTc}2`zilGrjGKj zMf^nhii@J1&!%ms?RGB?qVlh6@1yju*L+Fke_YX>;!AUFR4(nSM9TjVjV1EQ?ca`} z{2S*-Q~E#t*n#5B%lA|Ik@~+-J@uBynSI*kPCP~BnihOS<*p|!rR}4=XVUhq1It)` zX#1k=eahc|V>xY~Sx4>1CI!!>^iQJB_}PzdoJDcycReV7x3#mF=gXI<{<#pXpL}@S zDoVfUdO#e9V<$y=&Nu9*ZVA9T<94i-Pi^gAOZINpPiy(D^}DU* z@05SLe(sciJNliDLu>uN+q|^&YpXo8RlBX?zSH&E)_J&F`MZtV|2f95MkaIK^I7i! zHQ}+BT=FB&WZ;vd&DI`&20GRZ2c1?PjRri}RrFyOec448*YeS__meHB-DvPWt4wAW zlh_6O08Lw}hbNO}pE0Q+!sKR8yzB{62RH_BEZ{DHlL2=HoB}uvF#9~9C*WRyGXQ4- z?gO|l;4HxKX)WpxcmUvmfCm8{40s6Op@4@09u9Z}U>-0F81leArA9d?Uf)|&mxe}< zI(BIKk?E-Lhri65+kYI&nWp~q%VQT&?uzf0%#Z1WMg}$QT(bz@XTAD_eaD%t2*rQ9 zBk4Ik%AWo~{jLw|QL*;umI*IkM+J|^?NeV_ibnq9p9|mYxfzY=dc3B4aRVA#zJ2h4 z`EMfhdGf#a$}C3XK6=4?PH8}SIoIDCwN8!l>%V&R=M(p!QQvHvGpFgqSG8(<|M&?6nzDI?@haOm*_yQ^# zv#IOwl5Hr*-O=^@&6#NAjH5}LCzqkZ_al3(-qeW3%)c0W%6h$79tsM~V>@*#N4a$a zQa{~*<9~9~FWLMaZyxe`Cg-HzL@00N!Nu=HT}Qd=CK4+&qYD-Xd`P4z5#nqx5 z&Gy%~KNXI$zldm@-n$>leWk~>^<(ED^!?LQKHU5k%K5K1c6IsuCids*D;sN5(XavU zRYoiwi1<$~<^J{Kj}c$nsQe)+2@QX4(W)Ky#-b6AUCaBl?9V7WB38F~*R$9k!-X=_ zX2c)c_vjNpR-qvyEBh!y^3bqFFGcL!y}Vf-Mk=(=Ccc5tz_(VdPG9{E%Cm+Js5Wgx zxhJ|NyB6(5`TO^cx@Xhh(NJ4lm}2(NsGxA<*$0Y8p!}v8hi24HKqKD_z7@458x0tp zT=LeBU!(rLi_+E&4Mu}QUaIb};1tSDpIQ4({|`}qeE6CNr*A@e3sV|R^Y@`4+GSho zH=jd;&VBIAys%g_Yb0JG(7=Bim9H*~K|_U=i!CqzgyY_8GF|D6^50#v zd~tLs>i>sN*T>qlXwdP(&Sz0aSqW1A>k}2b-XysC==;dpeP!*e|G_h$Huczhexo6W zz%|%Ic$4MF)amujj(6A_ua;gLvQRbUF5j2K5x61!p18Rhi!Q`2kX*Qo4)2%ABtvWi zu+4nXXmEMI9~Qqq=6nwnDz^OD^lxGKRd=4Y7T;!i&(x{~%N*~KTM+w?JM6Tbe7x;@ b4;^rNXow{Ti`!y$($M}JaX9C#%ryW2Ai>j6 From 7971eece5b75f6e4173e144eaa941f6c60cfd3fe Mon Sep 17 00:00:00 2001 From: LHBO Date: Wed, 6 Sep 2023 17:25:14 +0200 Subject: [PATCH 29/56] lint warning --- R/approach_independence.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/approach_independence.R b/R/approach_independence.R index f09c58a7d..f82f8fcbc 100644 --- a/R/approach_independence.R +++ b/R/approach_independence.R @@ -137,7 +137,7 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { # go from 1 to the number of levels/categories (i.e., the max integer). We need to # specify this in case not all the levels are presents in `dt` which can happen for rare # levels. We set the `labels` for each of the `levels` to be the original categories - dt[, (this) := factor(get(this), levels = seq(length(this_levels)), labels = this_levels)] + dt[, (this) := factor(get(this), levels = seq_along(this_levels), labels = this_levels)] } } From c35e0bcdd6389c115ed6ee210c4e10a7966c2f2a Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 7 Sep 2023 09:38:03 +0200 Subject: [PATCH 30/56] Lint --- R/setup.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/setup.R b/R/setup.R index 5f4cec009..dcd56be1e 100644 --- a/R/setup.R +++ b/R/setup.R @@ -382,7 +382,8 @@ get_extra_parameters <- function(internal) { internal$parameters$n_approaches <- length(internal$parameters$approach) # Remove the last approach as `explain` forces the user to specify the last approach # even if it is not used as all variables are conditioned on and no estimation is needed. - internal$parameters$n_unique_approaches <- length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) + internal$parameters$n_unique_approaches <- + length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) } else { internal$parameters$n_approaches <- 1 internal$parameters$n_unique_approaches <- 1 From cb15629c0308eed937ee774a4500bf615e574f2e Mon Sep 17 00:00:00 2001 From: LHBO Date: Thu, 7 Sep 2023 09:42:12 +0200 Subject: [PATCH 31/56] lint --- tests/testthat/test-setup.R | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index cbaaaee3a..b86686b97 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1586,7 +1586,6 @@ test_that("different n_batches gives same/different shapley values for different timing = FALSE ) - # Difference in the objects (n_batches and related) expect_false(identical( explain.empirical_n_batches_5, @@ -1598,7 +1597,6 @@ test_that("different n_batches gives same/different shapley values for different explain.empirical_n_batches_10$shapley_values ) - # approach "ctree" is seed dependent explain.ctree_n_batches_5 <- explain( model = model_lm_numeric, @@ -1782,8 +1780,6 @@ test_that("the used number of batches mathces the provided `n_batches` for combi length(explanation_3$internal$objects$S_batch)) }) - - test_that("setting the seed for combined approaches works", { # Check that setting the seed works for a combination of approaches # Here `n_batches` is set to `4`, so one batch for each method, @@ -1833,7 +1829,6 @@ test_that("setting the seed for combined approaches works", { expect_equal(explanation_combined_3, explanation_combined_4) }) - test_that("counting the number of unique approaches", { # Test several combinations of combined approaches and check that the number of # counted unique approaches is correct. From d1a19b33d9834beaa52ebfe4ece30bb8b7d97e15 Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 9 Sep 2023 07:21:40 +0200 Subject: [PATCH 32/56] updated test files after accepting new values --- tests/testthat/_snaps/output.md | 30 +++++++++--------- .../_snaps/output/output_lm_mixed_comb.rds | Bin 4110 -> 4117 bytes 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/testthat/_snaps/output.md b/tests/testthat/_snaps/output.md index 0a97ed511..02bf05f21 100644 --- a/tests/testthat/_snaps/output.md +++ b/tests/testthat/_snaps/output.md @@ -139,30 +139,30 @@ Code (out <- code) Output - none Solar.R Wind Temp Month Day - 1: 42.44 -8.580 7.999 14.3608 0.3719 -1.5505 - 2: 42.44 5.078 -5.014 -12.0644 -0.8963 -0.9825 - 3: 42.44 7.276 -25.448 0.3953 -0.3868 0.5959 + none Solar.R Wind Temp Month Day + 1: 42.44 -8.809 9.149 15.503 -2.8888 -0.3522 + 2: 42.44 3.146 -4.566 -7.727 -4.3771 -0.3559 + 3: 42.44 6.655 -22.559 -1.645 0.5634 -0.5832 # output_lm_numeric_comb2 Code (out <- code) Output - none Solar.R Wind Temp Month Day - 1: 42.44 -8.957 9.400 17.061 -1.4678210 -3.435 - 2: 42.44 5.307 -5.932 -8.126 -2.9311283 -2.198 - 3: 42.44 6.913 -20.969 -4.539 -0.0004225 1.026 + none Solar.R Wind Temp Month Day + 1: 42.44 -9.302 9.454 17.2106 -1.767 -2.9936 + 2: 42.44 5.189 -5.352 -8.5382 -2.854 -2.3245 + 3: 42.44 6.388 -22.748 0.0177 -1.441 0.2159 # output_lm_numeric_comb3 Code (out <- code) Output - none Solar.R Wind Temp Month Day - 1: 42.44 -4.537 8.269 17.517 -5.581 -3.066 - 2: 42.44 2.250 -3.345 -5.232 -5.581 -1.971 - 3: 42.44 3.708 -18.610 -1.440 -2.541 1.316 + none Solar.R Wind Temp Month Day + 1: 42.44 -6.940 10.773 12.187 -3.692 0.27495 + 2: 42.44 2.628 -2.656 -8.569 -5.313 0.03032 + 3: 42.44 5.827 -22.183 3.440 -2.954 -1.69839 # output_lm_mixed_independence @@ -190,9 +190,9 @@ (out <- code) Output none Solar.R Wind Temp Day Month_factor - 1: 42.44 -9.153 11.492 13.340 -0.2291 -4.866 - 2: 42.44 3.936 -5.765 -6.403 -0.4462 -6.704 - 3: 42.44 6.129 -21.416 -7.208 1.5514 10.344 + 1: 42.44 -7.886 10.511 16.292 -0.9519 -7.382 + 2: 42.44 5.001 -4.925 -7.015 -1.0954 -7.349 + 3: 42.44 5.505 -20.583 -4.328 0.7825 8.023 # output_custom_lm_numeric_independence_1 diff --git a/tests/testthat/_snaps/output/output_lm_mixed_comb.rds b/tests/testthat/_snaps/output/output_lm_mixed_comb.rds index a7257e656b46f6d96852ba62d64ebdfc7d28a18e..7d6fd675c8307568a2d60c679244770996dc3c39 100644 GIT binary patch literal 4117 zcmV+w5bEzAiwFP!000001LZpncvQu;cmMJqviSjmAtag*8jJywND}gMXG0Po2@yz$ z^5?QiZjzPF?sj(*5)?}d%HLD|Rj4Rx!5_3f#D{$<+yI6L0x41{s37=w)lwmff(ixF znYm|n@7^qhlxX|D?#IcQIdjgLbI#11J2UrkUl7M}8cwTHaT*;ia=OWt#dl?4S|n|d zupfp#q>hTRPA_|F%}j!qj1BlL!7G0E*1N2|EpDk{q0`caqEzKeVp5w>KV9kG#=S4N zIAg7Ly}&5^K8GY^`PGN}M~VZ z1TRXR18Y<$2v0RzU4p}EvZOi%OPxcg!^D07*8qMrr-^nonJ-$v1E4pZ+dr2>VBLja z^@3f%f2=ja%`$k?q)}IqS@<~q2hmkwhzDP#_GO5JAFcCWbJwc}fxNP;W|Afm2qb=Bw~ohFdaiP zhV2+SG0!OAjllJD7+P>S7()~;+c757YzKx9F|=d2fN7+!H5lK4@kxx+G5!P|8tF|5b%I)J_!3WoiXEyM>^0vR2Q3ovfO7^gk%6o&a2Mo97D#$b9j#s-YTrP!(>Ar6y3C&~Cx zpm!o}(@QZ_A&5yQ0P(*D!)gpiG5j7w42HMBpM9{_iQS8FITm7LL21$=M=@*3Zyi!Y zJrU{&P>+Q=!*?AZzk?_R>Vu&^jH5pk4>$tklhf(18y~9=fc7CkXZ0wMXY`D%5C7(eUx4uzhd0cL)(y3$`37befzS)H{rdv6Dvpx|e5NL0izM&U<_qCY*@#r$La zFnPw${9^st|TW7q5utkn7ZkD#n4?#r#o@2OCe; zK3vfs^OxCwr-Cn0frEjc#ZhU$5;HkJMLbzMi=T2nfqu@DAIVxT!Eiq(<;rmw$~Y-c z;kC_;3wCK_bhWIF=~2l*E~}E2wK92)4_U2@F1LZnDBCp(+vFhc zUv9IqAGy!IY>|UJW^%fg>mCnAQ*++FGh1}BzQ6~s)2g3EXcjE&yvq(fs=HZXBr9aH zLKZ7zOR6;N4B}QPKZ_C$HQ|t-xmPPBdvMIw5*c5o>0Udpd7Z0z?-Y1Vv5_YOYQ*rl zv?+(X7xwT~Y~ExtB=M66!+05u=p=pig+(c!bXv(Hf2Bu1@(^GB_Z(s`&CF;27Ozuh zV2k@y>N)4>0Bd^NDz%q3Yf~dWqSpK)RlgrUdMpy|QTH|aJ(;*a!60kgiPTh05-IdU zZxP*h3Zas?(Vc8rHt>gK6VG|2Xm=X-1D*g_;bi+jwn8BwN3up3=h+^RM>f$*9?^Ya z36U)c*)p�NEOl$2i$4knKhs^dAYB=;b)ijhOt_OwIYeHPdq4Z`RZb8MQ)At&mmw zkXI}C)e3&Kf?uO(*C^VxoOcFRDf*Dpv_5D`S&a`qjSoI$ze-!>G$o%>R->TFw*YdT zO1dw8UwVA$SI)~&&a<`f)fUf5Ka~$q-z50jZutVO50Kj--*UbA1DQxuAS2q@yo#uCsGL^&{-u|B3#2&MZ!w!zI*m-X|HQMbbW$%+WUf ztFEr8zxm*rh*Md8>$VDtH|RD}{Iw>N;)5H;6WkDTac#c2J-nc(_B2U-ONt)&o%r(F zwMS4y%{`V(O1Ea(5+7rS(kobBdeSZ1>{-Z_^ZtpF8uAq<78#P`RA%&d_>o$2Dd@tv??8S4q$6 zc!~|kOz<&nM;DbF-F!NKTzhz2XF?K>=_@-Arc-=$@&xg@@bKuc_5}p@zYu$r)(2H> zqx=WfWKq5k6QV32Bk4IZ zeHX3!y^uxuH~W`R`lru*Lizu)eh9_i&a+Xzq~n8V`}?Sj@W+R3iK6XSI>%A^dk^=e z_?>kfl>YI8O;k?1eLmAq>)dC{C|}!>-&4NJaZl3viDA{We(lg&79U#w#tDV`^+(4A&ZG3h5np=gk6Aj4;^5DdY5P9wZBm>seoN)g1^IjNhYom_(yzK^O5bAFU_|& zQJQb1Ouq>8nTPqz!+aKDKJ(Ii&ZhiZ7Y-9)z3{MJL}|UG^3r-K=B4$L=w%OHk0Pu` z9@Zld>yh`YM}6@9ld^efy?61_dZ+6HulHHJwBE0Zp7pK|-gQO8Lq6f9eDWYK<&(W4 z(508Gyp#_wi&8%P0OVeg`dK}gm-3;D>W>*Y zU4(oKaz8+Si+ISlJmlLQi`(^wV=@9s{;ID%x|HIjNpDd6Nn!!TXFJ~^xFMx5K=J(0 z)S4SP&qs2FIA&u*P+sp2e-CvG5?Lv+FlyV;{+{+5=J2?Le zBb-UPec7c2L*u)hB?AEK0Y?Fj1`MACy1$UP18^eXB*5&8iJ^c~0H*>T4tNCMG{EVA z;d4ZEH{g+gGXZA-&IUXRa1P*HzX59M`j z-{&k{izZxX&3e`JIvVrN6Q?g-rKcxxgQ~IG5Vp}PxDb}fI6c%qaKZWF)85>)qg={A+^G>RZXbmgk{C;IWeec@7UI%=_WK` z`g_rp$xoy5ii;iDRewUI3EQ4{O}z`1o!W1nGb0d{k8>@t6egq6{R0P;+?9e1>)V!} zZFmY5Ka)GRb^8mb?31VUPjziXCG*!O{I#m1TO3MKk8BvW|9gbevvnsU0uUPWn~oPJ zI8fn+{;U1wFGu;~zI$Xx>wBnhXXwanuO*_ho7FRBfGt@~m?|`1bpgXyoa`$xmeNMuzcQ@A>8W{U~?Kxx{BHalD7d4Do9}fbxev zQaEMqoha+KqpCxyOHfYOTZeC-d8&IH$``3e&hLlP!agnzI{pkYTspnIYs*?xWS_qC z?U<8zel$mFDLD0fuR`HnxYL4}w8P2n)pT9e%1HG(B0z=!OII@M>&o?lS}?+ zM7i&$mhKLJ92L$P<6PNt2IX2ZOP8IWg!1218=?|(a6HR(>zQUYxo_k%F{;|1QODY%sY-7)L1TX^MLKPk8&&s}{TW<2rJ`*n%yD_f=kv zdZV%1#SVL~C3~^x^9i7CXwGwf(6HstrvG(@U(@rjUH6@(`!=oFWNC6=wgs^NzrZeX$v5PlSJpnKhmL4+ TFuyHkCw1*_`%_0*+A;tDiLEVj literal 4110 zcmV+p5b^IHiwFP!000001LYeDbW}z1&yhPJlY=9KkVs;XD?k#Cgpl8fNd$5T1i~RW z4w+9fFqs)=CNTk5ScxF80xF=eiyM?nSwKYago!9D3PfOKL2fr5i$FvK1Ua(Z{i|pG z{0u@Qy6)R~RI0nWs=BJWyMA~7&uD*+<5Zklq2N?rxX5{p9FfzbKcXhrHM zyMO)Sfz?w9e!ADRMuMMDnRb-5*LEtXE`07lA_|^*bJe7}64b6bUAWrz3#WYiwIeGU zGS}C(4Sw?CCKxALiRWA!fSUlnn$twPlFS!1;0Wl=%juupDzNSXv3kKG;6J8f z;Z7OcY2v6W$Sj_asY;KT()3Lrr9^*=SRyxquz#IOv*1`Klnuja(Glk*6 zwh$i_v1D{G&cwJDWAd0fg<%GU-eP>X2QWPa;|z>L#MmmrAP&PpC&~EXpm!K<(}*!t zAc#o=0P(*V!$J&)Fno$362n{I&&ROViQThtISOK9M2X@eN0Cd&Zz)njJr3%zP>+H- z!#(zp-(J)m>i0suCr5uM25>0IcS)kZCVZ?O0qvcE&g$VH&*;gUM0%9WKE}uNF@Dx> zCz+o605d;XUG6W73zKKY$zQWnp*(%tVc-MtGaKac!PZoX zjYUu{0=20*H%;sHbwzYN3hKgAPnR*U}KcT zMh(Ou7<5HLJK>9j{)rtC0PR7i68s7W{SgxXgCu;R;I{^N1Hr~{u}#IsjcuXT5Dza2 z&C3Iwl~od&8thU@=t@Z&)1#1pR8}D=t0nR(53*_rU1|f9k+-X4wn;(Sztm=VKT@AP z*&+pL%%pTR*EAlCrsUjxXSR4r`T`%^POIKVp+YdS^DaB|DEhEMUsmYH3jJ9jMO39? zXAq}K=~Ve%0qnP|8t1lG&7%lD&0<=Inaa!X5w-Z2RK0)w=&?vRN8QutH)rDh27|0}CQ{u5l1QN+dW-11QwS2p zwa#SAvVjjQn;6b5MLW~DH}Lqv3MbnKvK0yhIg&MkIoI}pJhF*i@`!E?ONeYq$d-X^ z0m#;XJjTgZfowOTq5m+zL@&p=Zp5UwW=hWUt(lr@db6gK$tY!VN|~(EgS=A4uaxmC zW&A2xyGqus=G-%|Le__rruIOS%c?x^sXXw>`<2@&rOEl^vML!(x&@Hxl+!)&d(z`c zzkFT>ajva}r?wbQ{3$$u@(#h%cFPl}J%H2>>6TLp{w)li`XGIiH5!wVP(7Ulg#TE4 z!rvBe457c@ExtoPnBSb3qsVyp;q5^q=iz0;FR9%A1;zgc?XCmyJC7tAc32M6&XXD8 z^D=v#b32TMTZ~O8b~# zC@Ezx7vyh+yy%OZTkPCV{R%tx|Du1cGmFh^wF`RA{Ujr|NZf~#Iabvleq7YM=4SHKL^s67^O*iz!`>u{4~-n^SRNA6E_g>Z!EG-_9isJ)MO!HUo<;pB-)FI7 zX#1teS809IuI{w{uTj~QKX5@T<)2;k5N+SrOGDeQw)&2?D=vt74vyPS>)x;Qr~GSu zhEV#6Vok+y$=@(6!S@Wyc3e!XEZrGNB9Yl`1nT1V+es#j4t z_0}0oKdp0L%%^;{b3UbfKSjSl>&JUep!J*kmazEH`UUe&+Fo~kDXpJbNA5rT{nc{%2yU_NJP3^@vU;2T{pY!)|;}44XE2ZDCKO&C9$$F8Vd5+fWKY!ef zKP2!=F^(lGsoe1+Pg1_u9*v;*^v;s>jD&!+XRl`Pz|R9e5Bv_`cS!jQjte~4!-G8z zu!jeG9Lyf6e(Wy~{yM;42l&e~es=GD{kn>We8P+QWGXM_lU)wTC%l+XZn){k z`HF{p<$!#}L%!l!zQX+eSJ#+$F(3Zq5cA=Fkb6z+XW_lPm=En#e`Mcr4#>A4cLn-; znumPLL%!WMdxz#gWU?R0UnTlOb19x1{|3cJ<1#5e+wdO2rQNf9WzP?l-cZK5PLkwg z9wT{N)UXG;>m{aPvxEmdzRzni;WTRIMR%YV0iyB}$SoyQ4I%#U!L%RXkJZ5qz=P3N87V8(zR za`Snox1%0zJw0C5D|)j+BG>e`m)#>fzZ|n!gkt9@Wi%^{Vg>dcoKK+^&LmB~>|!6* z#xyxg`U2Jf4hP&0Fnkv1{6eA=;5fkXfY}!lT>*CooB+5N;NE}}0Ve^5&k<1{zGq# zwxyovaN!9wFtE*t+ORB?H!gH$)}vu4@55b_kKQ*GCGPm-oW7_YrIi0MH)75+Xy_@& zk={?OLHP%--K^S!P@d+{E9*~eLHQrdu0MNBkMb{tznS{_5j1G|$+Wzg*HA&-{g3NU zq@!G4WpYk(2^zdQKK36IzD0R~dg1W%sojPtQ)c6qO6*>3%zG7 zKwD;{r>!+hW5!a&ke7+qe^=*5NOP-6; zdfOT!wv0iUZx;Bh%g6I8@c8P>>SgG`eMPBDYOE-wVdajDE^5^G-7%e?E&c}amLcPB zw6~&ceNkL?{ArYvd+e~PAsP+)CULjo$DXK9en!B8tPN;@b?3+-|J0(iPZDxJ44H?r zraWMKuJSZW{Ze&)^Wjb?eb=6Df6_mN?(e*6%J7+GC}-Ds%Z2uFDDAy**K=N|MEv3S z&n}IfBTGT*pTA47XiIhW-rC->dZMhJ^c&v(w5Y|-{kRvoU#!Fy!uu+>MvYe61WMN#h7>g79EL&U9dVokR}mg4*>IoNkXyR`5CkL88qiQ zKd9L9XVd={!>?+7*lzjG(s`R!p)-~{FWY?C|6gDix#Syi*DGs})5D8svNFGo1{-zl MKYZia``R)90B`t3$N&HU From a3c238b7a2d4baa720b145ad04c888c3be4d7f1b Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 9 Sep 2023 07:39:45 +0200 Subject: [PATCH 33/56] adjustments to comments and Lars' TODO-comments --- R/approach_independence.R | 38 +++++++++----------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/R/approach_independence.R b/R/approach_independence.R index f82f8fcbc..ba45b7e4b 100644 --- a/R/approach_independence.R +++ b/R/approach_independence.R @@ -11,7 +11,7 @@ setup_approach.independence <- function(internal, ...) { #' @export prepare_data.independence <- function(internal, index_features = NULL, ...) { # This function generates the MC samples for an observation Xs* by extracting all the feature values - # Xsbar' from another observation in the training data and splicing the two observations together + # Xsbar' from another observation in the training data and merging the two observations together # to form the final imputed MC sample used when estimating the contribution function in shapr. # Make copy of the data.tables of the data @@ -27,9 +27,8 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { X <- internal$objects$X S <- internal$objects$S - # Check if user did not provided which feature combinations/coalitions to work on if (is.null(index_features)) { - # Use all feature combinations/coalitions + # Use all feature combinations/coalitions (only applies if a single approach is used) index_features <- X[, .I] } @@ -43,12 +42,12 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { # Get the levels of the categorical features level_list <- lapply(x_train0[, .SD, .SDcols = non_numeric_features], FUN = levels) - # Check if we have any categorical features + # Check if we have any categorical features (to then apply a hack for the method to work) if (length(non_numeric_features) > 0) { - # We have categorical features and we convert them to to rather be integers starting - # from 1. I.e., a categorical features which three levels `small`, `medium`, `large` + # We have categorical features and we convert them to rather be integers starting + # from 1. I.e., a categorical feature which three levels `small`, `medium`, `large` # will be encoded as `1`, `2`, and `3`, respectively. - # Apply this encodining to the training data and explicands + # Apply this encoding to the training data and data to be explained x_train0[, (non_numeric_features) := lapply(.SD, function(x) { as.integer(x) }), @@ -61,7 +60,7 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { ] } - # We can now convert the data.tables to matrices as all entries are numeric. + # Convert the data.tables to matrices as all entries are numeric. x_train0_mat <- as.matrix(x_train0) x_explain0_mat <- as.matrix(x_explain0) @@ -69,16 +68,7 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { # We repeat each coalition index `min(n_samples, n_train)` times. We use `min` # as we cannot sample `n_samples` unique indices if `n_train` is less than `n_samples`. index_s <- rep(seq_len(nrow(S0)), each = min(n_samples, n_train)) - - # TODO: remove comment before merge with master - # MARTIN DECIDES WHAT TO DO HERE. - # Why is not w = 1 / min(n_samples, n_train)? - # But in the end it does not matter as the weights are identical - # for all MC samples when using the independence approach, so we do not need - # it. Because the weighted mean in the MC integration is just regular mean when the weights are the same. - # However, shapr needs to have a weight column. So we might as well just - # set it to 1. - w <- 1 / n_samples # Yes, not n_samples0 ?? + w0 <- 1 / min(n_samples, n_train) # The inverse of the number of samples being used in practice # Creat a list to store the MC samples, where ith entry is associated with ith explicand dt_l <- list() @@ -106,18 +96,8 @@ prepare_data.independence <- function(internal, index_features = NULL, ...) { dt_l[[i]] <- data.table::as.data.table(dt_p) data.table::setnames(dt_l[[i]], feature_specs$labels) dt_l[[i]][, id_combination := index_features[index_s]] - dt_l[[i]][, w := w] # IS THIS NECESSARY? See my comment above. - # TODO: remove before merge - # Could just use `dt_l[[i]][, w := 1]`. Verified that we get the same Shapley values + dt_l[[i]][, w := w0] dt_l[[i]][, id := i] - - # TODO: remove comment if Martin agrees - # WHY DO YOU TEST HERE? (caps so that it was easier for you to spot) - # Because `index_features` will never be `NULL` (as we ensure that above), so we will always overwrite - # id_combination in the old code version. We can rather specify `id_combination` directly as done in - # the new version of the code - # dt_l[[i]][, id_combination := index_s] - # if (!is.null(index_features)) dt_l[[i]][, id_combination := index_features[id_combination]] } # Combine the list of data.tables together to a single data.table From b0dd3bf01c55cbd4b3d9bf642d9bdfce26d63a4c Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 10 Sep 2023 21:55:17 +0200 Subject: [PATCH 34/56] update snapshot file after weight adjustment --- ..._numeric_independence_keep_samp_for_vS.rds | Bin 98554 -> 98555 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/testthat/_snaps/output/output_lm_numeric_independence_keep_samp_for_vS.rds b/tests/testthat/_snaps/output/output_lm_numeric_independence_keep_samp_for_vS.rds index 35b5d1dab1c06f91d43b8c1890b43a8c3d92272b..3def65ea4bbf75b35f662f13598922bd13d58db8 100644 GIT binary patch delta 91906 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�n}^oXNOqkqal6Ldb#r7 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%0D;r7Y#}VfP3V_z>}KQ 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�R&*R9 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 delta 91955 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%0ASa5*$jKkGqt& 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 I$B(fI06FwE761SM From 0988ace5b0128302b2508bc9d0df360268a0543e Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 10 Sep 2023 22:13:33 +0200 Subject: [PATCH 35/56] cleaned up doc --- R/approach.R | 26 ++------------------------ R/documentation.R | 4 ++++ 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/R/approach.R b/R/approach.R index 271d0b4ca..81c943622 100644 --- a/R/approach.R +++ b/R/approach.R @@ -3,10 +3,6 @@ #' The different choices of `approach` takes different (optional) parameters, #' which are forwarded from [explain()]. #' -#' @param internal List. Holds all parameters, data, functions and computed -#' objects used within [explain()]. -#' The list contains one or more of the elements `parameters`, `data`, `objects`, `output`. -#' #' @param ... `approach`-specific arguments. See below. #' #' @inheritParams default_doc_explain @@ -43,31 +39,13 @@ setup_approach.combined <- function(internal, ...) { #' Generate data used for predictions and Monte Carlo integration #' -#' @note -#' There is currently a warning when calling `roxygen2::roxygenise()`. -#' Warning message: -#' inheritParams failed in topic "prepare_data", "prepare_data.categorical", "prepare_data.copula", -#' "prepare_data.ctree", "prepare_data.empirical", "prepare_data.gaussian", -#' "prepare_data.independence", "prepare_data.timeseries", and "prepare_data.vaeac". -#' ✖ All parameters are already documented; none remain to be inherited. -#' -#' This occurred after Lars updated the code as he now documents all parameters here. This was not -#' the case before, as the roxygen had not been updated. Can solve this by removing, e.g., -#' `param ... Currently not used.` below, or remove rdname from the subfunctions and rather -# use inherateparams. -#' -#' -#' @param internal List. Holds all parameters, data, functions and computed objects used -#' within \code{\link[=explain]{explain()}}. The list contains one or more of the elements -#' `parameters`, `data`, `objects`, `output`. -#' @param index_features Positive integer vector. Specifies the indices of combinations to -#' apply to the present method. `NULL` means all combinations. Only used internally. -#' #' @param ... Currently not used. #' #' @return A data.table containing simulated data used to estimate #' the contribution function by Monte Carlo integration. #' +#' @inheritParams default_doc_explain +#' #' @export #' @keywords internal prepare_data <- function(internal, index_features = NULL, ...) { diff --git a/R/documentation.R b/R/documentation.R index b48718fae..79df05266 100644 --- a/R/documentation.R +++ b/R/documentation.R @@ -31,6 +31,10 @@ default_doc <- function() { #' Exported documentation helper function. #' #' @param internal Not used. +#' +#' @param index_features Positive integer vector. Specifies the indices of combinations to +#' apply to the present method. `NULL` means all combinations. Only used internally. +#' #' @keywords internal default_doc_explain <- function() { NULL From f790c22cf693acd9e09fb3eaf1798ac8515d6bbb Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 10 Sep 2023 22:14:05 +0200 Subject: [PATCH 36/56] rerun doc --- man/default_doc_explain.Rd | 3 +++ man/prepare_data.Rd | 23 +++++++++-------------- man/setup_approach.Rd | 3 ++- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/man/default_doc_explain.Rd b/man/default_doc_explain.Rd index 3893ddce2..a875a2468 100644 --- a/man/default_doc_explain.Rd +++ b/man/default_doc_explain.Rd @@ -8,6 +8,9 @@ default_doc_explain() } \arguments{ \item{internal}{Not used.} + +\item{index_features}{Positive integer vector. Specifies the indices of combinations to +apply to the present method. \code{NULL} means all combinations. Only used internally.} } \description{ Exported documentation helper function. diff --git a/man/prepare_data.Rd b/man/prepare_data.Rd index ac2fe8e00..097fef9b8 100644 --- a/man/prepare_data.Rd +++ b/man/prepare_data.Rd @@ -11,9 +11,9 @@ \alias{prepare_data.gaussian} \alias{prepare_data.independence} \alias{prepare_data.timeseries} -\title{Generate data used for predictions} +\title{Generate data used for predictions and Monte Carlo integration} \usage{ -prepare_data(internal, ...) +prepare_data(internal, index_features = NULL, ...) \method{prepare_data}{categorical}(internal, index_features = NULL, ...) @@ -30,23 +30,18 @@ prepare_data(internal, ...) \method{prepare_data}{timeseries}(internal, index_features = NULL, ...) } \arguments{ -\item{internal}{List. -Holds all parameters, data, functions and computed objects used within \code{\link[=explain]{explain()}} -The list contains one or more of the elements \code{parameters}, \code{data}, \code{objects}, \code{output}.} +\item{internal}{Not used.} -\item{...}{Currently not used.} - -\item{index_features}{Positive integer vector. Specifies the indices of combinations to apply to the present method. -\code{NULL} means all combinations. Only used internally.} +\item{index_features}{Positive integer vector. Specifies the indices of combinations to +apply to the present method. \code{NULL} means all combinations. Only used internally.} -\item{x}{Explainer object. See \code{\link[=explain]{explain()}} for more information.} - -\item{seed}{Positive integer. If \code{NULL} the seed will be inherited from the calling environment.} +\item{...}{Currently not used.} } \value{ -A data.table containing simulated data passed to prediction(). +A data.table containing simulated data used to estimate +the contribution function by Monte Carlo integration. } \description{ -Generate data used for predictions +Generate data used for predictions and Monte Carlo integration } \keyword{internal} diff --git a/man/setup_approach.Rd b/man/setup_approach.Rd index 137a8a0e8..86cb164bb 100644 --- a/man/setup_approach.Rd +++ b/man/setup_approach.Rd @@ -150,5 +150,6 @@ between these bounds. This is useful if the underlying time series are scaled between 0 and 1, for example.} } \description{ -The different choices of \code{approach} takes different (optional) parameters, which are forwarded from \code{\link[=explain]{explain()}}. +The different choices of \code{approach} takes different (optional) parameters, +which are forwarded from \code{\link[=explain]{explain()}}. } From f9116db9908ecc6dda16cf2047e682b90b7a2c6d Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 10 Sep 2023 22:41:05 +0200 Subject: [PATCH 37/56] style --- R/approach.R | 1 - tests/testthat/test-setup.R | 2 -- 2 files changed, 3 deletions(-) diff --git a/R/approach.R b/R/approach.R index 81c943622..79ca95e1b 100644 --- a/R/approach.R +++ b/R/approach.R @@ -49,7 +49,6 @@ setup_approach.combined <- function(internal, ...) { #' @export #' @keywords internal prepare_data <- function(internal, index_features = NULL, ...) { - # Extract the used approach(es) approach <- internal$parameters$approach diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 760d1656c..d4137e3d6 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1428,8 +1428,6 @@ test_that("Shapr with `n_combinations` >= 2^m uses exact Shapley kernel weights" explanation_exact$internal$parameters$n_combinations, 2^ncol(x_explain_numeric) ) - - }) test_that("Correct dimension of S when sampling combinations with groups", { From e0d925dc2208445769635503a5cded54953a5306 Mon Sep 17 00:00:00 2001 From: LHBO Date: Tue, 12 Sep 2023 10:55:00 +0200 Subject: [PATCH 38/56] Changed to `n_batches = 10` in the combined approaches, as the previous value (`n_batches = 1`) is not allowed anymore as it is lower than the number of unique used approaches. --- tests/testthat/test-output.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-output.R b/tests/testthat/test-output.R index 9cf0f7977..4c5b848bc 100644 --- a/tests/testthat/test-output.R +++ b/tests/testthat/test-output.R @@ -213,7 +213,7 @@ test_that("output_lm_numeric_comb1", { x_train = x_train_numeric, approach = c("gaussian", "empirical", "ctree", "independence", "empirical"), prediction_zero = p0, - n_batches = 1, + n_batches = 10, timing = FALSE ), "output_lm_numeric_comb1" @@ -228,7 +228,7 @@ test_that("output_lm_numeric_comb2", { x_train = x_train_numeric, approach = c("ctree", "copula", "independence", "copula", "empirical"), prediction_zero = p0, - n_batches = 1, + n_batches = 10, timing = FALSE ), "output_lm_numeric_comb2" @@ -243,7 +243,7 @@ test_that("output_lm_numeric_comb3", { x_train = x_train_numeric, approach = c("independence", "empirical", "gaussian", "empirical", "gaussian"), prediction_zero = p0, - n_batches = 1, + n_batches = 10, timing = FALSE ), "output_lm_numeric_comb3" @@ -292,7 +292,7 @@ test_that("output_lm_mixed_comb", { x_train = x_train_mixed, approach = c("ctree", "independence", "ctree", "independence", "independence"), prediction_zero = p0, - n_batches = 1, + n_batches = 10, timing = FALSE ), "output_lm_mixed_comb" From 0b146bc9d3d8d35bf29c4c31dbbc29531ed44b3e Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 16 Nov 2023 10:59:04 +0100 Subject: [PATCH 39/56] accept OK test changes --- .../forecast_output_ar_numeric.rds | Bin 2155 -> 2174 bytes .../forecast_output_arima_numeric.rds | Bin 17568 -> 17590 bytes .../forecast_output_arima_numeric_no_lags.rds | Bin 2543 -> 2565 bytes .../forecast_output_arima_numeric_no_xreg.rds | Bin 1939 -> 1957 bytes ...st_output_forecast_ARIMA_group_numeric.rds | Bin 3563 -> 3579 bytes tests/testthat/_snaps/setup.md | 4 ++-- 6 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/_snaps/forecast-output/forecast_output_ar_numeric.rds b/tests/testthat/_snaps/forecast-output/forecast_output_ar_numeric.rds index 2a8452c145a91cfc41e835a544ccf87f99bd94fd..4d0bea08cdb703da4b0668d5f364a84ccbbf0b9c 100644 GIT binary patch literal 2174 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 UQw-lr{38JW5B3`^EZhnK0Ad;<4FCWD delta 16852 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 diff --git a/tests/testthat/_snaps/forecast-output/forecast_output_arima_numeric_no_lags.rds b/tests/testthat/_snaps/forecast-output/forecast_output_arima_numeric_no_lags.rds index 34418f81a53da82aa2544e3b14fb200afbf4f9d4..cbf805d66e3d50694672bdcd7c3e545d8c4a4f43 100644 GIT binary patch literal 2565 zcmV+g3i|aQiwFP!000001MM4aY#dkd-QM}`{E2HvA!!@xeD#B*Cbmd+q>?rlXH}$k*HKv0u>rsNCgt0{Gz|wNG%dl&qz>JKv7WO2Y+aP z^&iwikhHXld2e@S_wBnq+i`Gf(5*C{do%Oq&Agd6`|+NK8VDg#5{pDgw2u8Gbpyxu zJ-CC>+8u_A;|!Vszr^6>5RCi?fC3N&XyN>Hf62K-Z2b6Ft2ws6H1jUU`RB&J%CU9% zpPR7X%!YS{*S^#{In(;RtBoJMd|{^TcUNBDd3MbV`QbCWcD$IIsc+mo+H2;@*S}c) zWqK$HvY&)nSHzhwh6In6=?6(BZbHCyYnwXqxxP{vKB zQBrV6r*7EPG_+i&MRVgO9cRSV05<`a-+Mlc!ZS1m_)ZuW?QCL_v`E<>BSRs&(XcG! z7fc$@-XyrdC^)Uezoa(zGcqUn5}8ILN+z9vLD7h)@LM$QA}ER8 zY9d!8%REWuCP_!A^><>lv|`aLXqic9f1zm7te&y;f}x(FW&x+)P+0)RbVK7D3(LcV zS(qwfQ883Y%NKLh@(E*_otg9qF^keH{BC`U(xTHrWofOR>c>vHr52~{NpHC~7N+dt zl&xC&8C>--d%8%&i$jBBk($#caL~A|=XGNOEv6-wM9^pk)j4g9=B(yD*5CZE|~IJ_QOEyg+2$M-!97z{Fa0`LffVW1xcnMc9y-7wx^pdA+A5R7pE`f+~0 zFjgP@?gtoxaX5Sv#ybFVCqPFZ(2s*{1Kq0Jj7>l z?v4oaa0qyP!nhiPCmDTV z@xqeeg#~X5a5v%fB&W-_0k3Qyr}?5wS9r0ylwNmqJP*Q?U3crp6yp${Tn2|H-Y?Gcl^{RU`HFs0o~KzA@!5T zL4K>MvQhSv&UbXp?^8+!`alRzKJpE{|oHs~cFZqjYj4#?FWAsms*E-2AY@`3J z(tOI}qFpkU?Uwz;ad3W-{}pMS;rc^;jgtQu2jnYKoDidbIL~pw=;u0VeA%we(l{7b zl*e&UPL3na_a+IWALu8>NtVNPjry=|Y?buDxFI$15?N$Tr<^R)#_5MF4gMN3aLw2Hwf0JT3rf` zTdPaK`K#5XV7}JsQgFVP=_OTqCtS)4rQ*HOULekfVcw-j=DLzpRldKTiz47 zDZRlem7W7#dR_PEIKzS0_y6up-CQ9v74QsqU8Oy&klmfQp;9A@+d+v^U~8kkEb3p8&pZl38;VV>nFyX`qg1@XYPQ^MJ4_cnE!$F+=IFx4DA z#bx{)Pe5AntzXE9A6&u0dd!8a-pLZ3t^ajZdW~9j&q?K|DOd7$Cv!VecM~bRm#mr%TR6-xEZWx z#ob2lctUVLv~q_uas(AvlUgxHr`6L`pP0n$Sa~bD&e=VdR?p{XgZC9RZWT9k7tFE1=WM=?piFw7sW~q}=B-JgU!@~mBzP0& zidx{eSbU-atr}hIFBcy)N)hBm17pN5m`mwj7viLMzX%>wSPe}zG>urw zZrfZhymh?%mEafxk&mLOs(~!|Ec+NPpE6*)=2=zFrU&tI`r4X{ssa|!Y@(~Jm`l>yKDL{`%eIt<7%I?l*FK_|GQiZ8o zu3O?~_ad`=E_nA9j7*GF)^j)+x~K*%=-9X^X0)eUaV{faiu-R?6W_5W5CCc?zr#3-Gi0wAYOU%b1SdR zMRiiMyVNeJ-5qFmOZ;w$-y`vR7=Oilm{?v9SIt#_&PH9<_Rqw( zu!eY2zOq{kr>v;)>9VQmow?_ei1nv1c9Ldn?_|7t{GIqu`f)EKA(OlngBdUJt9(vg zE1aQMyS6`!1%DZJG@t>UVgCGAV b3jdRMXuj8RO(sSOOZa~P<(BekXg2@=k!L4W literal 2543 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 F005zVBESFu diff --git a/tests/testthat/_snaps/forecast-output/forecast_output_arima_numeric_no_xreg.rds b/tests/testthat/_snaps/forecast-output/forecast_output_arima_numeric_no_xreg.rds index 16f7d0650940fe174bb8c6f761463420df2def93..670599f6e72a87e2300d83b4655bced8cbdc2157 100644 GIT binary patch literal 1957 zcmV;W2U_?aiwFP!000001MM1HY*a;b_R-zGZBsxbBnpZC+1P@HN1%)HkcY@p`jCgW z)7{zj+TFXCd+(Mld_bZf{%Is=G%+C>ze!B|&_qjOqQ)2!zm4dx9|9j5L`~P3d(WAB z@9bS#q<|*7$?4qlm@|)a=FFU#j<*v+5+oUmkwgpsBrPLHc0aj^)B0S7R|-xShZKhk z9Nvy7kskwy10(>t1wS)ftm)3W0zTErAnl(RM{A@9tkYwELf0DF`aT~P6Z2r;XPJ&15U{$k7bwkthRUoCO z%a(q+Yyg@x$_9h))Dc!P`v*eUpwdj6RX){^O^JDopW}aOwc4L*e{w}?V}Ig6Y|m4N z_B(X4$U>BY#WgAldi!<5VU|IQ{WdEWELPyeRR9YB%RX44H7@)p3FSIyMNR-0)Ga+n zi(t5fZ~*aBOPHXTr_AlHkdI~F$PoCs_|Of~2ych_>bIw-RmufB*jgxCEJtl8LavcM z{N@lBeeNWU7f*vl6S7?*ua{u>f}HZokVq>RK|ksPIkaee2^RIFuR%@J+MO$xOqz2v z?mIR+sc@5%)Mh|K({u$)lR(2{CNH{Wz!c~gaXGD$rQ%|ov6?cL*c^7EYOyJ36gv@b z@O@rU(#UD+eB(Ag<#o14;a@AbKN9w(j)GogdCk_RN>qw|`mXrBM;f?uW}~87%Etws z%#2<+)A{Ad>CEAG&U}9LdR3OA7tKv;yVKtMrEA3Z9{@pb6?C-2Ql@4pG7E~$)}fD5 z)3nMoHx2khrp5Al&e6+;cA8mbbUH)hZa1kLRB&tzfKyhvVq(-VG@F*pBC~zMBz1Dr zl903+%foli3}dESLF0>An;phVx~-XW&a@0@9p#E+Rvd1i(-_y1&Ya2A#R9R`?U7cb zQ`l(A(M!59g*|3fzH|WT0@X!2$%=O41=)$DfZBFLD=_L*tl)4#4!dS(j^(3WAg_5L z0aWwhx?Mh{+c>07LqnrTxjsXy82ZTyi(pl3?!S@t>5_rGpE(pw=@SFSAd6w67h#!bj5UWK@evZTQ9QJY8 z&Ve6_$g>=FaM;RW8;4!M-vzv#9JX-C0KOS$+o8^0sJ9JxTc8weWjVaa;Q)t&pjXh3 za2NsJVGd&)jzW2Y!*QS=0+|<}-#eha13)_vfc?qbN7U)NyZzC`Uq>lm(zsI2*2AOPx>=?9n6yP}UMkB@?oV$a8dDsuUY@l5ccwgo) z0p&5!eF9(%#&HOA?GKC>=W`FhL9mmc?}UD3fG6aIZwztR?bWLb#IXO@1!CN|p& ziNkH;U|h!2bHq);OCCL;>R3YFofLJV((5H0oGB$#jye6FQo)j>qeecA=@YFeY~dmH=;rN z3TJEs9PeO7IPD<*m9%&(X%7tG4z`|UlYutf1=Kloy;ht1X3xa@&tjn8KRW-D*z`}# zZ-4Wvn|-&Qcx=d}BY)2X(gCNyr(Xo+`AiH6JvVUjLJJIiZ=u-->;u{)^qzL#w%`Dc zb=(bdNB?W*L zCd)}Z>)jCM`^S|@kd-uV8dR3Ve4 zH@D5Nzm++>@8b(A`)2<8`tBs*F|}#x3}^!iJ{ZCW75<>Y-=Od}XpJsf9za@oZ%4SI z*5Cl$qp4?dKPE1a+h2mTh literal 1939 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 BDjxs< literal 3563 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 - `n_batches` (11) must be smaller than the number feature combinations/`n_combinations` (10) + `n_batches` (11) must be smaller than the number of feature combinations/`n_combinations` (10) --- @@ -519,7 +519,7 @@ approach = "independence", prediction_zero = p0, n_batches = n_batches_too_large_2, timing = FALSE) Error - `n_batches` (32) must be smaller than the number feature combinations/`n_combinations` (32) + `n_batches` (32) must be smaller than the number of feature combinations/`n_combinations` (32) # erroneous input: `seed` From fa6a5b9647bef7fcf92157c6570135c1fc9712f6 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 16 Nov 2023 11:00:49 +0100 Subject: [PATCH 40/56] additonal Ok test files --- ...utput_custom_lm_numeric_independence_1.rds | Bin 3934 -> 3956 bytes ...utput_custom_lm_numeric_independence_2.rds | Bin 3934 -> 3956 bytes ...utput_custom_xgboost_mixed_dummy_ctree.rds | Bin 4010 -> 4027 bytes .../_snaps/output/output_lm_mixed_comb.rds | Bin 4117 -> 4226 bytes .../_snaps/output/output_lm_mixed_ctree.rds | Bin 4065 -> 4083 bytes .../output/output_lm_mixed_independence.rds | Bin 3998 -> 4018 bytes .../output/output_lm_numeric_copula.rds | Bin 4270 -> 4289 bytes .../_snaps/output/output_lm_numeric_ctree.rds | Bin 4002 -> 4017 bytes .../output_lm_numeric_ctree_parallelized.rds | Bin 4002 -> 4017 bytes .../output/output_lm_numeric_empirical.rds | Bin 4204 -> 4221 bytes .../output_lm_numeric_empirical_AICc_each.rds | Bin 2911 -> 2931 bytes .../output_lm_numeric_empirical_AICc_full.rds | Bin 2908 -> 2928 bytes ...tput_lm_numeric_empirical_independence.rds | Bin 4210 -> 4225 bytes ...ut_lm_numeric_empirical_n_combinations.rds | Bin 4004 -> 4022 bytes .../output_lm_numeric_empirical_progress.rds | Bin 4347 -> 4363 bytes .../output/output_lm_numeric_gaussian.rds | Bin 4181 -> 4198 bytes .../output/output_lm_numeric_independence.rds | Bin 3934 -> 3952 bytes ..._numeric_independence_keep_samp_for_vS.rds | Bin 98555 -> 98573 bytes ...t_lm_numeric_independence_n_batches_10.rds | Bin 4082 -> 4099 bytes .../output/output_lm_numeric_interaction.rds | Bin 1640 -> 1659 bytes .../output/output_lm_timeseries_method.rds | Bin 33563 -> 33586 bytes 21 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/testthat/_snaps/output/output_custom_lm_numeric_independence_1.rds b/tests/testthat/_snaps/output/output_custom_lm_numeric_independence_1.rds index 7c41be1a553191b44477b50434a43ed77171c285..f6db5c6139b7520ab356db94a40c1300cab1e570 100644 GIT binary patch literal 3956 zcmV-)4~y_0iwFP!000001MM0KbW}z1&k-g!lMo;wbBlX)>F1aIG3`HfpVLxvXiN!BoJm$LNYI%ubfsWYYtoNYj=}`th=wXT`C;{4mJp z;D7b?^>?HWNew5~~ za*fg6pfA0a%87kyWinffv_?^4+*y%{yz>xUD@4~uu z%|oTF+~Sy%db8Cq+ac{uJ<=Gpg{;$7HbarYRLDHmm1*;BOxUEEuG88|tYVjSWfr5> z!0f3^8k^Ng`hmPgSgdUB7Hep?vkb+|Enky{CDtL=#-u4R8D^H~+%%OG>k2fI96MKy z9O^5ZUt~UI6Ynt8V)z0NES_&NvZ`>&;Oa0$V+h7D2}3D{tr)IgnE@ahi0R81%J8)h zh9G=x!MG#F+b|r#unWTvm`D0rig725Ph%X9@z-FxJBBO_qhZ253jJ@#fa|U7elp20 ztibRlhDyM%VhF)t#}I>oOw7%KkK9qLhjnDB7-BK_fzFQ@dSSSYVZY!Di9r@cQiyR1 z#x)q@D#M+@Fc(8_AwOIu=J&@q8RGyUx3V^nhg`5pavlVBb8wql$e|2DPObou`13JT zVK|22BMhM!-i3Jf!Wt!hFTmGfkQ*afC!?kD zvb->T*3M|w&iuU(aFj%zxbzxc@`JzUk&nXoH|MDGd}CL z9nj35`vLa}akbB|R4!7I&(4j|-6Z3{{9^G)$AgV0YwsoLkHyRUzh5F3Ex|q@&+;hs zUy7MtD@i_CJIkMRK7oDCSs%$-ABJHHC)CQJ7)EeHox*FI8^Y0=z>R_H$;2GA6S*`D zQ$df^x$z)RWN}^MMgl(@^hjSRphxgT41+NwaYB8`0eyCz0lwjS#0|tSO61!F3=e|- zaF8Lqahykk5e_NSx`Qmj%8K5c!w~*Lh%<$nzkd z3-RZGFWF!}2l^c-(wzvplcAqn=$H90Ml^2Z9!KtLgW zn%qo-L65YnIp_0rILLT{Oc1ompidRh9l#$I^y?3CwC9`;)#SP(#G-<}{D9{Ra>1PQ znO_b*hJj2t_{MV92K3b6W0=TCHRPZ**ouI5A{Pq%6F))#I)F_%#1#bgLqzfWiR1zy zZZ*jIf{#H$8`%uV>p9o$W|hEKuuVb}c9_a~&izKR`FkFheM<{$q3%karb(7G7|sh% z#&E*G?tqdfD3K1SzN9*5iFj<}Jw-gWn%g##^*eu*th<(ezVA5BVjCf$Iy!4*B&1Q+dmt%({x6*QB~0cD966lZ#v#hx1-7)@WpMT*Vxc5Pq+4zq}`Y zJAnTFZ}BgTgT>7WHHwUf7rvL*yFJhTllLdDxjZ(%VBI}>l}tU=KiP5r9}P>MR#cEP ze?x)z5FNOll4Jgc2mi8cW}sNFwHS5fnprwSp`N`dkiI4Hpf5HWd7eM>D?HEtj`2C) zhZUQxHeCVd`j$-Uk?`P3=4cK7ZGHX3mp;C0$2GICeB)?}S9!cl@l{1XiVv>JB3SQx zy*kOTDC9oVY`x!0&(kJyQn?uTYlT)K3ti~M`q2^6os@UUQa>4#Kr z;EfBEE;w|T`A_LZK0gU|sv;>)Mh1e9D-YFEz0}fkNkex9L|loA=>oP^EOiX14|RB+>xjWwEcSM8cJ{2)1A_1$E8zw-^Ec>enI(z zwEb`|HEqA?|1E8oeJ|KKI%x-`TfLY_<=3i)QT~^!Kd15+S9GTM+8i^Li~S;;w(mnD zhAQ!kS$-(}y?HlnKXiLJr7x|g_Jbq5=1~48ftOtDhgQy@*yns#+P>G+LCEv<#^LlifuC}j(&tV*>>?lF`<0N#!k4MusgsXWxz}fgP<&x`VN!CO z&!8nYlX;NmL7oSBJILF`^4X_!Jov+dKX&kk2Y>9$AF+KLFAwqBAznMg%d>bz_DMeN zkWU`+$wNNvET3Y3xY{LlVZ1)!VZ7|ZcxibyUPRt9V>A!*!7j{)_I8*LJj@4Pm=6`q zz8&TpFU+@CUYKttUYKtYc458^XZGzdpLv+iJj`c1%x7Mh&;6CECRwydLea9(h=gJgi6FxgOO%Q*!(B!g{agh4oI?2VUY)GHq970>DwmiNB-nu!?Var+G^5ABqA)5$D{pk|Tgf(d}XtyRnPDVEEbJy&n;p_G|hhNb~GT zq!m;I*p|69p7wf$cGG`0O+{HBh>FZI8s|Qh8`8x~1Z7>UwSIJTzCnxpBL0 zY5X1A2~MbwaQ;irg4vN}1oyihsk&^vSb3NA<{Cekc6>NhY|-UAHYMZP#W;4sJ_A#Y z*1#5|!ADR^h$WKc4MFyhCtx+;Ai%+ZI|7ab+zD_r;8?)yzh{|o0E`@QYI-s{rvQID0Rj8rSpQ?p-j)3U8@)42ddYeute)PQIvV00kOS!dW$a)1zulVAT?`pfCA!oN2&QM)L!=hj88Z@Xq8r(~M*SMEj_Glsda_%%>Z0{PQ>c zkj(FMV{ z@UNWQGajYB+V$p}BOXKOKT9U;+x#X<`S-d#9gp9}{`~mryX8@6P~RqGbPI_2xa#V1M$j=IP%@{ON;_JaN&8 z24oiYmU*Y5L5pAV-?evngFIx)RL_L3<59o2R<7!?surc0eEOE^H=@+qPLa07`%(I# zgG0J(+Jpw0Lwsd3ucC~s%(|&LgHd|Tl+UJ==c3FvyzU0BMyT)5$lSLseu)x#X2-4{ z=!yD!zf{_G;aQa0V_NyfgncMI)Nl1elix*Yi=r#_^A4Z^s_JbOo9j^GNV+mF2o2P}P-T4i3Xc1LUVkG5rN6g&c~zTSlyKjtZw8xH zDDg~IhdR_wQi7B}e{^Ee=(V=qn%)xn0SO)d8y@zwsK?H4$H{SG8TJs~gSj-SHJS$J zIP85{V=o<9s2&A2=l8q*m=J%}+fa=~=WWrFT-bD0$M?Y`L+l1%p7xL~-{$y=SNIB; zb8Z(DZ27b4-^lPQnx3{s--S93&q}q%635w^C;OzHo!gR6sGV=I-A)e=V#&(lHX4d) OX#WGStTs_*F#rIug!35y literal 3934 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 diff --git a/tests/testthat/_snaps/output/output_custom_lm_numeric_independence_2.rds b/tests/testthat/_snaps/output/output_custom_lm_numeric_independence_2.rds index 7c41be1a553191b44477b50434a43ed77171c285..f6db5c6139b7520ab356db94a40c1300cab1e570 100644 GIT binary patch literal 3956 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 OX#WGStTs_*F#rIug!35y literal 3934 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 diff --git a/tests/testthat/_snaps/output/output_custom_xgboost_mixed_dummy_ctree.rds b/tests/testthat/_snaps/output/output_custom_xgboost_mixed_dummy_ctree.rds index 44f2e59cd6f43adcf3971ab49452f6de8563094a..5138c231bbb15bf1a4c6db4b0d2b1027b6606ad7 100644 GIT binary patch literal 4027 zcmV;s4@B@EiwFP!000001MM3NSd_)~-v{s43RoZ^Tv1F#1bIL79~4aEAz&hzwJq=i zo6GLDyCB%hlCGM!%!16ie!U;|&R6f2ykd4sQ?kg+%qYt;v=kFdxij;h+5Put&A4IR z@9XZz`Och~bIzP|X6F1e^Z%6lavZ1P)CvWs^1wyTWA}@+qOKP zwlOgWQFCBXTbyco`4?L^I@*&>%9-C@V{S`$A~WahM_+GCdZ}mF%ZU#C{KmIC-|zV6 z82nQ7RX=o!7YuD zti8LM{v7SeGX9JD#ZDp4B}E^269Kk)>&#}0Nmp45bdcF1ROu^idXrJRP_USwI?$-C zG}Tq;jXKg|Wg}i=G1W7NeT-VGuFh-_tj>xGovpIgQK7a90t=O9z95*XfVSFX(KgIt zLVBy#++?dY8KJ_@RBtoa+q72wLN=AvwkESdfN1LdSeZ< zSZKtfz?hBNYC&hKw@6JE8qEfsp6T;4YHb!L836oRalOOvVv}jN3-nfImcLQU0_)%l zF>33L`fKY2H%;|cp-SsE#=&$|#bX~TEqc8A^$uSH9W7R~LC>5Da@1DTSI!q$wZB*` zju7Wu%u09&u-Q*$dl7LQ!vPGR;yHs?gW^J5#tDr(jA0~(FbwlBG+=lGLpSEh1m0jw ze~+ONm;Eq=;<6cIGArN2up2`=hU2)7^wo;-2#oh*oP_aLpgRsjA%-@@=Z z<{d}oFNQT3p2x5p@DmuqG1xJT!a(NyYod+Zhgc5FD5heF#Sj28Cov>o_yxneqAkP+ zMGP4ojHh7ShA~cl+~*h;V@MR^!(D>wGceA7R{2lObQCvfzKq5%hk{Fo&A>&M6FaA+S5^^6V$c~+miUaXIl*~j>pKE}`b9U;?m zF<|B=qvigxxG;Iv&S=)o?EM?y7#Tl{!$?^iBV>NW$@q2xJwetV^OxB_PR2J< zhW&t_#Zhj*95XpjSv*-gi=TWxfqu@JAIVz36vI`Vm@8*sDB#3Ah1WJWoufH{y9~-# z5_Ql{_;N8^4RR#Ul>kp`TLdm)UTcWZXzT9*TkFO!C|yd!r}}!!h9J z6x~LXTuKf^WZ$g@enR_08{rKBdGd@5!a#C9Ny=d$N7^-z`$q_PT0SuK%Qxsg>%>ZLX?8F{-(W}6hG{Y!0@_apV$oh?$3 z#!OnT=K9Bj)hRhw-K{*NM(gIR!C=s3{jPe9a$VI zr6*Ftp(GsAlXr_uasY>IHIZ?5rXIB8pUW|9@D7z{WE*)hpjr$E#Z5Wfz_5p}Z1X0O zA&H+n7z!nIL?`KUC@f0pq*IF?dC5IG&qI9ruQ|jnnwigDjV^~&pGLRF6V17#Xh$0N1Rif#;bi+jwnF|ON3uo`=iDBUM>f$*9??T#36U)c*)p�NEOl z$2i$4knKhk^dAD4=;b))1)KB|PRY5ygi~|d zSIOGdoNESF$oi1hsom7cWmRtYRBrg>{mN~X*2($gvMO1fbPFKWDX(|O?@o_9{qlJk zz&W=T?%JX`@uzSD%HIg?wp;E%?FOWFNVl9)@Ev4u*9YmFtkLM4_~u00Uq(i8l#dPg6Xo7&Jdc}Dw?sP33p9@pR1y*-KI&e_HG zhlUIZ3u6nos=G4wu$n;*P2fGcE?;!+j}C`QhNQiI7)vpCy(;`-x)*smo;5M z+jk~tXnSwq5!$Z!QPlI{yv>yMd?cOnKkaoXt^e$yy_EmkHKQp$w#Y>JVm}>D+y9LU z2!C|Yi=njrm+l#~e#?zRDSqv~9kl+F=Etd=`i;d*Kc%??D=1&vZSPaQQ&FoZy>CJV zrO)hK&EiApA5B|n`;K4kqx5&rQvG33K8t95NAPzp`XiRlr`Ye{7~1}hahMqAo?}%0 zdtWaX{($fYX#Hv1)#5np?-J{$d{61FJ=eSN5Apv}jAPAXRBqoVw@|*Pt_`R7(AJvC zIq`nkD|>Tz;OBv#2Yx&7+ok+P`ve~B;lUm|*u#T8c4m)MKlYagf9>F}9sK2)zY_f< zo_2^Q5Aoz7o^}>bsXg3*m3DEwI(Qf_yEtAto{bmbH_xBN!+fxd^Wj1}%m*Ik124{p zW~Sc`^NknhTP!cmHzP03w@& z7xUpRkb6q(r)3l`=0h9RACWrG4*3@3PC|c6dC0ds>Sv(s=c*s*IQ&-oe{WpQ_8Y7?3>H0Deh+lL4t5-VFaPiL z+x18ja~+?1SC-zkg$JQ8p$VD{a@Sio_B;{hiC zP6Rv=a1vnnh7hFyP6eC>I2~{X;7q_-fU^Nl0z4To512U&abVwvqKu1eUy}BM&elV| zlgz02>7T!jJ=BPD+w2V;#(UAEk6*a9TvLGxj$ITIY+Qwk3vOL;WX*b%njYDa!ry@S zfLANR?zW-Q8?3>EE=;L=_Q;xbsEF_KBKl@-^?5m?T!TtgTb{e-##3l|NZzoX&3B@b zAFP)WI)BmD$(o8HRJdl?=CjpJ#pKH3^YCZ`POyggHUN*)Mtx> zO{lbC{@7Kw7o(zl+lDfA7%G{)^qY#p4^YY1Iis_xu0W+e&z11kcca2xciq2v#g(Wy zx_Vy8cekRF-Al5)6Jt@yvL@s%4h3<~*DO463ChrqLX*soqU3#_dT+=mM^k&MvnzIf zh4?w;tA5(C2W5vwt|xIwy>n9K{;VpL|H{W3SJqlk&hTRgFYeil;y##hTbVi>rG2E+ zkXL+}?;IMlZhRn0nYJ`-Q{KZUY0q^(k+{t0y(6`EZw!imYHx7Ewhbt={T|~p-V+i3 z!3!t8x;h7?o;rMQ&*l{+df_x1)l!GYiRgKr=Hw+F4y)gOZ+!>^^;L6Us`Rdwg-Q5oOPiUO>4X zxs5NE97dV;Jq9u#l8t4bk$IMKV1YOvTvCww*RM{@+FG40QJW~EC(7ugKk%|=P%U=k zXAixxN@&Cu!doMkMvYe6?;eM}U6Q=sbNkZNqsr#|>NpS+(r=Obi!twf%{mebn_zK# z)l4G99ss6_YlKRh-Cu$}eIq2uzbL1(CU+^u=D|0Q7W hA<2i|&KJjSr-uj8WMO_A^j7NHe*n<$;L&C>008q}2ipJu literal 4010 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�NEOl$2i$4knKhs^dAYB=;b)ijhOt_OwIYeHPdq4Z`RZb8MQ)At&mmw zkXI}C)e3&Kf?uO(*C^VxoOcFRDf*Dpv_5D`S&a`qjSoI$ze-!>G$o%>R->TFw*YdT zO1dw8UwVA$SI)~&&a<`f)fUf5Ka~$q-z50jZutVO50Kj--*UbA1DQxuAS2q@yo#uCsGL^&{-u|B3#2&MZ!w!zI*m-X|HQMbbW$%+WUf ztFEr8zxm*rh*Md8>$VDtH|RD}{Iw>N;)5H;6WkDTac#c2J-nc(_B2U-ONt)&o%r(F zwMS4y%{`V(O1Ea(5+7rS(kobBdeSZ1>{-Z_^ZtpF8uAq<78#P`RA%&d_>o$2Dd@tv??8S4q$6 zc!~|kOz<&nM;DbF-F!NKTzhz2XF?K>=_@-Arc-=$@&xg@@bKuc_5}p@zYu$r)(2H> zqx=WfWKq5k6QV32Bk4IZ zeHX3!y^uxuH~W`R`lru*Lizu)eh9_i&a+Xzq~n8V`}?Sj@W+R3iK6XSI>%A^dk^=e z_?>kfl>YI8O;k?1eLmAq>)dC{C|}!>-&4NJaZl3viDA{We(lg&79U#w#tDV`^+(4A&ZG3h5np=gk6Aj4;^5DdY5P9wZBm>seoN)g1^IjNhYom_(yzK^O5bAFU_|& zQJQb1Ouq>8nTPqz!+aKDKJ(Ii&ZhiZ7Y-9)z3{MJL}|UG^3r-K=B4$L=w%OHk0Pu` z9@Zld>yh`YM}6@9ld^efy?61_dZ+6HulHHJwBE0Zp7pK|-gQO8Lq6f9eDWYK<&(W4 z(508Gyp#_wi&8%P0OVeg`dK}gm-3;D>W>*Y zU4(oKaz8+Si+ISlJmlLQi`(^wV=@9s{;ID%x|HIjNpDd6Nn!!TXFJ~^xFMx5K=J(0 z)S4SP&qs2FIA&u*P+sp2e-CvG5?Lv+FlyV;{+{+5=J2?Le zBb-UPec7c2L*u)hB?AEK0Y?Fj1`MACy1$UP18^eXB*5&8iJ^c~0H*>T4tNCMG{EVA z;d4ZEH{g+gGXZA-&IUXRa1P*HzX59M`j z-{&k{izZxX&3e`JIvVrN6Q?g-rKcxxgQ~IG5Vp}PxDb}fI6c%qaKZWF)85>)qg={A+^G>RZXbmgk{C;IWeec@7UI%=_WK` z`g_rp$xoy5ii;iDRewUI3EQ4{O}z`1o!W1nGb0d{k8>@t6egq6{R0P;+?9e1>)V!} zZFmY5Ka)GRb^8mb?31VUPjziXCG*!O{I#m1TO3MKk8BvW|9gbevvnsU0uUPWn~oPJ zI8fn+{;U1wFGu;~zI$Xx>wBnhXXwanuO*_ho7FRBfGt@~m?|`1bpgXyoa`$xmeNMuzcQ@A>8W{U~?Kxx{BHalD7d4Do9}fbxev zQaEMqoha+KqpCxyOHfYOTZeC-d8&IH$``3e&hLlP!agnzI{pkYTspnIYs*?xWS_qC z?U<8zel$mFDLD0fuR`HnxYL4}w8P2n)pT9e%1HG(B0z=!OII@M>&o?lS}?+ zM7i&$mhKLJ92L$P<6PNt2IX2ZOP8IWg!1218=?|(a6HR(>zQUYxo_k%F{;|1QODY%sY-7)L1TX^MLKPk8&&s}{TW<2rJ`*n%yD_f=kv zdZV%1#SVL~C3~^x^9i7CXwGwf(6HstrvG(@U(@rjUH6@(`!=oFWNC6=wgs^NzrZeX$v5PlSJpnKhmL4+ TFuyHkCw1*_`%_0*+A;tDiLEVj diff --git a/tests/testthat/_snaps/output/output_lm_mixed_ctree.rds b/tests/testthat/_snaps/output/output_lm_mixed_ctree.rds index 0ff13705e977d0db4a0326b4c8732f6fd6c7768c..9fc0a507a10f59205abcfdbfc39f7155f26a25d7 100644 GIT binary patch literal 4083 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 literal 4065 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�NEOl z$2i$4knKi$=sy%N(aUkJt0(#Ol$!H=J*DLuUSX*fGHQjKS|O|UAg@;Ns}=le1;0ko zu2HmWIrj{#QuHCGX+6-CvKkM38V`KRewDV$X-Yn&tVThTZvo^wm2^-1p7eOqubh`b zoNH_0sV$O!lYS}>p#F{EX}jeKv>rfihkVN^2mdApPkoTS$r_DJiJLQv1ccu$J>hSO zH;2&Q|1JKFelWi|DMyj<@Wb1KdgqO({L=m}+F!KWrLp-1>+aFBWa{~>VJ~R@Y*?{d z@qw5%Gv>+PH~`gG@sgwAYY$a6Q(!MNSWQByzC%84k3?oKQbvTk~X|#j#lw!>g&h;ecufc=gflAZ8;Rb=(U#Ovzp!%?|E@B z!G(brS0)>)LsB#HPLdouKV$Nn;<}Y9Ysb&KO!2Ev&82uwpby3G8%9um%g8~%cZtgN zsHvfU^=E?DQEXZkL-B_1r&0c%6{kR7Iq5?{MRP%P@xG)!#oN z>0SN-l}otvJ+0^My}|6K^@RbyNP3nk%WjQT~sAm&a4S15smW`^E5ew7z9mEUkYvDueO| zE{>x7^Ge6j_L^=w+J2?k8QQKoFX=h>(0jD*{Zc&T-{6x)>0hiqLivBF=tS{Pvn-S^ z=4b?M{}2r#{E@+%!)W`px&f5_@0l$qu3WX3(m$W`GL_Trc%12{b?(F>%2zf26Uujg zwfzcOKX%_FTE9`VlEsJC&s%oV_Py6u(fW_CQvI#k`^}>C{mp-L(;r?wh2ns3I@9*u z<~CBCFaAX3Py740@dvejfzq!#CQ9S*P=G#D~UxfM0!+hpp zK8rA)d1*fPq5NB(x=)1l!ozwIrS%fWOY0?*m)1+Pn>~0vim)DeSdTocN8Ys_bpaEG z_2H%UUe8N^>z%F-yxynq(t5uxy4Jfc;Js@a9`Xq<<&%ebDWB{TA)oM4KDq9uALlC` z@|6hriido~vwVg5{ja=Y=B0diRh07KK9E~4^|P!aFXclA)gRvLArbN|$X$m1=JJql zdC0f#%&XSz5AW$m@>fA#Z8^o|G5@6aNOUU2r|K$y2`-FH_fU>)Evz^wqc z1sn;u1K?=DF@V{Z7+nCz0*(XR4RCkB_XF+$xF_HT0QUmi8*n_}K7jiIP5_(;I0-1Y7~;Ub1x2aV+Xi-7dJh_)Y4OE?gPl=-wr0tPwOx9mw9k4al?pGQlu^g_jmlnw zGB@0HZewf?8o1%Gz*13zjTk<~R8rBqZcK2`WE%6vX?M(K{1(4ZsF>7K1$i?SZC zi27yZ-Ue~V%(kD|UpWA!EzX{~vFl-fl=^V-mHjbmQ2L-%3+JV(oN-8hH>lUPSEEtd z#-5vxu04%1W{k;P`tBf+ z#=eY_rX7F0>pLlMQWi=Geq;aL6OT8DLqFY~ ztMlLg4#n>sS!jH81WGR`d+wEgpl#H~-Au3LobW0&eD zAKr)htvR0lus#&^-&rjtO`nT;8&2Hcc|#QHbH40a*1tBQ#J(Bl_I|eCp#%pi?f|3qxoc&4lEIdyVD%V}>i84=rtz9?HaUJ#7 zl}EQ*I28>TeaJ5^bPI}q(rc&xi89o8Pfg{buw0ZhVe%8NN1Q^Lo91j7xcYUJXzD$1 z(YYLyyj7hN7M+05nryFCD<-1;YbwmmIzNXJ&Ru-an)No~55*j~ICj1w1!;f%>cpxq zG&s8JyDRGVE9yOd$IG67Cbig^pS{R+;&f~wya#h@)amsN?s3@rGT94DkFSBf@*J+O zmz&{={F~;6V$3^#tAWJAA=sQ>N0SJ#2Y_YLWFgn#{DxWj2AXpn7c^}7v*~}6;ny@i zY&U%u>byLgW-t{y@78?Te;;7?w&VkH*Q;=k)5D8svN69+Mmu#1?Z59>DR5ab008mH B?8g8A diff --git a/tests/testthat/_snaps/output/output_lm_numeric_copula.rds b/tests/testthat/_snaps/output/output_lm_numeric_copula.rds index f9c981182c86112f951d3adb28297b958c6b2bab..41dedb8cf725b9a57c96173a95d81ed4edd1425e 100644 GIT binary patch literal 4289 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 literal 4270 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 QXs4n5A7(WE;AS%b0Im_G?*IS* diff --git a/tests/testthat/_snaps/output/output_lm_numeric_ctree.rds b/tests/testthat/_snaps/output/output_lm_numeric_ctree.rds index 53c1a570e6138d68e62defbad88cd2f4d4645679..3c0e09a6e31b3d7f4472927b714b42264ed9757d 100644 GIT binary patch literal 4017 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_ctree_parallelized.rds b/tests/testthat/_snaps/output/output_lm_numeric_ctree_parallelized.rds index 53c1a570e6138d68e62defbad88cd2f4d4645679..3c0e09a6e31b3d7f4472927b714b42264ed9757d 100644 GIT binary patch literal 4017 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_empirical.rds b/tests/testthat/_snaps/output/output_lm_numeric_empirical.rds index 55bcd34f51b23299eaa2437fe6fd48a86b012dd7..4a87e9f61e45d9373c84bec623e7ea7a11baf986 100644 GIT binary patch literal 4221 zcmV-@5Q6U?iwFP!000001MNEtSX9-zdmb>n8H5Bx9!C%p1Vu)(Ix!>2F&)I8(({B_6-!1efn5tV6#hq zXvBrMYA(nT@XXmq99y1qj7Ug45*Yk<7k}_ykGAV>9d^WDO&oAwe*+3Wd1=fi2TEP` zBm0(Is@t^4(f^6CZGT8@wC{YOGvLHqjV}Fwa7EPhGgtT<9jkT)Z=d6cTppj>_F4+Z zDdm_iiD3w-hQDPu0 z-C(lmttPE8y;g6mwCXD{u`j?afZmUmn3aGK zWEc{_KY_m*aqy#U{u0++I{@^h*HSsLL%t@nwT61bvf|B(Oyr%9=vpDVHiBiJJI~_J zIq$WNkc8h^Nq>@H11k*;`U*|0p{hpf65X|d{93xpH_DQjcFD_0I~qCkA0NLwpLa~C zyu7b{*i|%NHh6dAgf>S~`1r3f*EBjN8y79xezn=fA6!!2nkN6!krAW}n78xy_HTX5 zw^pj+`O9%93z~MOxb%UKX2!4Bv-8YW)VF2W-yyHje4sY$RQ?;&RjFsVA2v!E$gVtYOZ6w z`kOSh+8T>dU+X5!)!KB`E`qXFuV?l-Xat%2E7nKU-5yBQ4f8ey;nVi0zjcKe8-mbn#V(y+w3yGo9P-Tjn<&k0Y6gIPrcTtsnIrw*%5AbtxapS ziFsjep3Yp4HEo=`{LA4+fz?V<8%s!LF?^2U6rPm0cFH30HQxKUix`rKzZf3CP>*2` zhE6Oq3S|4>_SYC1@O2=D2z+h9xIf1K!0-WvRt#4#jr6q+;{h0dig6~!Ux4i)7>Y5J zLq&TO`rnITHhc3_OROYSoaPhiLp^26PW=_4`D$2d&Ltt=e!FcoZ)(h~u8 z%P>zZkzuFBTu`hv_qU z78mPZ4f1T921x8PI_tMDw3$DtfU}}K?K3QuOOWJqP&e%q$v7~-SUl44VB^X7!zBH& zc$xpH61gM^4g`6YN2&i(%=COE`DA>SKk0k|`<%NzlC?e&1HKcXwXz7qWKO74cx`hN zI9e09X>k1@F$a7iHx9!b&?9wj7RVD>T$i{hKraD3($`qfBX~B3JPczvp}v%XKD#ai z-*7$Raxs*Oe7g_B{h&VyWC(30C)C-Uj{LdILCut zG59)4J1Uw=eE{Y=*1KF#|W*P;0gs;>@dKF%;K`s*6}0<-KPu=q1mcL~+y_K* z-5+96L0`c@3j(<)&V7EBgO9Nw!;a@HXW^iy1|MTZKB^%Hp_(U!S`X_!w1M~x% za)>Je>_>~@4;IPwfwEygW5xMhom&ci_ zcaCu$che+G8VnbNJ7aj%#dbi+9h69iR9{k^i$ydx@_r&3Tg`WMll7awm8^T1WKpUb zJWhxH4X)Fp`~2erSkY_l$UV%M>T2}(>~%-YUn5~Gc-PR1;MX1>1v~p2wR81Gc9K@n zC#kM8cW|XvXER$hMtwbzajz}5GbC_AwUoo?DLK#GgY7V+vXWgQ2=vGr4CUOFlTh-bm*d<|7{yN^<(&7YkV>xWlS;WnM=sHm zOLXO4^yLzHxkO$rkyl9g3JG7ydDb(Tqz^Go>4hfMRd|t8c#)I#EA>@OlgdeT6%v|~ z>pFM5(Y?ugv*XRabY2Dn_BLnPeC9a!{1Jov7lPs!g3=3!{a|xS3IV+g-ufVYlQo)< zpT1-e&jU*5lE$Ca&W!JFk2Z}NGO z;!BEbijQn6Cb&B2`we3Ztzl!wSDYi2aQXO$-?G25VME)4%dS%V`qHN;UJ|6Dc)xZ! zl{e3r401nEz0BjsY5Py1uTX4Un@sVm?e$bX>)DH7Zw1J`O!d-|XVZ2znon{4x;-B9 zyR`RFyt#d$V0YcSR4@03cG|8udW-o_+s%PL33k>dP@Inp1b?VJ>ZE!F_2iK2-beZ0$Gk$@+Yb(* z?Xxq-Q~98$6RG^N1@}|_@nLGpzZUWh<;yM$cK-RmKHBzuA&1Jps+vgYXEuLA<-dA% z5XIjuHdDFeQ*o64-)J(CPYB%>LHRd2izxlTqPr-5yX7dQf4tVF-e@{kXXevZ;_+U5x3@aZ{$KK5(cKKIc=5Bad5^Fki0UZi@b zKYpCbZJ8fUar-+}WAf7jNB{9!J`eId$nzj?2YI_#zT~u?2Y-0*#}5AR;E$d8Besv@ z#A}Cmc^0q8KFOyY^2tL!dB~@oD{?q#fo15A%T+=ED+Z-wyMQ7v@_sFU&U+FU+@iyD;A-G5dCy&pga$9_F(h<})wM z=aE!?`_iFyST8)R7rU@t(s^OM6!OA)N%HUquSYwqM;_KA59^V4uSa#@LsLic!g_b| z!g{Cc1F!days+MH+TH729k}m?f`@v-3-#ppyiiXL+M%BCLOr?ZVIS8k9_p1H>J<<5 zif8o-%LiP0*~AO=@VZ^7hwp>l7NMWD19_ny+Nk}Q5f9j*-h$p$=MalT_8-ey z)hA-I{7L<)s%Tq5@rvX(DE=gAEX5Z)-zK8$8eJJy@ zzuVsz^z7I3`;I%aCzb0?|919!+W)^wzNh@#_0v=S?dUxnhhOUdo#v&xUvK51x7xiG zcTd-AZ|C7oq> zhX76oJPdFK;NgHX0mIjq=pMi$0A~Zv0X!1$D8RXZM+43SJO(fim<0@ZU|-{+;n$YG z5WCijCcn4&+GlejP?=)E%He*a5PIlL=Z@+pQPJ)fTX)y~Cn|i|Uz5JogzlAvJ7nkT z&^@!PsVg_{MI$?!8q>c}p{W7OKiqMk1x+YD_EK9}5SpNBYe>E?1r@A}-KaV<5>2_j zcJuio`DoI3Wwu6eXR`a{g@u%HI_q zd~8V>LUTIi9Zy^1%EP?}>KAoHhN6O!{*@JPJ&wi(aC?71A!xK?N7ge3KS4!BbH55I z{u1RaoxJdik6KXnSFH;Vuf};Ou)Vr7E&z>gsTnii{WO%9(q6UWo8^cfr0KKpQ`}El zY--xWv(Tu46Q>8X?L_0V+M4h0Fd)>t{tu5WO+usRd>eP{jh7L!Z~Cq>XD`Z$D>&Kr zo@A8!<2GeV^dQ6^Xl@!?bvMfM&#T;AgK>EI%=!!aQC{xMeG|S6#__yUdZV!djc$1K zTHc;5C^z+xGd21w8vXQNLRt^Cbj`!wgZbZm9gng%cIsNTR^j}OS>NZiNHlTVqW0XS z8_}q^mGdWFyoyE@Wo%cxJ{lGLS9|B0P1?^00Sl~s3}AAb*xIDahc&E{<= z`n>NYALTkU?5zIBQ`o-VC;>n`j+U-Sk-6P(G5`ffz( zJ;(f`2L1^Ze7S3N6F<Slsv1Ejb#L_mS$k_#Gdh{(c*Ndg6HnDlD#Vun(Aq(qB51 z(_t+}IiD5xyNLQqN|5sBpO;uP)mmGICPUI5E@@}}3!m`xs>klXPcWD&^bOcUctz#G zRBJR{9^SB5S>3%4WTE<0*xa85hv0_zW8to9EV=-TmgK^wx4J$%CK+NIfO+o2dY#Sn zaj@`lG3P!mDA@96)4!YHSM)q>-M*%DJu$1-8tYsS)cn|=Z9qGSe3|Wj!R&Q<_z+80 T7Prw*OGEo#1SPf9$}<1})+b{m literal 4204 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 CV`H)a diff --git a/tests/testthat/_snaps/output/output_lm_numeric_empirical_AICc_each.rds b/tests/testthat/_snaps/output/output_lm_numeric_empirical_AICc_each.rds index 42c4c71233dac4b6e86cc65a7dbbc2931bba7236..7966f5ee81bac452ee3a5ed6edeffc74699d1332 100644 GIT binary patch literal 2931 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 literal 2911 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 J7`D?P002wL&eH$@ diff --git a/tests/testthat/_snaps/output/output_lm_numeric_empirical_AICc_full.rds b/tests/testthat/_snaps/output/output_lm_numeric_empirical_AICc_full.rds index 824fc181274b330db492215ed3d8e83bb417c9de..3ed404d25299cec67f382eff2a968546da9ca7a6 100644 GIT binary patch delta 2810 zcmVQEpg$H^f(A~PFgO)k^q`jC=> z3C2L9MM3{EHLNMIupBCjE1_Ua2?8Q5nI7K%0 z$gGDy%m_@4kdFQt^q;ZW)_?lge_H5moQd+*zLk%6C@ma`HR;|^R(Q!2*JsX~9gu>} zp^$}tiQIN^eFxVMp(59%r}sip^*9!bE%cK?{b!E%w6ovl-m)!Dw#b|Ob~erz6UyN~ zpS{hWm>WFXd1B%@@iyBPd)wx|ohZqv{MfglEpc6F%{{x$tvBgcRM#FDZ~rJ!p5@HE zb@!@{GikLug6?7dvqRsSeb?@>raaQcx?%T!?c4qS4l(aU=ct0l^hD8~uA`Re+A=0EE1e6MT$gIl+gebP_zL>Ft_YYW$(TxMB5js~>}XV8u_>$0$<0}CzX z9OUbxS?(h>-xwa-x=`g%@?4HaV-Yz(?ERuKr9lm7Y9uVRDX|Emv%^v#(p0a8Wk!jA zlcD9YNHbZ@2upFfDH>AZNkqM@1sY9+Gp;D)ulH6(iRuDUFcOnmYDq|qOVO2DVo{Gj)%oki49XrfF)E8eUFum?fu-Q{qxu<$y*i z!ctI?wdNQfh|(Gj$tqcKhb1kR9D0y{Uosv61DOSZ=+3NA<76i*EK#~mzMQbs99C~@ zR(c>c$CU=D$IN?@aVVOM$bm^@P;CX#xVpTFh=Y?vbD|_!4Fr%rh|}02homOCl_%#W z$#G4NX*{iek`{=xfTSiQi@zOT6R04v0$9y*2=F1md+<;~fwT>RKJ0wLrvN2?%wK>X z0ki<@12_phS0V2J7=H%P3jNCfa-koEb_lfl0p0{S0PqFin5~V_4u|#wXnoNB19g`I zQ~}gtMY|pCzX-4wc*hCG{__~X4uJcx-Oj2VKnK7`0Jf-JFnkpL3UVN0n+-4uz=Ja9 z044(b8{ieg7Z!tUgi$hVv!G3XKnt6ta0K8^fN~>0!Zm=u655&2_BV2C%fUP>M4hbk zUpWZ#SYG*81V`Uy{V^KeZ5jKg+veyV#2qfWuv z7Ul|iO%N7g|7NBR>5PvZseX)dtj;Y(e#Q%RNmzjRYLsKPW}zHwZv>bQFhelvOAX3X ze-8Qv^+=coa6RYS4FETx{CwnLxH`e8wM)@2HeP};FuBF3hxKJQ^s$=rr2_eDFa{Q9 zCCXKyuUBzCF2Vj1)XVt&$iEQduR&j`QGX5EoyN)Dh_W}MorP$Zd|1Sj7zSB?0|AOq zj-9NA3C4jH-Y@iXayH7bS9>S&vvC&E7;g?2M?V0zSF_D@Fv>ByS4bWRhayip^5i1T zhBn zn1g<(YZ%fQUm@COe&iz*piVn~#+8fu^SSsv9Nz$p+l#ze=wq%yV+R>~mymjE@{oad z&;jQ=T$DJwgr4t1F8$ndCfwYlz}f4QZU+w&XaA5~ zuY~B#?AGs5&C|6f2xtD2kOv?T^&iRdW7y%1UX4qAqWwn=9*Go=d-eyGXVDANrKMcaKM6n$jSo-mzOfGRg{@?{!#BNynp|)r?(g0H2IZ| zZ9~ZcW>4w=%x^kC|IWzXA6(DddM-IacFy`%Ip>{xJ#wfAX;6va-sLVf7rayjz^V%xzd+Xr;a*wYwxa= za9wx1_htU*b(!K4F**_Vr{ujAwu7-9f^D&x8eI>4BNXQiFAO~}J727RXrbu|YaAc+JNW76;=Bb#6}CTiidEUqemwgJpNRACIy?AS_+Q=h%qc%N@}*Zo zqTjKvf3R@RQSqv>!%GJE+ePt6+25QuoEE3QcJ)R_^CWS`N~L)I(5QIz1CM7PIJCK& z9&ykb-}ArxOq{)X)w<(n#)zd^cdsv)FjM?tRdL&>V?P%wA6fV4qHQ(el&I&atWnpA zQ;$>?d@ANyroegOdK{G+WvyH)w~QxQ#=gGaf5m#;LHg9=t1i>LVZ8pK-g0A3NF#pB0&M@)LTn%UvmoJf=``CVbgpvnGI z=k`yYGF~Kqy8kbYGnQ}rswFX@@sLzGw=;2B;NbAif%lp6S@*VAK3g!-zq@qhu~*)I zE;0DwFIR?3ZGzym1KlP#g$x#CSZ-3{(DCZQ8AxY15>~M9u8oA`SlK)x)v4hI>d#l2 zqNJxP64n}V;HZ$7TI^)RB1_81mIuJjJnic0I&XDT zR>L1N0#hTTqkjhdXKc3hpFZ|~F7!6eM0so9%EvpD7LLT4bZ;mtykv^&Gv>?+NWtb% z$ihT_Zo9a?gX@P-k?Yda+bt@w*piKtLH%crx3#n1`rfiBPO`|G{B}0Z7Zb{%KcBhF zpO_sy(|KaTS@AC072Dfpzndt@sr=aYXj|fj(6Uu8on39xuc)rwHO~G~qCCr)dFR%< zJ5Hz7ZVtMK`_BwJFzbP>SDNxj7wd*Uv}5ak`a{>c^hiMD|HP$rD|ybuTYmee!n8@^Cb$O*lh#oH>_;B^_93spcSG zAI)MPsrkn6*w%$Ahmz-VG#ZP@0b=hTjVTRkKvN@OsZEJR5S<;C0+FVAH7qkqoD400 zjzyZuYDQR!%T3Xc5>F!PWi8NXBAjtWA%DGhDoRurkb;qz)KW`AYFvsg)fyvVMD&X^ zYtd#+imPo@a-7=Is9Am*BQdqj~3|G$gBJ#T}NkSaRq=e#v-$1Po*r1fn~$M2(Z3oaVUFAoZ9^Ptq|(lMy*6 zi43Z(AR1Q}HxY42l4xdLlGQ)}>4Q0qEpkX|l3RIlZjv0=;m`_aLm>kXh%T%0kl47|AD$o0jdCMu|(aA_Fo6s4!mOpW5ak7 zU^Bo&*luFw3!nqwasakUUNd|Y{t9v+W19sq3c!OhX8|Sv{2O48;R}nwHqxj8wwcf- zpoQH{I0A4#K)I10;X1%y4ebnnXa^X%wdG(Q=AlkjOL9?f4bZ$s4s9allyT9H;}RT?#BmXhsU7z=`~68Q#qs4h z9xv!W+GfOoD1U`d|8?V|aX!*VBc8^&C{OrFFB$kEi+{vN`iP(Gjlg zloygGI*o}={$7UdNDDvZp~RBMLQ5Q_7JFXwi{c|YBv1Sl7uokBKh4t!i+;kB-8>wV zKVz|-l%J}fS}R|%C7+{v8DD9c2l9*JvCaq0C($QZ>`}br|5yuOiKXp_{FFzl|JIh| z(k%HTI_1y$JfVIeSs&SGTE89uUM=)mIS1ed!KhQPwuRY(UK51**uRabLptMQXP_UW z9IJDSke~5FT@r3Yd^O53TQgCPwYLCF1DGxt^`!>osedi{2K7jo0&o-O+sy#CqWoOs zVYoWMsI`mGFE(C?F)+CWlkf!%(I0^A)oe2z zf^v-R6_O{oVaSt?Jh@1-p-nfA3(y}o+Rer|1`Ek!8|x3nSlnpKgSaf@8-l!aHtCNs z4@F zEpJeq46DAZI#+Qxn)!4NN2_^IFIhkT|C03-l@z7BHRWKJ(P|$2l9O=-guAb))w$?{{`LHIH42u>k+$LHka2+#ZCL3&R)VMP1xTS5el>Ie(XapLT(2`#XTfRjCzO_{!CqzHvuk()Yc&~kZX|?x5z;7rnZ*A}c z|EPoW9^QHT3!4gWoqx2a<9IOm(8$--j(2>%%0)K`j9yvq_xWKQIQzy(cBTE&gOyir zf9kETbIy$_?qJVQ^{vZxoND=P*_($dcbtAXOUzF9=+D;eZ|$3Q+BxvqJMLRE9rO=+ zV(($lJMo04;sn!I`B5Uv|6Y5$_Grm2W=|RL;%_=Y|CY%1+?6%ye0Ke`v-;_Lvd)@Xcr|bj# z+UxIGqv>%yaBkDiWrlt|pBwLd(+~O6R-7-^^Xa?)6Fr}S1LK*!En72>8uRBi*NBjO z@1{8#BYekS?|3+z?sv6+Aw8GsR}VR+GY)O9RGHnvx9(CYHHcQ1tz77R zFE+2J<54AGuJlFJsiO{E!@FxGT-V+1eVIRcU8cB1j84S;DS2;&?GS8-Vq0vcM%P0h z^~5~$``BOc)D@HqUXigKbbRZ-*YR(8pj9y-+%h_3vtekMHRL`c8XQmFMmAi z2cL*@A2>7QSomMv^juqh_VPFOghan%M`7W%qvADXhZYX>w~OMDvcEZR{#=~4cj_8P z^F(p_Ql)tAu&6lok!P}Z?Oxwak2rXl@6}&^CeFI&?iI&Rj}c3=R<14>KSTUsRdL&> zV?P%w*MF|qIREJyadOo2eAcKN#H)@}6?`h@S*F1G?e#b+HOgAKRBjnhw2Xayzl-&{ zgY>D#$b5!1D_C#unG~w4K}&u=%7y{|RjIoeMVA?sSuQjs zW`3Vy8KMOcslP)BXy#WW<13VqEQbzy{OIxNWi$F67oWCXUw_RVxkU~&n;UjIeZ8kI gPwW$3^5D|r$3MxL&=BcQlh_AfrG{6BS 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 XJcuO=i`$^L($M|`SbI)j%QFA~AdrOZ literal 4210 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 literal 4004 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 wX}dA2(Hg347iwPx# literal 4181 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_independence.rds b/tests/testthat/_snaps/output/output_lm_numeric_independence.rds index 127becd1546cb9d8b955b864ce7e85005981edca..96b22350af7cf6be3d38f0c13c0ca6c8eb0591c2 100644 GIT binary patch literal 3952 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 K)+I1zF#rGvt-eeE literal 3934 zcmV-k525fMiwFP!000001MM0KR8&Xu&w<13fT$oML=jK$zK`FWo}i%O5p^73WF`(X z<1nI_WYvhP$i`@bF}m?uV-jP`<*p$iI;io!?;|muF)dP~cto(6Wm%I0n-{og*T1g*#GOZUA^`F!4CcPhD5&c>a^YzUoJUbrW|V1 z4_Z^===YoxU2jj|=l1f#$i@F$x|6@-`$ANt$3u=&%5lGpQ*vZ150f@Wmy0jd)H#8u zG?`60xK<4@8@1M$G}blTV9H|GLv=Y8rYG5Kvgx6rNYLg>#__V6C&#d{{4mI;eRW}|J>j69l zsCjRRS~VlZ3)?%@m zwV6y!ZHrZxWyrJ{%qGoLoz)Cvf0HKDoReWNX-Q8mGa%b)p2V#2GHG(PIToWX*Gb6G z+A{SHf-+a9V}7V7=yVn;pc!wrYVw9KAw#all5f+SO+fH5PqJAi*)+L^sVvWwwtR~t z=k#W)VXA}Mn_8qXYO~p(wQPnQgDIO?tec|Ev@vFrX1q>on`9N6teavnY7I=E%A~Pb zolQUB*9eP|AEFnk&q>$k-oX7Aro++FlvikTM zuW{}ghDZ#-7)E2r!>|#<4b0OWcmr|!I)*9u+6O}rzP4c85aUf4j$+t`;b%-EV=ctE zF~(;x?tt;Ppu07OWDG+fgQmgwn=yQWd0UaJ!LSs=hZu?gzk?wJgB?Rt3?$P^1sl0z zSPsj`;xR;F@B^897}{dMg_YYQ*g|}eH6bCyI1b}7jB#1u&S98|p`8#Pt`DYn!#Eb> z03o)rIuM66&`Dw*1bS0(pIV5a3_(n801*E(F%)Asf#Cp#Pz;}fKf7R25xWcVbr{6P zh}w^*KNPx{{FWd&v?HP21lnQHW;l8;`Rzlkq1_bPZG^RoA^-=1e2WhBSAmbUL!iGI z&{;bO55pv~-Q1-N5~tA2*1d=Zj(HmjuF zQZf(BF6NJPKG=M+{aRuaBQ3HAYg7DuW5Qq1IPN#e=+S^T8=1o}B=eI#qW zKZdcKP%Hak7|02A3a@RhFGp(vHx#bN5OvT`_!2OT136OXMgTwI#dV1r1oRY;BV)yZ z9KoY7^uo}a6Y5JU$g}GtunpHEt_Oy}BHKn{coyUb01u%J=Y(220_-B~bnt=54Ff&o zS_?L&h-^s!{#5XR_?ZZD$zW@Dk&Wqaoep{lKM(wA;D0LEk^=fuVcZ@f*-;=n2F6K) zahVN6Me|1Papb;6?ipSHjOOKr&aPD=8sVu0G)Au_>SKC5L?D*+5M6tU=M0@nE!CoU8B57BA6Q%m+4aZyk{zwK0%;HMyAvgB(IwME%j9CF(9JnU|_5E?XwADUL0bbN}N3SW#o<$X(Q!Cgtd?hRkX;e~W-I z=N(fkg5P?66l_Cm)Mn_6Z1bw3Cq|CFtlxONJ;wWSqb`r|IM)`tGemGgwUoo`DLL1> z2fM?N%1Z7Mz92`|U~SG>IY~7mdV_>@MDv|gYf?>FbtF}jR5(&aNhJ=4@#_F4dO6N{ zj3Pd2k#p{kT9jPH;~2R_MlO+)OJwD4=UUHXk}Fl31j(ShnIIk&HPk}peP3Uc*Y zi&2-anXEHp>)Fx2^tFcveN$1%^ZdEr;CcQJ^w0SME7xqb>9RQ2*IH7Gga=oWqhjN^I`r6%Yi4%-h9MNM@K{apO+^=q_pL}KSnqphac{%6fVjl0i=@WRO?){{*FtpfxaT( zdzZ>ZM~$NGE@&dfc?&nX@PDQqN%6`nF9>=U?x1o#?p~qoto@If{j@#L=NCawaRkM& z$UyK(<^FOi7oT^rcfV}`;WwH@@tFSVjeQ*`J~3>tePuvEaP4gc1lRvL>;!E$O5Z^F z_b%*8`HnUjN&D}FuA%MqJ6qHCh2e>m-*?K|HB*oDE-U7)up&} z$$m;dUGO%QQ*NBe^wTzX{uRnsHunJKdl0^ew$HT5pzX&87qj@#_AT>v+Q0wd6577H zj_MB%_nJ=WhXb#==npNLK(Wu|7PNntseusZJGZI)b#IjmzhB65N`GVG7@wXC?#J@L&jUXX{C42Ci}_Q| z=yDXxJ=$SC@~|Fx zSdYAOJ*s`irgh_m^z%F-yxu49!g_yXcdmD}&z6S@9_k4%)RX6Vp`PrtLp|Yz zdh*CcKdx6i)GIsGD<0|<&*~NC_rCwGi5KeO1G`WU4}si!!Z^iEd7&QKsQ%E-qwP>{ zLGB)mH;0FM%R{~0RJcujIJBb|sbASyCyFR8iu#1&uOj0pzILOOV14TZPs#m5k!8r? zoLg3M1P~#*U94a?cG33}zxsRfBSO`FReuDjo<1pGW%5tbU)Aw{FaE0bKWUt*_CJYU z)p>YY`>Pw5%6>H!hni~Fl;2fduQeTq>hf3DZ`Uo2zhgVW3H1@qf9Y8;JF*Pt{?H>; zm#r5o@3MAWU+2I|A+mxHI4`fV%?j2Dm%m9)NoS z?gh9vU>-1Y7~;UbYeaG9*Y2G%H463Xd-nL4(_>Kb_ixXb-f0ku8?8L@)!ADpe(B|f zvx4fQKAvUUR?f!{RPWBVY`wY(q0n!)hQF>sv14`=?A%>|QdMU*4qg2KCCv=kr@Xre z_4)Fbc^|YaMFSe2o6;<`5Dm=Q((T}^4-h&T@sHMRQ_-LUZyK)4Gf_g^gD?87Q=-Iz zuV4J>d~?+I!shG=s(Yw^DKIv5?!}EF>N}c_;*^||8U?8guYuaa(C%R zDDFS+?`(MT5w_>vJD=t^MLj!zk?p^z3*ryoj{oG)A;jkw$-fT_N4;L3zkF+}VAOls z{e&awFQZuhV0G!v*RVaAH`Dc{h(EjU#o0gPpzeLL+sV8WP|x{q`ET2`q(U6}$W*U2 zdLN-KA1z-Iz2X8&F!^-O(|?NM&o_>+&EJa>_wVc5yySD#!yMu(oA?t-O73%QTxxHW zST^?f*!-cW&j((Q16RhP&ix|NKKkJs)TvEM)VdyCsGIj&d3EPrLh;cV`5QXzMv0+* zE1w%vf)eIM7U^g0L)}%2Hx-m#M_sS)cy)$vFzUH0?EIByZ=*!t9ObROC2^Bt>$F zgpK4-%!YDqBZtj#vyGj%@80k4KfmAY_xt1fxqWwg-uAlf_1yEd=izay!y@dZKuot_FV;L z#W(yeT)uqa@~N(*8{2lP`)!eQhC)y_q%o>CC6-}LwUttEJt@%PlFuz~Kev4TOnNlC zHQv6`e({fkTg$&ENwp7ISi-9Ba+xjaspv!9bu$&;pMH21NkwfWo49!vD12p<+&Rw; z%|}KzJU@Xv)HEr9m9xYxKG)G5kxzax`Wyf}Q@eZ;;};!i3MKipq{cC&r{ zw~grek)2WobEXrJTfFYkGqBa+;Kuwt_3iPltI+QawJzvf#jQrf0`&1W)n<1&RkZ=T&lR3nhJ(8^ z3L)san2U&!uaDmZe92We+M{t$3nk#>meJ-62cKUpQywUU#0V@=7w-wi>y-zJAc&FY zG1Hwx^`xU_b~Z7Beq;8zmD$uoI*@q^<@X8(CYJ>v543GTd%%&opHJ|FWTswE^4#E z*kYiF2ZR;MPB>}sN4GR9FY7J51Mb2LVyZ2DA<<@Nv;X!a^Q*tARql9~-cDf-9}xXe zg;gZuY-VVDCfn(Rn|p@WQ9TJ%)UP6K@#9q*NTM9HmQ&UrGV70uTJ_Lq6@u-hkqzGv zjc(GHG2?Xj9m?G=q+;f?ik(qUvk8Wxq>a0eM_gVW5ltDO4OC#Bhbg+~r6kr-cWL3_}LgY!P1RSzWN2%RL|t_HnIr^nqcd1mR~e0M%Hue!C> zwv%*lro!o-P+?mVmAl=aU}gZHYCPyhj_mzuhi!;?K(sazc{$$G&E9qQ8Hi(ZNxD8m z`^;pcc`+uUAIdQIV3d!CHpG!z$|UFpPM&-5q(W1CrY#>U`nB(%)zqoZ467;o&h|#x zjk`~e>x90Y+3YGk>dpbkT`;1RAv(1#+;$4|+Yt8Er8(me zZcpkPqc7Lt4a!5aQAz8zbjX=n^DY-#%aX_{myJND`GbeN-+;b5Ailb^T|g&vyTGhU zMe7FhBR|aOLDgf;PpmO}dz3H59&bwWx(JIi{gEP+7eA(|SK9s1zqNg&92E=x16SzEEXi@x}e0;w$bCZ`o!V92!!JM~b;YE_K6H z?AK)wx;yameneK$zwy%^*^(ohj((|pY|uow20`Xv3H zOZUh9{-+gD%=celtv!T3{f)K13hD%^j6Q=6U6yggkBIvd$6UlMqKk`tVy6j~OB*b2 z+p8IBpW0m)m`e`El6ZY!@PWkW+7tAX(E2iJ4)9bXfbv2mdRg__VZFciEXAR1k3AXL z4pXuG_4M)5i z^{vu8xb=?{^Hy#T#MMdJSKT@vyeJC47P`CIrMjK)=T8@jH+=b$Ti@F%#^IpWiFgc= z?|L{x#nR2GT;*p>=ESsjsE?-zudzp|=fjsHs1r<*@;3~IID5581jxRS z5_lZ->c#04Tuo{~_Z{E%?SEOkDI3xo#Je=Gi_0h_v_8;=>d^Jhp(TJ+II%|*iKuRCG|6sXau*(YD%LKpc zAI#3ripMlgJy$(-E$Zy0ysYQ%50oF}0~cK{iLx{Z2fDz{gq%{UE1*?SrSRe&r)5aW zd@`IZNQo|&7#igCH5iDW%-);0#Cd;zZ&s9KQ4H&nRv;zDn1#OYsnW0Y(=_{OxF~|- zaqN4=<>&5;nCK_3uNNI!PZj@YVR)pZ*nbQD?qu+zq+1z_yhtv-w&h47kv@{xzup za?i27#kE^wxBGQ0Gw{%2PiKm|&&FoShHs(G;#37I_1{~$EouM4D?^<>-I_1nf1-IP z%$i%sVy%CxRF4D=)_T4ws*Mzjt*IhOP@1a7OlJ=G$QM_W7bahFx>b*+!cbSTyC>n# z-w%&eJJ0C8rNEOsYJ&es0-|jz4xwq2+&gH`JFUXhp^tYX!!Lfy??3d#W)#MFObA`+ z-Pbxh$xdUpNq&~zZ`;IpX%sOR49Rc}pX=*2zme~i_xQqc!xdnM#0xW}_l+YWxx{Eb zPaP9Db;MYNUIcob+&v?7svo7^6Rm%Ihes}|Rc!<(a?`%3q(J`Gz_2%drTxAeY*$C; zQkQTG-EAtXM7xq?kg%kT2m&T4^{LoDMa*MI# zqap1G&vj2QqN4)}L8Q5E%psotFs9eff%Wz!92NYQ=;S9!PX0ld?r%LXpR&;`;k zT{4GVPZf=t5DxBUd)2@4L+58-?hiA14_;`B@5QvSBC`I|*ob+WtZ(h2hV*gYWQ}Lc znM*NO;YYx$S*h~}k5*ps$&02d_01w)^c?tadxiPt@7Q&*86xW!|9h#nRr8z66$kJNYUD(C56gz0XgMTBc)NSo2>uz?C$skaS&2V?2_^henxjss z9BuxhCbkOtBJ|ud^MYsq{({XrpgBVU6+sf7O>)5Qvo4iN9s@f>!QT*H6?WO(`E=!R zy!a3>Svrf8YRrsDo}hNH81p^rA&X)bY=k8Z>w=9?#oujYZxm24?3AmNFlpLIkY2VG zReX_FB0%q2B^8r1)C?(OWU}Q|rC+vsyr1~ZCUu{e*|}_^ZGLwyZ5(MUrnuhUKBh9< zeecdc9beaPUp%%|s`UiZu2OZK66l?9>V(6Kkiqa4s{?oYh%Y^E` z&z{ebKvQ;6J|5rxl7DrM!=pc*sb1QzoWaL_Qr z#g^mePS#J!eG3Wq>|1JEcEx?o62c~rxhLNg9p4`t?)A;>R|K0M*7#hK(sKQ{<*Mhm zE0U<+Hc`lfiHAc#5#F7XH<|4pGX!(V2Vzjfacg}&6ZzAq@Za_OlfM^xJ_&0MUwv_m zS%(Y8n6Hu^MgHZQpY`{@3G|E|`EvnXb(WWwKO&8r;;775772kw6h zJuVp-K=JFTHd&XVJz2_Unp~HrH4R)(JizwS&LbEhuz%*hB?#D*YlptEYg+x-6z+k= zIxuzeb7KOhrSW@j5pCftLCGizQ!~(sG&$%B2md-n4V*vzMS@8U<}P>tErU54LqpJQxZ_ z6rMeJd*xY!gZ$=`Z;K|CB^M`M3iFNR4J!YAGodej6@1z(Y9k8wSI%Z)K4j`$E9XS$ z&jKCKmF(w@vjeENeal(bYFPRK1)B{V_|)9@Z#j3L7R`sEXNCf}XSocxH{xFTwISih zZ8%KqcT(21AZOtVm576@r2ZLx(3z~rkuh}hFspp{T^Rah^wprnNYCLt)^~;HKAV0Q z3k9!x&U}BO1h*qEsVp|`g?!|ESQ-jmVJ*L=h@C!B@{QanaF(sfAbHB()tzuMc;U8QCeC{gPmO`AbYSc)oIDbKTu{Q ztWuea%hE?2 zzjGtZBVtq)9(?FXx3*H(iP!-1qDn@*(Bq(S=)@vZd&pyS zc9?7ipOUE#+unarKR#=2>ywngl?ZiB~ zq=?^nN48+gez6kNsl@>o2W-dk3OD3fv-k7_+eF)&EjK)qB=L9$f)m!kUDgYJZIDXG zaQ5@M`kOdWvRN2%cK6B6DKD0|?5)Uj>9yjhaCA94WbfK@yEuuki=lN37EV+ri331( zsv#pWZ;XBioov89^(2DC%6tVBc|W7xQ6xlC;KVAL%NEjKD=}))yH@Z^2VIOlA$a$Iz3q;am z$#OBrSZ==ibFP_kR5^zxG+EmrDeGUy5;;-nPH&7RNMq`j@P_>ppw;+D$7Z@wue?A` zyn~;BOn{SprUS?+kq)+w=!;=LNa>@3qEW!KrcB0_#akqDxYEMG_cCSKjSS*AIhxnC zZAZwjDxf;T0cZfIP7J<^0p3B-ZJ8k1PCJ0}?%DSx7QHmo8R6YVS1tB`D&spb>~Z!! z9blQBfauEE;9e7+0di+^oX7z>7*-5K$g}(xZ1M~Qx${qHQgRB}BU4!>MN0IG>441r zy)cg1oC?d;-H9(k+&AUr-SH zaK-y3Nc|O-2Ar(|?eK?@RF|2|^;IGe zdEBj2X7X%#nuu-Ts*r6E-w}pR@|5F12Kq3{=C7Z&K)NE0(yfaps{mG*USrPj zZn<9X3u+=2iF_N~WezKmnWMsf$@6X(LY~BD@u;R~J9<8*Z4jFW7Q7f`XJY7z4JN$Y z9`05YusP1|gT87wQ0zbVPalAqSTjb6L!XAl!>(XTsqx*W7tg(U3i1aVbGm6La4(3n zYfhE5Q<7_V4U_?ZCg9`I50Umj`}bpR)WuYJWXj#o9@GK6NZ_uOApSn@bpNn^tF0S>V5jdFc?V-E$ z&Y#Et#+V^u-}#vvCc}2N=`1|hKS}MkJGbZnV?zyCzAYAP?0CfxwWEgYN^ZGb@Ke-} zuxHQS8>Z_M0pa~ZIWjY!5oAv>1dw&fEmg2_381Y5p)Zz)C<}<9Go6`X7GYkO z(r;7$rurkNWAqpS`7t#MeVbs5CxMbo4@$~0w(3!!*pGK{xJ2A9$&FrCLXd%PaJ3b| zc1-;_IoVPyklPTR!6%*R${Y(uy#qcWH4s1t)dSzn=ZhzcUsD&WbH+V~S?y6|+v%uY zdESoj4q-6a#SZKz{FAV0u6Ucyd+dh&&r?dAnIRSDbCz z`0FPgOHNDcytmyiMf#+a{OX5d7s5thd8(_VaAj!XRI#{wH$vt_+Tqji-h*>k?$y1X z#UP|l@pgP7dJC=uWUq;p-uAgxaPg~PD`Fc<5pS2a3%LWGP~a4%6&tqz5O*)j(GT{j z2=c|rdog5_+jjE5WWI4LQc0Y^+Ut3{U~1_oAUpx#h;?K*z~X@&Mp}Rnv>v(Xc45Uv zSF}7DSgI#3q|wOSZp=BhBBo~oLoMly?!F>q*xuJ7X$4DBDXO#D{t)!Z|9o6tAO3GI z7N@G;ZPASo-KU!snUBm?IHjzo*BZd|Po@W?Z}1k$zIOgqJ?{UHp@C~gQ&-cGz=ZX_ zpC8uQBOD|JfUfM89=no`bc;^b*e|+21Ka`g#it}NG-o4%n3`6!qUWkSWnB4;w&FE{ zV;F*$p(FJo0@1C*yL*D{c-m$9w#y8r(L<1_2s+agEOK%3`Ami~Ym(vhl{rIK+ZT7w zgvI7905D!Wll+J)IwaoDU^|{uz4S0u^J;M~7ubKj+V^~b2&tZCuEiWuCIs;eJ4srS zIVLy-ViDzFvx^U<~uHF<~Hu7&Zu*loU<`+52K z?6gCKVlBg{Vt+mQboj@j6-`yX6D$r+Y`d3=qyp!ZH_T~xE6M#G`9g7nT?8pjqRQVQ zO#~ad_v4U7%A%b%R$M?JlBv(zv+6scec$9XPZ~T{;5u|4iFK%Zol@Y4vG*wfBnoWj zbP(Iam1E)!e#g4D*GvN=fGG>|ZI2_9@rg2j;0Uu{D{dN;1X|PgN4UAQ&abyU&9uN< z??C7Zwu=U6okV`g4Rgn^+*nP^5D`nB!s4O9>GI^@DnKr+qet0ievkbErvmn`f zR1*now&vy>f-Kk-Nd~x`c@YU`bDBw4*zxFNv=f#fJfNfB{gqaUQ3q&RK8a7UXF7is zr|TT2aU1j+l$R2bC7``BOO4Qp1VMM0Q@A8!pWM`;D|L>wmEJ7V-a#qL$nR5NU*PYDa1D*@!YRdz`CD81B4bLh2)+a>t?yL z&3BDDNHqk@V2V$sE}r_mzv%)H6}G0W9Mcz%baH3&BY$Wjb_oLyC6BA zVeQsu!95)$x>+hOPDDG|=JP$`7YIXMrhP!34(kTzQ#UP^#JdinMm>s*n@T`KQv#N> znF|1ZTr0a(5vc%)mn5Sdq~?TN;bW_vl7~~J;#?B16->1TH2-Edt0CN|iS8MapUA}2 zOgIO|!}cgegw-SyV?vyJfpa@qThLa^AI!S~*II@-GM`U+Ejg>nQRZj~dJ1}egcnnz z4SKn5OdEgttq7Q7LQbd*lVNR)bXldf@*zi0)9*%rUqmlD2#b+S6<*hrS1!F=R}?s+ zojMJOfVU(MsEKP4m<@-0K{f)!%hU|C*|f@ zA%qB77f|SG&P?xJoEp>r*xIAazw5I7*VYGlt*WyR4o_&ab>P;5IYg-0wJPG@_-z5&R&^e-^MvcEmLiigUCaaP+<#Vfh`r>#YH;3 zkMX&?Ry~U3L1E9s*3w4IFzy{wny(0Kar^=$AOkD0$KDD1vwY{q$79;1Rd8jEjxZ5qYrTX_EvZRJ{iXwC-Cc0b z11^K`MvBNDE`{BudHRVZsMnmMIHAr`hHk^;G86(4Wzvs6RnomKAvtrxnUb2ABA~c$ z`H%#?g;UOV+d&@`@rCvaP?vH5VhD+KUIt2%iY%$N+GPwU3bMZ~SJCGrS=#MWc0c!? zW1n;Ex|kRU-e=k}-D4&;lf0Id@BnEX*f4B? zqIEt@aB;Xy%99xOD%JoJbdIyB3f17D;I?8cnKHYhjgUxa$4slU#abEGPP6NfJ((7C z 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 literal 98555 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 literal 4082 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 diff --git a/tests/testthat/_snaps/output/output_lm_numeric_interaction.rds b/tests/testthat/_snaps/output/output_lm_numeric_interaction.rds index 1bc8b877cb0a0b27c50f7a60170ed00a2036610b..1b1aece4771461347399d23dac4f4870e68cfb4d 100644 GIT binary patch literal 1659 zcmV->288(^iwFP!000001H~9yY!p>=W*=QzXxUO8Hh@+rlv=2i@_~lX0hGol5~&6> z>M-5C+m6i6j5D*Pg%3!;C@}#{fCvd6@?+u;ACUMV(rOejz7y0BHM}B;i6S2)N&;Qa zojGTA_wKgR_+Zl0bI-l!oO{l>=iYnnZmy9eDJsQeS&GJ?DaD_8dfk#0(AVG(gjlNM zSb22Cl|ygs-^1~~#D_CDK6d_zw`qK&?fB)>KV14nnfAu;J6$W!DfM5T>iqhX<)Qq7 zMOy1s?Z!ys!g$|D&b=e6*Ee2ioq9}?Vi6dZrI=LBjWD$=bD@z8tn)i#re!j0CweSH zbJ{o3&?enX3p%PDYg;?%sRfAaf`9pZ{5e#kR;-Y*UqKIa$ppa=MZhxyZUmQ9D}HHiXp}BS_;JR*_bc zMDhic^Ek~c)H_MDZO775{YX!>9hTNpo^F}ycIH^vU1zE(E8DA^8Xs{fjrtrbXH)W- zs;gyfgSmx{Ud>DOhaEAOu{5@mTN$%`0X1Ve>Oc<(>8@%IdHt4&9h0q`XXiZC)wfgr z#JnLp%%y(I(YJ@(HNHivq4m+ERi2*J%|5c24QeTmm`ydqG%x2Ao6H7nL(@rL!c;w{ zK-MC^8f-GkOIP)$-KM)_))Z5vz=nJcrkXSLmvgMbP|js(Rfut6M?~;UqTJ!R@+7wo z;1a-(u&|IzGT$+<)umqnngQ+scphK?;C+B=!1FNjP6PTkfI(fb{@9m~cCB{tp0718*BoG5|R5q!R$IBj)F4Bfv1g z0sx+v?*%qW-+~;-$ZG)>0@R|+p8!h%ZUKB2*us5~=kpK(UITapFh2n<0_+Cp2;w7k zL;pj7R|BpOVk;q0LRpOT0;C@dwzkrQcpA#LcKTl# zAJL6C-h%x^Pe*y`Uw$&^pDWl$e58-~Y2JB)o<)esPohPCDJ~>W<3!Uq*?T|Y`2s)1 zp;?IIY{8Gk!hA`zi~OT`NS^q~FPcAz{IpK<1pU-c^Ug$?>}f;1ys=b2VUe#%h-b?f z^aH{=kX_`DxE{2gG`>`rkNhS3+XTL50Z&GLilb=1h)J$Wh$oFx{KR}h{lX62oTrd730zBl;ZboJMH)+Ke_WCZg=VEp`e| zP=VX8L1{arZex01KNXN-@f`Q--7)srt^Z)3-9`TjPaxNFJeHP9A4Z}@!N%chIHl|N ze17O$_m*KlN4~jl_yR;{^o8M72hRS{aC2c(kUKQqy@mRb)^J=qQ_K(LVi(tQopKY1|1hMf`-B$ZGuS4w+=w$-k`9E&Xf7Rl`PdEH{ghyMXwvc?`U{Y1f z_8p!7qtf^nRy^$$p5b*s6hF?(#mKuFTjR0tm=iwpd4wndt=^Yd$_pRk!DC)3Y`-X_ z52eQ#%O9P1*v7nT!^3VsGjicsIEjAIqI-z{5>hBYDyB!AYjVhMLw9}G{sNN}tNCFR F005@-Jl_BS literal 1640 zcmV-u2ABCCiwFP!000001H~9^Y!p>+@2f`(Emum>28gv3N-b1M`GJPe1(e1p5~&6> z>ax9i*IU`!-R$m_7JfhiMu~}Ff+mn)B7aQ$!w*ROA<}9TF@7hgKQ!_cNlX;^VN??6 zId6An_wL;lY5ZW*>AZPwX5P%adGF1;Ep?J4#iV#7BE=HWloC%ozJBRS=xg!@0xUIf zEI+vN(yMRm-^=mK$@iN%K63VvH)(vl>*&Rk-(C1gp7qMuTYam}$c>+$=>77em4W=i z#cJne_4o0XMTwyg?6&bW8(J=P&U{^x;!zlnNO7r_8)2w<=0GFmTjzDg4bx!QP7av5 zYIkpkr=JsyVQx6c`4gZS8;tg@Kw5~cdSrj|#GODX~yXv6M%6hUkXcQDQ zc58;qY(v$%9j0e(mW9qa2onfX^Ms2;dF11Wn^6VLIRn_3#o(WjW*FUww<_?54o7@> zZ+d@xzbxVB(S28?$>=(i7uzCVsZBM8Y3EhF#OZ2UA|=*EOWLuLwl1v3Btfb$Oiqzq ze1RfGRMU)d(^Si{O*NfEdZuNwjFxsa(@=IW+r;h$LrI(YLCsM4h(l>IWSa$xlFLvW zHE-$62|ET=H=PSQ;tpdOY^Sy{W_bci*0h!30TR+2#Ts>Urhy&P&4OzcT*c9LP=3VS zQ7g!moM~%20`5A`B1Kn+Xwn*2%WK9ESQc&5GM+bDevav&2~2e1gB z9%cRnSO#z%;1k~#?n7h&4SfX4yzEqfkd4?vF}AE_Vu?*qIBaHAjFNE60k6YAtK zpN)DSgRzt!!-$MAxq`s`PXinT_!i&`fVlu~qdy?GdY?S^5dRL# zQKZ|EUV!v`qzNzmlz*SeOORfO^u7LGm0Jj{E)d z1^bAP^btSJ+a~B)jF|i+TJ)FVLh>|DG>wzJcOzaP@KYSxg*eU?{8%E)mqNS9KbnW+ ziJ$zU`BTVG>(nObr+%7u4$@>#7vdEy<@yPWe62z}J0_v;5!Qk1B7em7p!KBjWx{;q zFWKKE@U;tgI`UH-Mf*ieay3FcX`JFG<`e1{ZmpYNew;O0l*&t+gMNQZRB;Q{Oq|P9 zD_Z{M4xSKBcYcj40GIuf8p}Rf5n)IFbB}M_7LTi2JyLdk){X?%Yj_tX5XWw5s%ROD zQOGk}ON-=GLRfkylgm>SFJq^IwnkS6nNBrA(krNglA%5eRS1+lIveIZVagvEqT=h=0Yt4bcF`dP$6bdyw%YMIj7ii%mGoU1JGpz=WlPELhdbyV5Tw4oeTgkm+E z@Cw*T_SyCSV4vMa|H3zmW7;muNaZgX(IS82@HL##_iM2@dZvHtn3p48-8FU&qBHT# z*y;nP|7g0lsMXIM8t>mq{Ya}guAVC8hjOux>$yrf5Lgn+Xn842bJ`wc&NND#k|$YJ zTI?@RxrSi5Q9qs!-dRCgE>>31Ad6XPbaLFp( z65K{_OOYQkdLv^*!k3`WM^9sUb!MM??Al)WVb*-2ab|wMls=RmlPrI1>S3Got_=>mVO1{# mXW=yZ35xC^{?kTSfK*M71lMGf-@4{_uKfiu7qR#f6aWA&GbyV8 diff --git a/tests/testthat/_snaps/output/output_lm_timeseries_method.rds b/tests/testthat/_snaps/output/output_lm_timeseries_method.rds index 377970b70a4614289f6c7b435d9b612327f21817..3c0f1665eb687c937addc6e9ca094a71bdaeca06 100644 GIT binary patch delta 33369 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 F000Ow74-lB delta 33351 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

vV%oo?TWJ3-to>&3QU%4(_^-W6E^wXu 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 bf2`5Y3Non(=D(cGVz3tgQCkOkOV9uS<@yuT From c2599fe035e574fa8a518c3cc797631b1495cb96 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 16 Nov 2023 15:09:46 +0100 Subject: [PATCH 41/56] change batches in test files --- tests/testthat/test-output.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-output.R b/tests/testthat/test-output.R index 4c5b848bc..20b7d312d 100644 --- a/tests/testthat/test-output.R +++ b/tests/testthat/test-output.R @@ -213,7 +213,7 @@ test_that("output_lm_numeric_comb1", { x_train = x_train_numeric, approach = c("gaussian", "empirical", "ctree", "independence", "empirical"), prediction_zero = p0, - n_batches = 10, + n_batches = 4, timing = FALSE ), "output_lm_numeric_comb1" @@ -228,7 +228,7 @@ test_that("output_lm_numeric_comb2", { x_train = x_train_numeric, approach = c("ctree", "copula", "independence", "copula", "empirical"), prediction_zero = p0, - n_batches = 10, + n_batches = 3, timing = FALSE ), "output_lm_numeric_comb2" @@ -243,7 +243,7 @@ test_that("output_lm_numeric_comb3", { x_train = x_train_numeric, approach = c("independence", "empirical", "gaussian", "empirical", "gaussian"), prediction_zero = p0, - n_batches = 10, + n_batches = 3, timing = FALSE ), "output_lm_numeric_comb3" @@ -292,7 +292,7 @@ test_that("output_lm_mixed_comb", { x_train = x_train_mixed, approach = c("ctree", "independence", "ctree", "independence", "independence"), prediction_zero = p0, - n_batches = 10, + n_batches = 2, timing = FALSE ), "output_lm_mixed_comb" From aacb474f6c65b702b5407820b4ed2df61b94b5e9 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 16 Nov 2023 15:18:59 +0100 Subject: [PATCH 42/56] accept new files --- .../output/output_lm_categorical_ctree.rds | Bin 2642 -> 2557 bytes .../output_lm_categorical_independence.rds | Bin 2574 -> 2480 bytes .../output/output_lm_categorical_method.rds | Bin 3043 -> 2954 bytes .../_snaps/output/output_lm_mixed_comb.rds | Bin 4226 -> 3793 bytes .../_snaps/output/output_lm_numeric_comb1.rds | Bin 4417 -> 4095 bytes .../_snaps/output/output_lm_numeric_comb2.rds | Bin 4647 -> 4328 bytes .../_snaps/output/output_lm_numeric_comb3.rds | Bin 4338 -> 4020 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/testthat/_snaps/output/output_lm_categorical_ctree.rds b/tests/testthat/_snaps/output/output_lm_categorical_ctree.rds index 622fd4b6f257af899e6a11ab628b0ce31900a1a3..c5fe96c0c4d269aafc5f26d2901d00afd7667e1d 100644 GIT binary patch literal 2557 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 T1VTKPHeCBJ2xjHxUnl?oUMdYK literal 2642 zcmV-Y3a#}YiwFP!000001MM0MY!ugVZ*T8w{NWRV5eTR&;?U!`5B}A$_Zdua!Y`@g zLi$_w?6vRg^WAxG4~%I6H36z33QY>35iL!dK$|o)NdYCa=~*p}Xi_lHib_o&Q2^0I z&`=>YQ4qfFzI(IxZhaT98xx__;xY4P=FOX#H}AW*!pSgs)1<-msSVdOxUqM~Sm5_h`fG8b`_jq&JBvFwS9mb#`NJ>Bm;v}fb|-81?tj?R8*+padf{p3?q{uA#`qKY#|`cHNh^4Ip) z3wx|c=i82QQ%}tKP5-P|bM53rP5&MH%6b})c^HOcRlbSg7>8zWMC_L0DpG=tPZPOF zG$Ijv%#vtC2@36Es}hw7ZQQaxRX~U*0)9_6r>Hp^7G?LBv#ABkLyP8^uoTY_0;19y)CpW%lG+Gf(j`eT+(2lL%EGEBbl7oOmo80xOGk zY9P_tB>{O%nw$dRq}OmgNmwd4G;X>9&B$YO@QsBvlzjc% ztR1=Z=CU!L?fGVwKPC9DQjcYlD%6^MuI*h<8|H4->^kid`)Z0_~Jd zkmOcEcN%0ls?HH;B|7Og7Q(ZUx{Vn+iA|I~D=7{pGm)(ZXd<|YYGbGTagz29ipNs2 zwBIHoPwRjM&_KnK;%L2QRuKupbf^nwkrs6hO|7b_(T@o*T%-U%CJd8NCu%H^+d zSA9b#X*E}s&pj7N&T_5h@_H(O;wV=uF0a3uBKWIa-YO48sPedc9)E_QR$M-RB}MR8 zx_p&26rr-l<@b0q1hwMw`&C1RlbBr{|wswLS5PpH7UpnC-`RD}T4Dt?Qr=7{(g{_2MK=FzQUPy3On1EYAE88nGKw6$e2+&-N0@_cF#|2=Y*Y#Or+1os;oI|W%L#HGd<(4|9{5kp7B{-K~!wLS$Ani zuYT9g++HmNnn&GCmR4`g61l=R50{WmcBpH$7wjq7VAToh8mq=G7qct<15SLetd;T zS=J!O8f4iV@~nZ+8u(_aPM;XeIcP>XV_Ty>ju{#^h$ln&pYMHyw%_>RM2`z+DAqj1 zC}$#LRMOynWP@f9eFk*97v@GTI#-r;e>~JF!cUvHionQ zZLOD=biTeY{35T`FFsi@C3&!=Wz*zKO&Gd+U&YXOayph<;eQ6#=h=UY<@bND5ZBB3 zwHUe{{|D&9^-x(H!`fp9u>4C8%*J)gx65gL8&5jTn2u(S$FTWO0hZsfbz=RBj_T9b zUJvpry=CdoU%@cC>4GNL^7VJiFccfsYjS_Dzu1WRwG#tr{(Gjh{ATP&%aQ{#vE0gp z57Rf7m14Ru(Tkz{R2Qb-_xQtDZt6o{NfJ4p$niujNz1AICP}|M={HIG<>`JwPW2;6 z{NRZnJmtrnCyrw~w7BpjE-)nKYB3M|c@2xri@-Imvlh4jnYwLpa#P=8D85gcb`d8X`Ols8^^%a0D2L!%3+nNQkgy;H-n%=^} zZ$!LDb^=QXoIv0t0?8+MG@ZcD5%_rmXA)RW;4A`N1iA_IK)lm-!0#x~JZ@3AanEve z|Gve?0+$9+L(i5Yb9N<*whZgtD z2{hScw5Z|W9UnbkjOIP7?D)>%7tn%N8aj_X6-4(g9eCo5^D3Hu{iD#E+jpXcFL$5) z?z$e-_(5{azGu!4wF7P0^S382BG07ow8PcA(XxsQr;;x>qkELFMmub-q@H z(Bi!Z&K=#|ggkva?N`J{(fqo*9&I{VjAk5s;H&H}zKHIdwugQD3#F(rIN-nh>*Hv` za{sBRzr2jl^L>AMY;Zc_X9Zr}cV0oYKQ4NB<+g7Qv7@Qs_*=}WWoXW`ms>l3;zA2t zmsibP|0Y6zj0Sgw6R7eB%!k##TZ|UU=Cic}kD!Hbth>7W#U|wY=eo0PI}f1QrQW)g z%7j^UCbQj{A^jo!@(jOu z_+iU?Q`ZlltHf|ZKbzX&M_}-Dp#5Ga^N^M^JuI3gcqib(p*VK!ze^Cz%Md640Lk(? Ad;kCd diff --git a/tests/testthat/_snaps/output/output_lm_categorical_independence.rds b/tests/testthat/_snaps/output/output_lm_categorical_independence.rds index 05080e940ed7f83da377dd5f6ed2b4755fa58463..25b0487d0858fc14301582599c7dfab2477d05fc 100644 GIT binary patch literal 2480 zcmV;h2~YMPiwFP!000002JIScY!t_JZ*T9;XX6iWTp9!=(6oZ|dcF_aXG6q|3)G+n zNO1hokg}}pweP}t@4UBX45+D7Ncus8qlyMf1R;p3g#LgCHEw~}R;j8;iAow$QmGAX zMOvgbZBVKvsVKhg?!C7+H@*Yx#zawq7{52~y?OKI&6}Awv)5kCah#nK>^9Es&{59O z*t~r8YMoYTGBVKMlo@rhvi{QUc_)Se{v09l$Ex@h8y^opZ^CaW3rS^5RpN`YE3Nil z`0FpKx7T)!RWCVt@pSo~4E%4O)qd{cXE$9u_av#Q`nzNA#cknBvo@54+n%uaww6@e z;SJoF=k~s8|66m$?$|(vN8Y-h;{;yk+c<%98}=$vubkA83e)%uQBdNF4ET&SaYc)W z-BPC(SAjNb-8Nl7Or|=5zFbaOb37)g-u1cElD4SQg{0j6-D-S`7i}oj3qPp;NvG4- zSVKEwQW6d2fmqxnX_8lyI%0ATrCZfCG74sTqlzZ0iWKuE%3re z#~ZUP0GtioqrEe9X*nV5f0RxcX4Pg!k^Uc?WrH^37JrCv@XxG=uW*Ix#n7I`SvlG! zrxI6tr5NR~d|GUjbpnOkDLe+6h3Rwf^#+x_pH6K8|^A}Ntj<5Fh?>g5Sl z?uvG5(YPXRlhrudrih*K-j1ju8Jr}BZ;u*JB{1j}F)8&XVsbJ|=#aF|h(!>RvfKrD z#b#Mfm<`14xGMHHW20zNOl;L6aRtX8PicviCMKiXFm45HYXWgsB(6rcS<=O(MPf|q z!A_l8v^T2spvCfl?nx9@#BN#AQYvk-JdlV@DEN+bHq-b`#C7QIB zmLj5KExAfXOexX6l$?i^O3Ga##KIX&bN&%eOPO(S`1xwwdjR9&tIgIHe-x?6{6CmGl;D1qn|%hsJF;ps_qY z51%bOQwsHSvv%auo6p8VwinWMJ>AzELm~Ma`KplJdHOPD)`c^R>443Lh<{RZj|;^G zrARMsfJKx|801c%7c;T~RTls{K_}hD0X!GfUEIV)Y@_r!p}4v1LUuCH2DpuCQ$&rY z7}~oj9#6^A6y=C)nT(ea#{nHBTtutwB=pBBSQ<`)ZNmUZht%{$M>t2-bW2As5G=rjHu$6Gx z9ofJuselqdt_0c^0bT<95~g1|;4%2<01y~?H`rOk<(|S$pqEg*GQdj#cQdlHDBF(vl92B03ty|Y9@D#Wf0!)voODf z1uQIRVKo+3YhiU37P2txf)7}l12?sC8WMb(%e}DeVOmb&jwTpw@?FKI?{<)r;ZNfw zWSq%I>3mCIB4(Ph8$3e{Wn;ij&e~x=)+_$nCo4YxiqGi^z2X|k zxgWa+tow8J_UZs=pLR2OTD>zz@Mdba(wq27Hl;nX@Gkce-KReKJI#l&2<;fZF{#6N zPJkt8zA0NzOQo6SqV?o}hqsH%rij!-1xKf{^!%m6S$zUG(QoKajv9ZV_YvBD_Q8ps7lA3x z0)>^c!5mdIdUp;Q28CbA7*-IDO%mQfANC7lF^XG1VAHrjay|uoLX$23z`T9qis3rf zVSLfQ)sWe3T)0(5yXbdnpcXMN=@Z}9ZEI0MG9o2n@>X$+9PNqVV?6sI!eM?pD3GLG znT90oLmXc=Jx#_{P441ylUCNEOafuV$i3mW(`iX6{qyL#boyLf=$|I69zO~2Ie;gY zscRm3sVR0ctk*9e>pL*|)0URUs)tSkJcV^ru041R>Z7Lok@^<1zPMEd*k{VEd&Qfh zXK`zikxw#mr+}`p^2^$L>R(@Wd1Y9qw@7neFyRB2Qifd1M(%cmrrbB}3qbA+(ph;% z?gds4$ZLk&g{v<`M(KW$kMa}c&M^E`nCh3-$MR{p>N5|1H4J_UgI@q9M=8Hha;I57 z)=jznzupXTqYPgSJY(3AxkS)Y}nhLj=E6yP8GV!t;Hn z%^cx4ZUUnxMF1-R-Ujf~0Ota{1K>h{cLMx8z(oM>0_Xwg1?WS6XY9aVSdcI6`TF2H zr@l|_@%Ha~dWk?9k3aFJqq80$E9NW1tKL0IRu4TM`qz%*WZ8nX>GywDLK+7jZ9PDm z$*Nla){Xwygg6I3c}>!yCq(Wa)vj9h-(aCfL#RbmY{p?*F!B$I3^_2d>`NOB(0> z`{HZmZ6ti8_7B^C*H4=MF?0QAYs<*;@4PpB^_}<0(w-gde|eRVz%%#Wxp!?9Y219U z-}m+#gv>wt=>C_-NN8*Gh09f~Wclld*0rC1m;~>Brun||1*HDAA2|+P=qPY!ERcF6 z#E7K%ML$yyF!kUqOqM=Si>>wPFw)@x-9orW<}fQnaY7!1_s#Ka$@@&@=+d%3F)7n4 z^bb!aHp9^sCnUocnygwsVKF>}8$i6{A-PkterS^Up$eBh?(7);7=8t&-#&S_6?_Y@ ulFxoAma=lwBK(yY-aCw6`DCB!@`i`Q(1b4$LM)mzhxR}Cf-JBxC;$Kg*zD5) literal 2574 zcmV+p3i0(HiwFP!000001MM0Ma8%Xx?c2BCkPn0~>OjGwG}2|+?2>FCly{?nU@IVm zKp2q6OY)Lk+3YTFHxR;D;{bjrN@og%>WE-*MCw%9s!*J=85td?+ET<~r&_CnmZ`M^ zwbR-TL$>eTJ?HJ+mt7&L!ErQ`yXV|<&pr2?bI-f?-1}aOo8veuCs-_;)uy4Gt$FFZ zX|)=yoHk^j-cq91$=uqr4^23H6yPthj_v&we8cMAx3^OGQ94A*n=9hZ?Q4ww-~7vq z)3>+0*FSyMFWxz}G)Up$xwDM^<8OLu&6$=`GNa;ewnI;>5YLWTSvqPlG1@K7-7Vwy zF6#GOyKef8kzM_hR+1wxO*_tU0eU#eM0abzm)la(6pP5JcS$a_Xn8o=j-=f2U21HD7j-Ds3g4&wq|@n3 zW<}c~asn0Qf#`0Rld?A{w?>p4N{6aRGzl2(4M&rT8kHm7gc9jcl@5(K4$1(OtLFuM zI9`t!0bm6TkNS?%xRtn~{Y2Xom{kjnBJCfXWr02eM*9vu0O%jBix;>;bvN`k<7Pfq zCwnxecF7UOVfmz380`cGw=#GHBnuLJwwFDy*eRTl;v18pSQPDxbtmK9NhuNT#kdrb8{>#OLNPVmYjC@%Mp8uX z#6j)Ja923mi5e?Cnx~LCDs?DwvRh?UR(j$QIgIigQ7NfrtHr=CWgcFP*@Q%g-4ITo zTIJmdrCl;PEgSwkESy@PSc@SrFj(~9u|YwaEe{=WD?<}9vMCMeJky49EKFhhS{Phl z`djn#6&O0J1NJeuTTQyLg&m*O**p$wb3R?z!upJ*3*2CTAdTm8ZAV>f%vfMU&N6F{ zDC?Doc}KBSBT|D%5RqC$W@bcL@xe4ivTLRhBs}9B7Pnl6W^Uv2w3`cWDuu?mQa$p? z&8K4_-3!V3G})hKLm~dl`KplKdB)Ob)`2sN`?tl1NY#+$9v>736sJ~P0G*6Z802=K zyG^_TQx^c*K_=VB25ka945J&;940-{4wP$W=ooxu zTsGisAg7G6foJFrreIr1o^fraz%0kL$d5<>kr_kV#xe+B`@00KBG;-;DPRc%lr-lJjKFa1>f+=D~ zD7(Sk1a{BQZ0E$C3Lc~{$EvIwZ0C#>_DlW5U;65a&;P{d4252C^yD0PT|LHuID2}v z0kn>|nmjAsp2K)0wX5k(yw)1l8d-Ri`+}}hU;LHk^LPlY7{3v@RliPvN0MFw8`n+6 zneLKt<$#;FgUhCf%tZyqrn2n$iA|?5l`S=x1YR;k2mr1 zdH8u#J8x>YGIcg%u;!te`OJOI@&sU%=BTXR zyQNQ8Nc>$!v4XIFi10Glf^LFw>aUY2l3yd({ezfk|-(hJGIQu=W981A^28-KWZT1EKvNjP{+KffL1(D^5;HzgxlLSk6zW215EgbD8U_EgH zECVi};6I0axOz^MQ|0KEWx=cGKeTW6!M8S% z?_BrY=&h+=6Y|KO=a=l6K;{)4skwCHWHNu#uHwBemDK%r^-mU@*hU(Ec(AKUo=qA) zNsW5)(EA1TnDv@}s%LZ!StP!&W7{kDli90I-*aKYI#T_R6nf*p{p7ZNuY3PI#z%q^ zx&A$eUnGrc*9m^jOmfqf*s0?`IzZ;nIv#z$V>xL!y`^>8Q}2-h^_h`xHH9J-h(xdUQ(6N`7Za4IpdrxW4#lC6lYil3O15pVGPF6`(rn=u$ z4_w7$=`+>Xcs^}%K@Ts_{*V?jc+NVy$;7ZAs(Hk<6DTTz0#&V)$eD6_|eO(A`$>F2G1W*UOP^BR6&8 kXI*&i&_CPBUe)Cd51TFtZz6<9I6+POA8g;iqT(k201XToH~;_u diff --git a/tests/testthat/_snaps/output/output_lm_categorical_method.rds b/tests/testthat/_snaps/output/output_lm_categorical_method.rds index 50996c361b9e0edc4550b27454eeb407edefc033..f91bdfe456f8ba2eca32591914b23ed2b007bdb6 100644 GIT binary patch literal 2954 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 AC;$Ke literal 3043 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 HAu|8~TFAaz literal 4226 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 ablA&7!#p`LZ>z=SOYPsY(Ct|hHUI!e1|v5B literal 4338 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 From 4dd1a86e60313af1d5dcb00c6f882c9092756fa5 Mon Sep 17 00:00:00 2001 From: Martin Date: Fri, 17 Nov 2023 07:14:53 +0100 Subject: [PATCH 43/56] handle issue with a breaking change update in the testthat package --- tests/testthat/_snaps/forecast-setup.md | 124 ++++++---- tests/testthat/_snaps/output.md | 9 +- tests/testthat/_snaps/setup.md | 312 ++++++++++++++---------- 3 files changed, 264 insertions(+), 181 deletions(-) diff --git a/tests/testthat/_snaps/forecast-setup.md b/tests/testthat/_snaps/forecast-setup.md index 8ae2d017f..6bf253f3b 100644 --- a/tests/testthat/_snaps/forecast-setup.md +++ b/tests/testthat/_snaps/forecast-setup.md @@ -7,12 +7,13 @@ xreg = data[, "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Message + Message Note: You passed a model to explain() which is not natively supported, and did not supply a 'get_model_specs' function to explain(). Consistency checks between model and data is therefore disabled. - Error - You passed a model to explain() which is not natively supported, and did not supply the 'predict_model' function to explain(). + Condition + Error in `get_predict_model()`: + ! You passed a model to explain() which is not natively supported, and did not supply the 'predict_model' function to explain(). See ?shapr::explain or the vignette for more information on how to run shapr with custom models. # erroneous input: `x_train/x_explain` @@ -23,8 +24,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `y` has 2 columns (Temp,Wind). + Condition + Error in `get_data_forecast()`: + ! `y` has 2 columns (Temp,Wind). `explain_y_lags` has length 1. These two should match. @@ -36,8 +38,9 @@ train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `xreg` has 2 columns (Temp,Wind). + Condition + Error in `get_data_forecast()`: + ! `xreg` has 2 columns (Temp,Wind). `explain_xreg_lags` has length 1. These two should match. @@ -50,8 +53,9 @@ train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `xreg` misses column names. + Condition + Error in `get_data_forecast()`: + ! `xreg` misses column names. # erroneous input: `model` @@ -59,8 +63,9 @@ explain_forecast(y = data[1:150, "Temp"], xreg = data[, "Wind"], train_idx = 2: 148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - argument "model" is missing, with no default + Condition + Error in `explain_forecast()`: + ! argument "model" is missing, with no default # erroneous input: `prediction_zero` @@ -70,8 +75,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_wrong_length, n_batches = 1) - Error - `prediction_zero` (77.8823529411765, 77.8823529411765) must be numeric and match the output size of the model (3). + Condition + Error in `get_parameters()`: + ! `prediction_zero` (77.8823529411765, 77.8823529411765) must be numeric and match the output size of the model (3). # erroneous input: `n_combinations` @@ -85,12 +91,13 @@ explain_xreg_lags = explain_xreg_lags, horizon = horizon, approach = "independence", prediction_zero = p0_ar, n_batches = 1, n_combinations = n_combinations, group_lags = FALSE) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. - Error - `n_combinations` (6) has to be greater than the number of components to decompose the forecast onto: + Condition + Error in `check_n_combinations()`: + ! `n_combinations` (6) has to be greater than the number of components to decompose the forecast onto: `horizon` (3) + `explain_y_lags` (2) + sum(`explain_xreg_lags`) (2). --- @@ -105,12 +112,13 @@ explain_xreg_lags = explain_xreg_lags, horizon = horizon, approach = "independence", prediction_zero = p0_ar, n_batches = 1, n_combinations = n_combinations, group_lags = TRUE) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. - Error - `n_combinations` (2) has to be greater than the number of components to decompose the forecast onto: + Condition + Error in `check_n_combinations()`: + ! `n_combinations` (2) has to be greater than the number of components to decompose the forecast onto: ncol(`xreg`) (1) + 1 # erroneous input: `train_idx` @@ -121,8 +129,9 @@ "Wind"], train_idx = train_idx_too_short, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `train_idx` must be a vector of positive finite integers and length > 1. + Condition + Error in `get_parameters()`: + ! `train_idx` must be a vector of positive finite integers and length > 1. --- @@ -132,19 +141,21 @@ "Wind"], train_idx = train_idx_not_integer, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `train_idx` must be a vector of positive finite integers and length > 1. + Condition + Error in `get_parameters()`: + ! `train_idx` must be a vector of positive finite integers and length > 1. --- Code train_idx_out_of_range <- 1:5 - explain_forecast(model = model_arima_temp, y = data[1:150, "Temp"], xreg = data[, - "Wind"], train_idx = train_idx_out_of_range, explain_idx = 149:150, - explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", - prediction_zero = p0_ar, n_batches = 1) - Error - The train (`train_idx`) and explain (`explain_idx`) indices must fit in the lagged data. + explain_forecast(model = model_arima_temp, y = data[1:150, "Temp"], xreg = data[, "Wind"], + train_idx = train_idx_out_of_range, explain_idx = 149:150, explain_y_lags = 2, + explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, + n_batches = 1) + Condition + Error in `get_data_forecast()`: + ! The train (`train_idx`) and explain (`explain_idx`) indices must fit in the lagged data. The lagged data begins at index 2 and ends at index 150. # erroneous input: `explain_idx` @@ -155,8 +166,9 @@ "Wind"], train_idx = 2:148, explain_idx = explain_idx_not_integer, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_idx` must be a vector of positive finite integers. + Condition + Error in `get_parameters()`: + ! `explain_idx` must be a vector of positive finite integers. --- @@ -166,8 +178,9 @@ "Wind"], train_idx = 2:148, explain_idx = explain_idx_out_of_range, explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - The train (`train_idx`) and explain (`explain_idx`) indices must fit in the lagged data. + Condition + Error in `get_data_forecast()`: + ! The train (`train_idx`) and explain (`explain_idx`) indices must fit in the lagged data. The lagged data begins at index 2 and ends at index 150. # erroneous input: `explain_y_lags` @@ -178,8 +191,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = explain_y_lags_negative, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_y_lags` must be a vector of positive finite integers. + Condition + Error in `get_parameters()`: + ! `explain_y_lags` must be a vector of positive finite integers. --- @@ -189,8 +203,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = explain_y_lags_not_integer, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_y_lags` must be a vector of positive finite integers. + Condition + Error in `get_parameters()`: + ! `explain_y_lags` must be a vector of positive finite integers. --- @@ -200,8 +215,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = explain_y_lags_more_than_one, explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `y` has 1 columns (Temp). + Condition + Error in `get_data_forecast()`: + ! `y` has 1 columns (Temp). `explain_y_lags` has length 2. These two should match. @@ -212,8 +228,9 @@ explain_forecast(model = model_arima_temp_noxreg, y = data[1:150, "Temp"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 0, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_y_lags=0` is not allowed for models without exogeneous variables + Condition + Error in `get_data_forecast()`: + ! `explain_y_lags=0` is not allowed for models without exogeneous variables # erroneous input: `explain_x_lags` @@ -223,8 +240,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = explain_xreg_lags_negative, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_xreg_lags` must be a vector of positive finite integers. + Condition + Error in `get_parameters()`: + ! `explain_xreg_lags` must be a vector of positive finite integers. --- @@ -234,8 +252,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = explain_xreg_lags_not_integer, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `explain_xreg_lags` must be a vector of positive finite integers. + Condition + Error in `get_parameters()`: + ! `explain_xreg_lags` must be a vector of positive finite integers. --- @@ -245,8 +264,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = explain_x_lags_wrong_length, horizon = 3, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `xreg` has 1 columns (Wind). + Condition + Error in `get_data_forecast()`: + ! `xreg` has 1 columns (Wind). `explain_xreg_lags` has length 2. These two should match. @@ -258,8 +278,9 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = horizon_negative, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `horizon` must be a vector (or scalar) of positive integers. + Condition + Error in `get_parameters()`: + ! `horizon` must be a vector (or scalar) of positive integers. --- @@ -269,6 +290,7 @@ "Wind"], train_idx = 2:148, explain_idx = 149:150, explain_y_lags = 2, explain_xreg_lags = 2, horizon = horizon_not_integer, approach = "independence", prediction_zero = p0_ar, n_batches = 1) - Error - `horizon` must be a vector (or scalar) of positive integers. + Condition + Error in `get_parameters()`: + ! `horizon` must be a vector (or scalar) of positive integers. diff --git a/tests/testthat/_snaps/output.md b/tests/testthat/_snaps/output.md index 02bf05f21..303f9a777 100644 --- a/tests/testthat/_snaps/output.md +++ b/tests/testthat/_snaps/output.md @@ -32,10 +32,11 @@ Code (out <- code) - Warning + Condition + Warning in `setup_approach.empirical()`: Using empirical.type = 'independence' for approach = 'empirical' is deprecated. Please use approach = 'independence' instead. - Message + Message Success with message: empirical.eta force set to 1 for empirical.type = 'independence' @@ -208,7 +209,7 @@ Code (out <- code) - Message + Message Note: You passed a model to explain() which is not natively supported, and did not supply a 'get_model_specs' function to explain(). Consistency checks between model and data is therefore disabled. @@ -222,7 +223,7 @@ Code (out <- code) - Message + Message Note: You passed a model to explain() which is not natively supported, and did not supply a 'get_model_specs' function to explain(). Consistency checks between model and data is therefore disabled. diff --git a/tests/testthat/_snaps/setup.md b/tests/testthat/_snaps/setup.md index f61e67076..fa55bbcc8 100644 --- a/tests/testthat/_snaps/setup.md +++ b/tests/testthat/_snaps/setup.md @@ -5,12 +5,13 @@ class(model_custom_lm_mixed) <- "whatever" explain(model = model_custom_lm_mixed, x_train = x_train_mixed, x_explain = x_explain_mixed, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Message + Message Note: You passed a model to explain() which is not natively supported, and did not supply a 'get_model_specs' function to explain(). Consistency checks between model and data is therefore disabled. - Error - You passed a model to explain() which is not natively supported, and did not supply the 'predict_model' function to explain(). + Condition + Error in `get_predict_model()`: + ! You passed a model to explain() which is not natively supported, and did not supply the 'predict_model' function to explain(). See ?shapr::explain or the vignette for more information on how to run shapr with custom models. # messages with missing detail in get_model_specs @@ -19,7 +20,7 @@ explain(model = model_custom_lm_mixed, x_train = x_train_mixed, x_explain = x_explain_mixed, approach = "independence", prediction_zero = p0, predict_model = custom_predict_model, get_model_specs = NA, n_batches = 1, timing = FALSE) - Message + Message Note: You passed a model to explain() which is not natively supported, and did not supply a 'get_model_specs' function to explain(). Consistency checks between model and data is therefore disabled. @@ -38,7 +39,7 @@ explain(model = model_custom_lm_mixed, x_train = x_train_mixed, x_explain = x_explain_mixed, approach = "independence", prediction_zero = p0, predict_model = custom_predict_model, get_model_specs = custom_get_model_specs_no_lab, n_batches = 1, timing = FALSE) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. @@ -57,7 +58,7 @@ explain(model = model_custom_lm_mixed, x_train = x_train_mixed, x_explain = x_explain_mixed, approach = "independence", prediction_zero = p0, predict_model = custom_predict_model, get_model_specs = custom_gms_no_classes, n_batches = 1, timing = FALSE) - Message + Message Note: Feature classes extracted from the model contains NA. Assuming feature classes from the data are correct. @@ -77,7 +78,7 @@ explain(model = model_custom_lm_mixed, x_train = x_train_mixed, x_explain = x_explain_mixed, approach = "independence", prediction_zero = p0, predict_model = custom_predict_model, get_model_specs = custom_gms_no_factor_levels, n_batches = 1, timing = FALSE) - Message + Message Note: Feature factor levels extracted from the model contains NA. Assuming feature factor levels from the data are correct. @@ -93,8 +94,9 @@ x_train_wrong_format <- c(a = 1, b = 2) explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_wrong_format, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_train should be a matrix or a data.frame/data.table. + Condition + Error in `get_data()`: + ! x_train should be a matrix or a data.frame/data.table. --- @@ -102,8 +104,9 @@ x_explain_wrong_format <- c(a = 1, b = 2) explain(model = model_lm_numeric, x_explain = x_explain_wrong_format, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_explain should be a matrix or a data.frame/data.table. + Condition + Error in `get_data()`: + ! x_explain should be a matrix or a data.frame/data.table. --- @@ -112,8 +115,9 @@ x_explain_wrong_format <- c(a = 3, b = 4) explain(model = model_lm_numeric, x_explain = x_explain_wrong_format, x_train = x_train_wrong_format, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_train should be a matrix or a data.frame/data.table. + Condition + Error in `get_data()`: + ! x_train should be a matrix or a data.frame/data.table. x_explain should be a matrix or a data.frame/data.table. --- @@ -123,8 +127,9 @@ names(x_train_no_column_names) <- NULL explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_no_column_names, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_train misses column names. + Condition + Error in `get_data()`: + ! x_train misses column names. --- @@ -134,8 +139,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_no_column_names, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_explain misses column names. + Condition + Error in `get_data()`: + ! x_explain misses column names. --- @@ -146,16 +152,18 @@ explain(model = model_lm_numeric, x_explain = x_explain_no_column_names, x_train = x_train_no_column_names, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - x_explain misses column names. + Condition + Error in `get_data()`: + ! x_explain misses column names. # erroneous input: `model` Code explain(x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - argument "model" is missing, with no default + Condition + Error in `explain()`: + ! argument "model" is missing, with no default # erroneous input: `approach` @@ -164,8 +172,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = approach_non_character, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - `approach` must be one of the following: + Condition + Error in `check_approach()`: + ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries or a vector of length equal to the number of features ( 5 ) with only the above strings. @@ -176,8 +185,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = approach_incorrect_length, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - `approach` must be one of the following: + Condition + Error in `check_approach()`: + ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries or a vector of length equal to the number of features ( 5 ) with only the above strings. @@ -188,8 +198,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = approach_incorrect_character, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - `approach` must be one of the following: + Condition + Error in `check_approach()`: + ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries or a vector of length equal to the number of features ( 5 ) with only the above strings. @@ -200,8 +211,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0_non_numeric_1, n_batches = 1, timing = FALSE) - Error - `prediction_zero` (bla) must be numeric and match the output size of the model (1). + Condition + Error in `get_parameters()`: + ! `prediction_zero` (bla) must be numeric and match the output size of the model (1). --- @@ -210,8 +222,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0_non_numeric_2, n_batches = 1, timing = FALSE) - Error - `prediction_zero` () must be numeric and match the output size of the model (1). + Condition + Error in `get_parameters()`: + ! `prediction_zero` () must be numeric and match the output size of the model (1). --- @@ -220,8 +233,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0_too_long, n_batches = 1, timing = FALSE) - Error - `prediction_zero` (1, 2) must be numeric and match the output size of the model (1). + Condition + Error in `get_parameters()`: + ! `prediction_zero` (1, 2) must be numeric and match the output size of the model (1). --- @@ -229,8 +243,9 @@ p0_is_NA <- as.numeric(NA) explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0_is_NA, n_batches = 1, timing = FALSE) - Error - `prediction_zero` (NA) must be numeric and match the output size of the model (1). + Condition + Error in `get_parameters()`: + ! `prediction_zero` (NA) must be numeric and match the output size of the model (1). # erroneous input: `n_combinations` @@ -239,8 +254,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_non_numeric_1, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -249,8 +265,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_non_numeric_2, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -259,8 +276,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_non_integer, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -269,8 +287,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_too_long, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -279,8 +298,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_is_NA, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -289,8 +309,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations_non_positive, n_batches = 1, timing = FALSE) - Error - `n_combinations` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_combinations` must be NULL or a single positive integer. --- @@ -299,8 +320,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, prediction_zero = p0, approach = "gaussian", n_combinations = n_combinations, n_batches = 1, timing = FALSE) - Error - `n_combinations` has to be greater than the number of features. + Condition + Error in `check_n_combinations()`: + ! `n_combinations` has to be greater than the number of features. --- @@ -310,8 +332,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, prediction_zero = p0, approach = "gaussian", group = groups, n_combinations = n_combinations, n_batches = 1, timing = FALSE) - Error - `n_combinations` has to be greater than the number of groups. + Condition + Error in `check_n_combinations()`: + ! `n_combinations` has to be greater than the number of groups. # erroneous input: `group` @@ -320,8 +343,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = group_non_list, n_batches = 1, timing = FALSE) - Error - `group` must be NULL or a list + Condition + Error in `get_parameters()`: + ! `group` must be NULL or a list --- @@ -330,8 +354,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = group_with_non_characters, n_batches = 1, timing = FALSE) - Error - All components of group should be a character. + Condition + Error in `check_groups()`: + ! All components of group should be a character. --- @@ -341,8 +366,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = group_with_non_data_features, n_batches = 1, timing = FALSE) - Error - The group feature(s) not_a_data_feature are not + Condition + Error in `check_groups()`: + ! The group feature(s) not_a_data_feature are not among the features in the data: Solar.R, Wind, Temp, Month, Day. Delete from group. --- @@ -353,8 +379,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = group_missing_data_features, n_batches = 1, timing = FALSE) - Error - The data feature(s) Wind do not + Condition + Error in `check_groups()`: + ! The data feature(s) Wind do not belong to one of the groups. Add to a group. --- @@ -365,8 +392,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = group_dup_data_features, n_batches = 1, timing = FALSE) - Error - Feature(s) Solar.R are found in more than one group or multiple times per group. + Condition + Error in `check_groups()`: + ! Feature(s) Solar.R are found in more than one group or multiple times per group. Make sure each feature is only represented in one group, and only once. --- @@ -376,8 +404,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, group = single_group, n_batches = 1, timing = FALSE) - Error - You have specified only a single group named A, containing the features: Solar.R, Wind, Temp, Month, Day. + Condition + Error in `check_groups()`: + ! You have specified only a single group named A, containing the features: Solar.R, Wind, Temp, Month, Day. The predictions must be decomposed in at least two groups to be meaningful. # erroneous input: `n_samples` @@ -387,8 +416,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_non_numeric_1, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. --- @@ -397,8 +427,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_non_numeric_2, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. --- @@ -407,8 +438,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_non_integer, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. --- @@ -417,8 +449,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_too_long, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. --- @@ -427,8 +460,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_is_NA, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. --- @@ -437,8 +471,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_samples = n_samples_non_positive, n_batches = 1, timing = FALSE) - Error - `n_samples` must be a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_samples` must be a single positive integer. # erroneous input: `n_batches` @@ -447,8 +482,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_non_numeric_1, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -457,8 +493,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_non_numeric_2, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -467,8 +504,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_non_integer, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -477,8 +515,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_too_long, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -487,8 +526,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_is_NA, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -497,8 +537,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_non_positive, timing = FALSE) - Error - `n_batches` must be NULL or a single positive integer. + Condition + Error in `get_parameters()`: + ! `n_batches` must be NULL or a single positive integer. --- @@ -508,8 +549,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_combinations = n_combinations, n_batches = n_batches_too_large, timing = FALSE) - Error - `n_batches` (11) must be smaller than the number of feature combinations/`n_combinations` (10) + Condition + Error in `check_n_batches()`: + ! `n_batches` (11) must be smaller than the number of feature combinations/`n_combinations` (10) --- @@ -518,8 +560,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, n_batches = n_batches_too_large_2, timing = FALSE) - Error - `n_batches` (32) must be smaller than the number of feature combinations/`n_combinations` (32) + Condition + Error in `check_n_batches()`: + ! `n_batches` (32) must be smaller than the number of feature combinations/`n_combinations` (32) # erroneous input: `seed` @@ -528,10 +571,11 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, seed = seed_not_integer_interpretable, n_batches = 1, timing = FALSE) - Warning + Condition + Warning in `set.seed()`: NAs introduced by coercion - Error - supplied seed is not a valid integer + Error in `set.seed()`: + ! supplied seed is not a valid integer # erroneous input: `keep_samp_for_vS` @@ -540,8 +584,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, keep_samp_for_vS = keep_samp_for_vS_non_logical_1, n_batches = 1, timing = FALSE) - Error - `keep_samp_for_vS` must be single logical. + Condition + Error in `get_parameters()`: + ! `keep_samp_for_vS` must be single logical. --- @@ -550,8 +595,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, keep_samp_for_vS = keep_samp_for_vS_non_logical_2, n_batches = 1, timing = FALSE) - Error - `keep_samp_for_vS` must be single logical. + Condition + Error in `get_parameters()`: + ! `keep_samp_for_vS` must be single logical. --- @@ -560,8 +606,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, keep_samp_for_vS = keep_samp_for_vS_too_long, n_batches = 1, timing = FALSE) - Error - `keep_samp_for_vS` must be single logical. + Condition + Error in `get_parameters()`: + ! `keep_samp_for_vS` must be single logical. # erroneous input: `predict_model` @@ -570,8 +617,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, predict_model = predict_model_nonfunction, n_batches = 1, timing = FALSE) - Error - `predict_model` must be NULL or a function. + Condition + Error in `get_predict_model()`: + ! `predict_model` must be NULL or a function. --- @@ -582,8 +630,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, predict_model = predict_model_non_num_output, n_batches = 1, timing = FALSE) - Error - The predict_model function of class `lm` does not return a numeric output of the desired length + Condition + Error in `test_predict_model()`: + ! The predict_model function of class `lm` does not return a numeric output of the desired length for single output models or a data.table of the correct dimensions for a multiple output model. See the 'Advanced usage' section of the vignette: @@ -600,8 +649,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, predict_model = predict_model_wrong_output_len, n_batches = 1, timing = FALSE) - Error - The predict_model function of class `lm` does not return a numeric output of the desired length + Condition + Error in `test_predict_model()`: + ! The predict_model function of class `lm` does not return a numeric output of the desired length for single output models or a data.table of the correct dimensions for a multiple output model. See the 'Advanced usage' section of the vignette: @@ -618,8 +668,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, predict_model = predict_model_invalid_argument, n_batches = 1, timing = FALSE) - Error - The predict_model function of class `lm` is invalid. + Condition + Error in `test_predict_model()`: + ! The predict_model function of class `lm` is invalid. See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models. @@ -635,8 +686,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, predict_model = predict_model_error, n_batches = 1, timing = FALSE) - Error - The predict_model function of class `lm` is invalid. + Condition + Error in `test_predict_model()`: + ! The predict_model function of class `lm` is invalid. See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models. @@ -650,8 +702,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, get_model_specs = get_model_specs_nonfunction, n_batches = 1, timing = FALSE) - Error - `get_model_specs` must be NULL, NA or a function. + Condition + Error in `get_feature_specs()`: + ! `get_model_specs` must be NULL, NA or a function. --- @@ -662,8 +715,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, get_model_specs = get_ms_output_not_list, n_batches = 1, timing = FALSE) - Error - The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". + Condition + Error in `get_feature_specs()`: + ! The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models and the required output format of get_model_specs. @@ -677,8 +731,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, get_model_specs = get_ms_output_too_long, n_batches = 1, timing = FALSE) - Error - The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". + Condition + Error in `get_feature_specs()`: + ! The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models and the required output format of get_model_specs. @@ -692,8 +747,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, get_model_specs = get_ms_output_wrong_names, n_batches = 1, timing = FALSE) - Error - The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". + Condition + Error in `get_feature_specs()`: + ! The `get_model_specs` function of class `lm` does not return a list of length 3 with elements "labels","classes","factor_levels". See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models and the required output format of get_model_specs. @@ -707,8 +763,9 @@ explain(model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, approach = "independence", prediction_zero = p0, get_model_specs = get_model_specs_error, n_batches = 1, timing = FALSE) - Error - The get_model_specs function of class `lm` is invalid. + Condition + Error in `get_feature_specs()`: + ! The get_model_specs function of class `lm` is invalid. See the 'Advanced usage' section of the vignette: vignette('understanding_shapr', package = 'shapr') for more information on running shapr with custom models. @@ -724,8 +781,9 @@ explain(model = model_lm_mixed, x_explain = x_explain_mixed, x_train = x_explain_mixed, approach = non_factor_approach_1, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - The following feature(s) are factor(s): Month_factor. + Condition + Error in `setup_approach.gaussian()`: + ! The following feature(s) are factor(s): Month_factor. approach = 'gaussian' does not support factor features. Please change approach to one of 'independence' (not recommended), 'ctree', 'categorical'. @@ -736,8 +794,9 @@ explain(model = model_lm_mixed, x_explain = x_explain_mixed, x_train = x_explain_mixed, approach = non_factor_approach_2, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - The following feature(s) are factor(s): Month_factor. + Condition + Error in `setup_approach.empirical()`: + ! The following feature(s) are factor(s): Month_factor. approach = 'empirical' does not support factor features. Please change approach to one of 'independence' (not recommended), 'ctree', 'categorical'. @@ -748,8 +807,9 @@ explain(model = model_lm_mixed, x_explain = x_explain_mixed, x_train = x_explain_mixed, approach = non_factor_approach_3, prediction_zero = p0, n_batches = 1, timing = FALSE) - Error - The following feature(s) are factor(s): Month_factor. + Condition + Error in `setup_approach.copula()`: + ! The following feature(s) are factor(s): Month_factor. approach = 'copula' does not support factor features. Please change approach to one of 'independence' (not recommended), 'ctree', 'categorical'. From 30c202dd44fde3272540201e6ab8de053ca9ecf5 Mon Sep 17 00:00:00 2001 From: Martin Date: Fri, 17 Nov 2023 07:42:40 +0100 Subject: [PATCH 44/56] + these --- tests/testthat/_snaps/forecast-output.md | 1780 +++++++++++++++++++++- tests/testthat/_snaps/forecast-setup.md | 8 +- 2 files changed, 1778 insertions(+), 10 deletions(-) diff --git a/tests/testthat/_snaps/forecast-output.md b/tests/testthat/_snaps/forecast-output.md index 1049a2e5f..9d347b16a 100644 --- a/tests/testthat/_snaps/forecast-output.md +++ b/tests/testthat/_snaps/forecast-output.md @@ -2,7 +2,7 @@ Code (out <- code) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. @@ -19,7 +19,7 @@ Code (out <- code) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. @@ -43,7 +43,7 @@ Code (out <- code) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. @@ -60,7 +60,7 @@ Code (out <- code) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. @@ -77,1778 +77,3546 @@ Code (out <- code) - Message + Message Note: Feature names extracted from the model contains NA. Consistency checks between model and data is therefore disabled. - Warning + Condition + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] + Warning in `matrix()`: data length [2] is not a sub-multiple or multiple of the number of rows [3] Output explain_idx horizon none Wind.F1 Wind.F2 Wind.F3 diff --git a/tests/testthat/_snaps/forecast-setup.md b/tests/testthat/_snaps/forecast-setup.md index 6bf253f3b..b3b968b23 100644 --- a/tests/testthat/_snaps/forecast-setup.md +++ b/tests/testthat/_snaps/forecast-setup.md @@ -149,10 +149,10 @@ Code train_idx_out_of_range <- 1:5 - explain_forecast(model = model_arima_temp, y = data[1:150, "Temp"], xreg = data[, "Wind"], - train_idx = train_idx_out_of_range, explain_idx = 149:150, explain_y_lags = 2, - explain_xreg_lags = 2, horizon = 3, approach = "independence", prediction_zero = p0_ar, - n_batches = 1) + explain_forecast(model = model_arima_temp, y = data[1:150, "Temp"], xreg = data[, + "Wind"], train_idx = train_idx_out_of_range, explain_idx = 149:150, + explain_y_lags = 2, explain_xreg_lags = 2, horizon = 3, approach = "independence", + prediction_zero = p0_ar, n_batches = 1) Condition Error in `get_data_forecast()`: ! The train (`train_idx`) and explain (`explain_idx`) indices must fit in the lagged data. From a224648fa5e2c7a209ea1dc1d24bc17366d43f0b Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 11:48:13 +0100 Subject: [PATCH 45/56] removing last (unused) input of approach --- R/setup.R | 7 +++---- tests/testthat/test-output.R | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/R/setup.R b/R/setup.R index dcd56be1e..9643b6a91 100644 --- a/R/setup.R +++ b/R/setup.R @@ -226,8 +226,7 @@ check_n_batches <- function(internal) { if (n_batches < n_unique_approaches) { stop(paste0( "`n_batches` (", n_batches, ") must be larger than the number of unique approaches in `approach` (", - n_unique_approaches, "). Note that the last approach in `approach` is not included as it is not used ", - "to do any computations as described in the vignette." + n_unique_approaches, ")." )) } } @@ -679,13 +678,13 @@ check_approach <- function(internal) { supported_approaches <- get_supported_approaches() if (!(is.character(approach) && - (length(approach) == 1 || length(approach) == n_features) && + (length(approach) == 1 || length(approach) == n_features - 1) && all(is.element(approach, supported_approaches))) ) { stop( paste( "`approach` must be one of the following: \n", paste0(supported_approaches, collapse = ", "), "\n", - "or a vector of length equal to the number of features (", n_features, ") with only the above strings." + "or a vector of length one less than the number of features (", n_features - 1, "), with only the above strings." ) ) } diff --git a/tests/testthat/test-output.R b/tests/testthat/test-output.R index 20b7d312d..1cccf38c1 100644 --- a/tests/testthat/test-output.R +++ b/tests/testthat/test-output.R @@ -211,7 +211,7 @@ test_that("output_lm_numeric_comb1", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("gaussian", "empirical", "ctree", "independence", "empirical"), + approach = c("gaussian", "empirical", "ctree", "independence"), prediction_zero = p0, n_batches = 4, timing = FALSE @@ -226,7 +226,7 @@ test_that("output_lm_numeric_comb2", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("ctree", "copula", "independence", "copula", "empirical"), + approach = c("ctree", "copula", "independence", "copula"), prediction_zero = p0, n_batches = 3, timing = FALSE @@ -241,7 +241,7 @@ test_that("output_lm_numeric_comb3", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "empirical", "gaussian"), + approach = c("independence", "empirical", "gaussian", "empirical"), prediction_zero = p0, n_batches = 3, timing = FALSE @@ -290,7 +290,7 @@ test_that("output_lm_mixed_comb", { model = model_lm_mixed, x_explain = x_explain_mixed, x_train = x_train_mixed, - approach = c("ctree", "independence", "ctree", "independence", "independence"), + approach = c("ctree", "independence", "ctree", "independence"), prediction_zero = p0, n_batches = 2, timing = FALSE From b6da0781e8d4136a8ccdbb1094b80cc11df07066 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 11:48:56 +0100 Subject: [PATCH 46/56] updating tests --- .../_snaps/output/output_lm_mixed_comb.rds | Bin 3793 -> 4136 bytes .../_snaps/output/output_lm_numeric_comb1.rds | Bin 4095 -> 4440 bytes .../_snaps/output/output_lm_numeric_comb2.rds | Bin 4328 -> 4423 bytes .../_snaps/output/output_lm_numeric_comb3.rds | Bin 4020 -> 4361 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/testthat/_snaps/output/output_lm_mixed_comb.rds b/tests/testthat/_snaps/output/output_lm_mixed_comb.rds index 9074b6884a61b2e11f707c6dbce99245ab5870e6..915ae7b4e1586371114ab3216eba84123bcfd13d 100644 GIT binary patch literal 4136 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 literal 3793 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 HAu|8~TFAaz diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds index 3d5fbb6d6c848caa274c2f0767ea82e9c8449210..73ce4877d27c84798fcb759b94ef08568396c2bb 100644 GIT binary patch literal 4440 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 literal 4095 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 literal 4328 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 DA8^Jy literal 4020 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 ablA&7!#p`LZ>z=SOYPsY(Ct|hHUI!e1|v5B From c9ade53a5b5a7f74eb347aae4e3ebf133d115582 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 11:57:20 +0100 Subject: [PATCH 47/56] + update setup tests/snaps --- tests/testthat/_snaps/setup.md | 6 +++--- tests/testthat/test-setup.R | 34 +++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/testthat/_snaps/setup.md b/tests/testthat/_snaps/setup.md index fa55bbcc8..f9fedb8ed 100644 --- a/tests/testthat/_snaps/setup.md +++ b/tests/testthat/_snaps/setup.md @@ -176,7 +176,7 @@ Error in `check_approach()`: ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries - or a vector of length equal to the number of features ( 5 ) with only the above strings. + or a vector of length one less than the number of features ( 4 ), with only the above strings. --- @@ -189,7 +189,7 @@ Error in `check_approach()`: ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries - or a vector of length equal to the number of features ( 5 ) with only the above strings. + or a vector of length one less than the number of features ( 4 ), with only the above strings. --- @@ -202,7 +202,7 @@ Error in `check_approach()`: ! `approach` must be one of the following: categorical, copula, ctree, empirical, gaussian, independence, timeseries - or a vector of length equal to the number of features ( 5 ) with only the above strings. + or a vector of length one less than the number of features ( 4 ), with only the above strings. # erroneous input: `prediction_zero` diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index 460396699..a9bf7ac2a 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1714,7 +1714,7 @@ test_that("Error with to low `n_batches` compared to the number of unique approa model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, n_batches = 3, timing = FALSE, @@ -1726,7 +1726,7 @@ test_that("Error with to low `n_batches` compared to the number of unique approa model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, n_batches = NULL, timing = FALSE, @@ -1738,7 +1738,7 @@ test_that("the used number of batches mathces the provided `n_batches` for combi model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree", "ctree"), + approach = c("independence", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = 2, timing = FALSE, @@ -1752,7 +1752,7 @@ test_that("the used number of batches mathces the provided `n_batches` for combi model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree", "ctree"), + approach = c("independence", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = 15, timing = FALSE, @@ -1767,7 +1767,7 @@ test_that("the used number of batches mathces the provided `n_batches` for combi model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "ctree", "ctree", "ctree", "ctree"), + approach = c("independence", "ctree", "ctree", "ctree"), prediction_zero = p0, n_batches = NULL, timing = FALSE, @@ -1786,7 +1786,7 @@ test_that("setting the seed for combined approaches works", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, timing = FALSE, seed = 1) @@ -1795,7 +1795,7 @@ test_that("setting the seed for combined approaches works", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, timing = FALSE, seed = 1) @@ -1809,7 +1809,7 @@ test_that("setting the seed for combined approaches works", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, timing = FALSE, seed = 1) @@ -1818,7 +1818,7 @@ test_that("setting the seed for combined approaches works", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "ctree"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, timing = FALSE, seed = 1) @@ -1836,11 +1836,11 @@ test_that("counting the number of unique approaches", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "gaussian", "copula", "empirical"), + approach = c("independence", "empirical", "gaussian", "copula"), prediction_zero = p0, timing = FALSE, seed = 1) - expect_equal(explanation_combined_1$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_1$internal$parameters$n_approaches, 4) expect_equal(explanation_combined_1$internal$parameters$n_unique_approaches, 4) explanation_combined_2 <- explain( @@ -1858,22 +1858,22 @@ test_that("counting the number of unique approaches", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("gaussian", "gaussian", "gaussian", "gaussian", "gaussian"), + approach = c("gaussian", "gaussian", "gaussian", "gaussian"), prediction_zero = p0, timing = FALSE, seed = 1) - expect_equal(explanation_combined_3$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_3$internal$parameters$n_approaches, 4) expect_equal(explanation_combined_3$internal$parameters$n_unique_approaches, 1) explanation_combined_4 <- explain( model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "independence", "empirical", "empirical"), + approach = c("independence", "empirical", "independence", "empirical"), prediction_zero = p0, timing = FALSE, seed = 1) - expect_equal(explanation_combined_4$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_4$internal$parameters$n_approaches, 4) expect_equal(explanation_combined_4$internal$parameters$n_unique_approaches, 2) # Check that the last one is not counted @@ -1881,10 +1881,10 @@ test_that("counting the number of unique approaches", { model = model_lm_numeric, x_explain = x_explain_numeric, x_train = x_train_numeric, - approach = c("independence", "empirical", "independence", "empirical", "gaussian"), + approach = c("independence", "empirical", "independence", "empirical"), prediction_zero = p0, timing = FALSE, seed = 1) - expect_equal(explanation_combined_5$internal$parameters$n_approaches, 5) + expect_equal(explanation_combined_5$internal$parameters$n_approaches, 4) expect_equal(explanation_combined_5$internal$parameters$n_unique_approaches, 2) }) From 48512175fbf34129563f3a12cd5bedd6dc361f07 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 12:14:01 +0100 Subject: [PATCH 48/56] correcting unique length --- .../_snaps/output/output_lm_numeric_comb1.rds | Bin 4440 -> 4094 bytes tests/testthat/test-setup.R | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds b/tests/testthat/_snaps/output/output_lm_numeric_comb1.rds index 73ce4877d27c84798fcb759b94ef08568396c2bb..acf46dd4b721a01fe7b0f246269401596e0e671b 100644 GIT binary patch literal 4094 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

    0Aq50F`3KfWyV zcdczB{ZE9R4bdMVnIA}Bzg;_#-5 z^3i09_~1s{Z}l|qgEcjO&m{SK9=>m5+|}gDA+PO7a10_7-zy&Q8M{h@E?r$5u{g~& zq9@Co#ns1f^|AlPL!lmxSUJ!MVaJXQG(vc96`(Yl&7IDB@cmX-F9|W#kV=pLi{)rq zQGdtW*$lIbaEh!iJd#WKBAWFOZUBxY*Gm?U^4+rUyJx}wgrURBAE$p8!>_yaZtL>h wrE<{9 literal 4440 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 diff --git a/tests/testthat/test-setup.R b/tests/testthat/test-setup.R index a9bf7ac2a..6b7a2d4b7 100644 --- a/tests/testthat/test-setup.R +++ b/tests/testthat/test-setup.R @@ -1706,9 +1706,7 @@ test_that("Shapr sets a valid default value for `n_batches`", { test_that("Error with to low `n_batches` compared to the number of unique approaches", { # Expect to get the following error: - # `n_batches` (3) must be larger than the number of unique approaches in `approach` (4). Note that - # the last approach in `approach` is not included as it is not used to do any computations as - # described in the vignette. + # `n_batches` (3) must be larger than the number of unique approaches in `approach` (4). expect_error( object = explain( model = model_lm_numeric, From cdc624dbe85c53443fe926c6556b5cf151850b36 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 13:21:32 +0100 Subject: [PATCH 49/56] update linting and vignette --- R/setup.R | 8 +++----- vignettes/understanding_shapr.Rmd | 20 +++++++++----------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/R/setup.R b/R/setup.R index 9643b6a91..bed1b37d5 100644 --- a/R/setup.R +++ b/R/setup.R @@ -379,10 +379,7 @@ get_extra_parameters <- function(internal) { # Get the number of unique approaches if (length(internal$parameters$approach) > 1) { internal$parameters$n_approaches <- length(internal$parameters$approach) - # Remove the last approach as `explain` forces the user to specify the last approach - # even if it is not used as all variables are conditioned on and no estimation is needed. - internal$parameters$n_unique_approaches <- - length(unique(internal$parameters$approach[-internal$parameters$n_approaches])) + internal$parameters$n_unique_approaches <- length(unique(internal$parameters$approach)) } else { internal$parameters$n_approaches <- 1 internal$parameters$n_unique_approaches <- 1 @@ -684,7 +681,8 @@ check_approach <- function(internal) { stop( paste( "`approach` must be one of the following: \n", paste0(supported_approaches, collapse = ", "), "\n", - "or a vector of length one less than the number of features (", n_features - 1, "), with only the above strings." + "or a vector of length one less than the number of features (", n_features - 1, "),", + "with only the above strings." ) ) } diff --git a/vignettes/understanding_shapr.Rmd b/vignettes/understanding_shapr.Rmd index 32ffc3c7b..f5d766aa3 100644 --- a/vignettes/understanding_shapr.Rmd +++ b/vignettes/understanding_shapr.Rmd @@ -817,23 +817,21 @@ conditioning on the same number of features. This is also in line @aas2019explaining [, Section 3.4]. This can be done by setting `approach` equal to a character vector, -where the length of the vector is equal to the number of features in the +where the length of the vector is one less than the number of features in the model. Consider a situation where you have trained a model that consists of 10 features, and you would like to use the `"empirical"` approach when you condition on 1-3 features, the `"copula"` approach when you condition on 4-5 features, and the `"gaussian"` approach when conditioning on 6 or more features. This can be applied by simply passing -`approach = c(rep("empirical", 3), rep("copula", 2), rep("gaussian", 5))`, +`approach = c(rep("empirical", 3), rep("copula", 2), rep("gaussian", 4))`, i.e. `approach[i]` determines which method to use when conditioning on -`i` features. +`i` features. Conditioning on all features needs no approach as that is given +by the complete prediction itself. The code below exemplifies this approach for a case where there are four features, using `"empirical", "copula"` and `"gaussian"` when -conditioning on respectively 1, 2 and 3-4 features. Note that it does -not matter what method that is specified when conditioning on all -features, as that equals the actual prediction regardless of the -specified approach. +conditioning on respectively 1, 2 and 3 features. ```{r} # Use the combined approach @@ -841,7 +839,7 @@ explanation_combined <- explain( model = model, x_explain = x_explain, x_train = x_train, - approach = c("empirical", "copula", "gaussian", "gaussian"), + approach = c("empirical", "copula", "gaussian"), prediction_zero = p0 ) # Plot the resulting explanations for observations 1 and 6, excluding @@ -849,8 +847,8 @@ explanation_combined <- explain( plot(explanation_combined, bar_plot_phi0 = FALSE, index_x_explain = c(1, 6)) ``` -As a second example using `"ctree"` for the first 3 features and -`"empirical"` for the last: +As a second example using `"ctree"` to conditin on 1 and 2 features, and +`"empirical"` when conditioning on 3 features: ```{r} # Use the combined approach @@ -858,7 +856,7 @@ explanation_combined <- explain( model = model, x_explain = x_explain, x_train = x_train, - approach = c("ctree", "ctree", "ctree", "empirical"), + approach = c("ctree", "ctree", "empirical"), prediction_zero = p0 ) ``` From 8833b0fcfa9c7660286b44e3f26f0bdb204dea03 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 13:23:18 +0100 Subject: [PATCH 50/56] update docs --- R/explain.R | 9 +++++---- man/explain.Rd | 9 +++++---- man/explain_forecast.Rd | 4 ++-- man/finalize_explanation.Rd | 5 +++-- man/setup.Rd | 4 ++-- vignettes/understanding_shapr.Rmd | 6 +++--- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/R/explain.R b/R/explain.R index 0ce8a4ea9..64bab634d 100644 --- a/R/explain.R +++ b/R/explain.R @@ -16,8 +16,8 @@ #' can still be explained by passing `predict_model` and (optionally) `get_model_specs`, #' see details for more information. #' -#' @param approach Character vector of length `1` or `n_features`. -#' `n_features` equals the total number of features in the model. All elements should, +#' @param approach Character vector of length `1` or one less than the number of features. +#' All elements should, #' either be `"gaussian"`, `"copula"`, `"empirical"`, `"ctree"`, `"categorical"`, `"timeseries"`, or `"independence"`. #' See details for more information. #' @@ -101,9 +101,10 @@ #' and you'd like to use the `"gaussian"` approach when you condition on a single feature, #' the `"empirical"` approach if you condition on 2-5 features, and `"copula"` version #' if you condition on more than 5 features this can be done by simply passing -#' `approach = c("gaussian", rep("empirical", 4), rep("copula", 5))`. If +#' `approach = c("gaussian", rep("empirical", 4), rep("copula", 4))`. If #' `"approach[i]" = "gaussian"` means that you'd like to use the `"gaussian"` approach -#' when conditioning on `i` features. +#' when conditioning on `i` features. Conditioning on all features needs no approach as that is given +#' by the complete prediction itself, and should thus not be part of the vector. #' #' For `approach="ctree"`, `n_samples` corresponds to the number of samples #' from the leaf node (see an exception related to the `sample` argument). diff --git a/man/explain.Rd b/man/explain.Rd index 781255a3c..2693835c9 100644 --- a/man/explain.Rd +++ b/man/explain.Rd @@ -36,8 +36,8 @@ Contains the the features, whose predictions ought to be explained.} Contains the data used to estimate the (conditional) distributions for the features needed to properly estimate the conditional expectations in the Shapley formula.} -\item{approach}{Character vector of length \code{1} or \code{n_features}. -\code{n_features} equals the total number of features in the model. All elements should, +\item{approach}{Character vector of length \code{1} or one less than the number of features. +All elements should, either be \code{"gaussian"}, \code{"copula"}, \code{"empirical"}, \code{"ctree"}, \code{"categorical"}, \code{"timeseries"}, or \code{"independence"}. See details for more information.} @@ -214,9 +214,10 @@ E.g., if you're in a situation where you have trained a model that consists of 1 and you'd like to use the \code{"gaussian"} approach when you condition on a single feature, the \code{"empirical"} approach if you condition on 2-5 features, and \code{"copula"} version if you condition on more than 5 features this can be done by simply passing -\code{approach = c("gaussian", rep("empirical", 4), rep("copula", 5))}. If +\code{approach = c("gaussian", rep("empirical", 4), rep("copula", 4))}. If \code{"approach[i]" = "gaussian"} means that you'd like to use the \code{"gaussian"} approach -when conditioning on \code{i} features. +when conditioning on \code{i} features. Conditioning on all features needs no approach as that is given +by the complete prediction itself, and should thus not be part of the vector. For \code{approach="ctree"}, \code{n_samples} corresponds to the number of samples from the leaf node (see an exception related to the \code{sample} argument). diff --git a/man/explain_forecast.Rd b/man/explain_forecast.Rd index 998697055..c256e3ed5 100644 --- a/man/explain_forecast.Rd +++ b/man/explain_forecast.Rd @@ -64,8 +64,8 @@ If \code{xreg != NULL}, denotes the number of lags that should be used for each \item{horizon}{Numeric. The forecast horizon to explain. Passed to the \code{predict_model} function.} -\item{approach}{Character vector of length \code{1} or \code{n_features}. -\code{n_features} equals the total number of features in the model. All elements should, +\item{approach}{Character vector of length \code{1} or one less than the number of features. +All elements should, either be \code{"gaussian"}, \code{"copula"}, \code{"empirical"}, \code{"ctree"}, \code{"categorical"}, \code{"timeseries"}, or \code{"independence"}. See details for more information.} diff --git a/man/finalize_explanation.Rd b/man/finalize_explanation.Rd index 7e419f57a..ea94bec9b 100644 --- a/man/finalize_explanation.Rd +++ b/man/finalize_explanation.Rd @@ -56,9 +56,10 @@ E.g., if you're in a situation where you have trained a model that consists of 1 and you'd like to use the \code{"gaussian"} approach when you condition on a single feature, the \code{"empirical"} approach if you condition on 2-5 features, and \code{"copula"} version if you condition on more than 5 features this can be done by simply passing -\code{approach = c("gaussian", rep("empirical", 4), rep("copula", 5))}. If +\code{approach = c("gaussian", rep("empirical", 4), rep("copula", 4))}. If \code{"approach[i]" = "gaussian"} means that you'd like to use the \code{"gaussian"} approach -when conditioning on \code{i} features. +when conditioning on \code{i} features. Conditioning on all features needs no approach as that is given +by the complete prediction itself, and should thus not be part of the vector. For \code{approach="ctree"}, \code{n_samples} corresponds to the number of samples from the leaf node (see an exception related to the \code{sample} argument). diff --git a/man/setup.Rd b/man/setup.Rd index 911498aff..442ff6258 100644 --- a/man/setup.Rd +++ b/man/setup.Rd @@ -39,8 +39,8 @@ needed to properly estimate the conditional expectations in the Shapley formula. \item{x_explain}{A matrix or data.frame/data.table. Contains the the features, whose predictions ought to be explained.} -\item{approach}{Character vector of length \code{1} or \code{n_features}. -\code{n_features} equals the total number of features in the model. All elements should, +\item{approach}{Character vector of length \code{1} or one less than the number of features. +All elements should, either be \code{"gaussian"}, \code{"copula"}, \code{"empirical"}, \code{"ctree"}, \code{"categorical"}, \code{"timeseries"}, or \code{"independence"}. See details for more information.} diff --git a/vignettes/understanding_shapr.Rmd b/vignettes/understanding_shapr.Rmd index f5d766aa3..43d6e4bb3 100644 --- a/vignettes/understanding_shapr.Rmd +++ b/vignettes/understanding_shapr.Rmd @@ -809,8 +809,8 @@ print(explanation$shapley_values) In addition to letting the user select one of the five aforementioned approaches for estimating the conditional distribution of the data (i.e. `approach` equals either [`"gaussian"`](#gaussian), -[`"copula"`](#copula), [`"empirical"`](#empirical) or -[`"ctree"`](#ctree) or [`"categorical"`](#categorical)), the package +[`"copula"`](#copula), [`"empirical"`](#empirical), +[`"ctree"`](#ctree), [`"categorical"`](#categorical)) or `"timeseries"`, the package allows the user to combine the given approaches. To simplify the usage, the flexibility is restricted such that the same approach is used when conditioning on the same number of features. This is also in line @@ -827,7 +827,7 @@ passing `approach = c(rep("empirical", 3), rep("copula", 2), rep("gaussian", 4))`, i.e. `approach[i]` determines which method to use when conditioning on `i` features. Conditioning on all features needs no approach as that is given -by the complete prediction itself. +by the complete prediction itself, and should thus not be part of the vector. The code below exemplifies this approach for a case where there are four features, using `"empirical", "copula"` and `"gaussian"` when From b865a65cb2ee7ec923c6224e4eda5500d34803a6 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 13:55:57 +0100 Subject: [PATCH 51/56] fix example issue --- R/explain.R | 2 +- man/explain.Rd | 2 +- man/finalize_explanation.Rd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/explain.R b/R/explain.R index 64bab634d..3144b3c78 100644 --- a/R/explain.R +++ b/R/explain.R @@ -204,7 +204,7 @@ #' ) #' #' # Combined approach -#' approach <- c("gaussian", "gaussian", "empirical", "empirical") +#' approach <- c("gaussian", "gaussian", "empirical") #' explain5 <- explain( #' model = model, #' x_explain = x_explain, diff --git a/man/explain.Rd b/man/explain.Rd index 2693835c9..79b4c6b7a 100644 --- a/man/explain.Rd +++ b/man/explain.Rd @@ -288,7 +288,7 @@ explain4 <- explain( ) # Combined approach -approach <- c("gaussian", "gaussian", "empirical", "empirical") +approach <- c("gaussian", "gaussian", "empirical") explain5 <- explain( model = model, x_explain = x_explain, diff --git a/man/finalize_explanation.Rd b/man/finalize_explanation.Rd index ea94bec9b..6fe6bbb36 100644 --- a/man/finalize_explanation.Rd +++ b/man/finalize_explanation.Rd @@ -130,7 +130,7 @@ explain4 <- explain( ) # Combined approach -approach <- c("gaussian", "gaussian", "empirical", "empirical") +approach <- c("gaussian", "gaussian", "empirical") explain5 <- explain( model = model, x_explain = x_explain, From 53c57eb1b73f372cabf1037370e44a7dd77d71e7 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 13:59:03 +0100 Subject: [PATCH 52/56] temporary disable tests on older R systems --- .github/workflows/R-CMD-check.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index de3304813..39a2d8a60 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -39,8 +39,10 @@ jobs: - {os: windows-latest, r: 'release'} - {os: ubuntu-20.04, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-20.04, r: 'release'} - - {os: ubuntu-20.04, r: 'oldrel-1'} - - {os: ubuntu-20.04, r: 'oldrel-2'} +# Temporary disable the below check plattforms as they fail due to a change in how R reports error from R<4.3 to R>=4.3, +# which gives a different output in the snapshots produced by testthat>=3.2.0 +# - {os: ubuntu-20.04, r: 'oldrel-1'} +# - {os: ubuntu-20.04, r: 'oldrel-2'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} From a04f127addb403130f63e00e5d1a520b5eb5ab58 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 14:00:42 +0100 Subject: [PATCH 53/56] remove unecessary if-else test --- R/setup.R | 5 ----- 1 file changed, 5 deletions(-) diff --git a/R/setup.R b/R/setup.R index bed1b37d5..9257439e8 100644 --- a/R/setup.R +++ b/R/setup.R @@ -377,13 +377,8 @@ get_extra_parameters <- function(internal) { } # Get the number of unique approaches - if (length(internal$parameters$approach) > 1) { internal$parameters$n_approaches <- length(internal$parameters$approach) internal$parameters$n_unique_approaches <- length(unique(internal$parameters$approach)) - } else { - internal$parameters$n_approaches <- 1 - internal$parameters$n_unique_approaches <- 1 - } return(internal) } From 79ddd3520f00e6bbc45a54d4e9fc882b3dafcd15 Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 14:55:09 +0100 Subject: [PATCH 54/56] data.table style on Lars's batch adjustment suggestion --- R/setup_computation.R | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/R/setup_computation.R b/R/setup_computation.R index 0c3ecf0bf..786003f5e 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -669,18 +669,14 @@ create_S_batch_new <- function(internal, seed = NULL) { # Ensure that the number of batches is not larger than `n_batches`. # Remove one batch from the approach with the most batches. while (sum(batch_count_dt$n_batches_per_approach) > n_batches) { - approach_to_subtract_batch <- which.max(batch_count_dt$n_batches_per_approach) - batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] <- - batch_count_dt$n_batches_per_approach[approach_to_subtract_batch] - 1 + batch_count_dt[which.max(n_batches_per_approach),n_batches_per_approach:=n_batches_per_approach-1] } # Ensure that the number of batches is not lower than `n_batches`. # Add one batch to the approach with most coalitions per batch while (sum(batch_count_dt$n_batches_per_approach) < n_batches) { - approach_to_add_batch <- which.max(batch_count_dt$n_S_per_approach / - batch_count_dt$n_batches_per_approach) - batch_count_dt$n_batches_per_approach[approach_to_add_batch] <- - batch_count_dt$n_batches_per_approach[approach_to_add_batch] + 1 + batch_count_dt[which.max(n_S_per_approach/n_batches_per_approach), + n_batches_per_approach:=n_batches_per_approach+1] } } From 4253ef5e2ce2f9c0503db66d5cbd3fd7bef9485f Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 15:06:46 +0100 Subject: [PATCH 55/56] del comment --- R/setup_computation.R | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/R/setup_computation.R b/R/setup_computation.R index 786003f5e..8fb34a303 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -634,36 +634,6 @@ create_S_batch_new <- function(internal, seed = NULL) { n_S_per_approach = .N ), by = approach] - # DELETE THIS COMMENT: - # The fix below is simple, but I feel like it is double work as one first does lines 631-635, - # and then later changes the output from said lines. A better idea would likely be to look at the logic - # in said lines. - # We can now use the additional (new) parameter - # `n_unique_approaches = internal$parameters$n_unique_approaches`. - # So instead of doing - # `pmax(1, round(.N / (n_combinations - 2) * n_batches))` - # one could maybe do something like - # `round(.N / (n_combinations - 2) * (n_batches - n_unique_approaches)) + 1`. - # Here we subtract `n_unique_approaches` as we know that at least `n_unique_approaches` of the - # `n_batches` have been looked to a specific approach, so we only want to divide the remaining - # batches among the approaches. We add 1 as each method needs to have 1 batch, and these - # corresponds to the `n_unique_approaches` batches we subtracted before. - # But this is will break too. - # Consider same example as in `demonstrate_combined_appraoches_bugs.R`. - # There `n_combinations = 32`, `n_unique_approaches = 2`, and `.N = c(5, 25)`. - # If we let `n_batches = 5`, then my proposal breaks, as - # round(.N / (n_combinations - 2) * (n_batches - n_unique_approaches)) + 1 - # gives c(1,3) which sums to 4 < 5. - # This is because before we round we have c(0.5, 2.5) which are both rounded down - # So my conclusion is that it might be the easiest to do what is done above, - # or use my proposed approach and add batches until the correct amount has been reached. - # Discuss with Martin. - # Furthermore, we can both end up in situations with too few and too many coalitions, - # so have to check for both. - # Consider the same situation where one has `n_batches = 15`, and `n_combinations = 32`, then - # round(c(5, 25) / (n_combinations - 2) * n_batches) - # will yield c(2,12), whose sum is larger less `n_batches` - # Ensures that the number of batches corresponds to `n_batches` if (sum(batch_count_dt$n_batches_per_approach) != n_batches) { # Ensure that the number of batches is not larger than `n_batches`. From 2fd62b5e425fcc5aa046574643a9d757b8220afe Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 20 Nov 2023 15:07:45 +0100 Subject: [PATCH 56/56] lint --- R/setup_computation.R | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/R/setup_computation.R b/R/setup_computation.R index 8fb34a303..a3a7ff9db 100644 --- a/R/setup_computation.R +++ b/R/setup_computation.R @@ -639,14 +639,15 @@ create_S_batch_new <- function(internal, seed = NULL) { # Ensure that the number of batches is not larger than `n_batches`. # Remove one batch from the approach with the most batches. while (sum(batch_count_dt$n_batches_per_approach) > n_batches) { - batch_count_dt[which.max(n_batches_per_approach),n_batches_per_approach:=n_batches_per_approach-1] + batch_count_dt[which.max(n_batches_per_approach), + n_batches_per_approach := n_batches_per_approach - 1] } # Ensure that the number of batches is not lower than `n_batches`. # Add one batch to the approach with most coalitions per batch while (sum(batch_count_dt$n_batches_per_approach) < n_batches) { - batch_count_dt[which.max(n_S_per_approach/n_batches_per_approach), - n_batches_per_approach:=n_batches_per_approach+1] + batch_count_dt[which.max(n_S_per_approach / n_batches_per_approach), + n_batches_per_approach := n_batches_per_approach + 1] } }