Nothing
test_that("Bootstrap samples/quantiles: probability_scale=TRUE returns bounded values and stable quantile handling", {
skip_if_not_installed("RBesT")
skip_if_not_installed("DoseFinding")
skip_if_not_installed("dplyr")
skip_if_not_installed("tidyr")
set.seed(12)
dose_levels <- c(0, 1, 2, 4)
probs <- c(0.10, 0.20, 0.30, 0.55)
# Build a posterior directly from mu_hat/se_hat to keep test fast and stable
mu_hat <- qlogis(probs)
se_hat <- rep(0.35, length(dose_levels))
prior_list <- setNames(
lapply(seq_along(dose_levels), function(i) {
RBesT::mixnorm(comp1 = c(w = 1, m = mu_hat[i], s = 1.5), sigma = 2)
}),
c("Ctr", paste0("DG_", seq_along(dose_levels[-1])))
)
post <- getPosterior(
prior_list = prior_list,
mu_hat = mu_hat,
S_hat = diag(se_hat^2),
probability_scale = TRUE
)
mods <- DoseFinding::Mods(
linear = NULL,
emax = c(0.5, 1.2),
doses = dose_levels,
maxEff = 2
)
fits <- getModelFits(
models = mods,
dose_levels = dose_levels,
posterior = post,
simple = TRUE,
avg_fit = TRUE,
probability_scale = TRUE
)
bs <- getBootstrapSamples(
model_fits = fits,
n_samples = 60,
doses = dose_levels,
probability_scale = TRUE
)
expect_true(all(c("model", "dose", "sample_id", "abs", "diff") %in% names(bs)))
expect_true(all(bs$abs >= 0 & bs$abs <= 1))
# diff is probability difference vs control => in [-1,1]
expect_true(all(bs$diff >= -1 & bs$diff <= 1))
# Quantiles: duplicates + unsorted are handled via sort(unique())
qs_in <- c(0.5, 0.025, 0.5, 0.975)
bq <- getBootstrapQuantiles(
model_fits = fits,
quantiles = qs_in,
n_samples = 60,
doses = dose_levels,
probability_scale = TRUE
)
expect_true(all(c("model", "dose", "q_prob", "q_val", "sample_type") %in% names(bq)))
expect_equal(sort(unique(qs_in)), sort(unique(bq$q_prob)))
expect_true(all(bq$sample_type %in% c("abs", "diff")))
# Bounds by sample_type
expect_true(all(bq$q_val[bq$sample_type == "abs"] >= 0 & bq$q_val[bq$sample_type == "abs"] <= 1))
expect_true(all(bq$q_val[bq$sample_type == "diff"] >= -1 & bq$q_val[bq$sample_type == "diff"] <= 1))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.