Learn R Programming

MSmix (version 2.0.0)

bootstrapMSmix: Bootstrap confidence intervals for the fitted mixture of Mallows models with Spearman distance

Description

Return the bootstrap confidence intervals for the parameters of a mixture of Mallows models with Spearman distance fitted on partial rankings.

plot method for class "bootMSmix".

Usage

bootstrapMSmix(
  object,
  n_boot = 50,
  type = (if (object$em_settings$n_clust == 1) "non-parametric" else "soft"),
  conf_level = 0.95,
  all = FALSE,
  n_start = 10,
  parallel = FALSE
)

# S3 method for bootMSmix plot(x, ...)

Value

An object of class "bootMSmix", namely a list with the following named components:

itemwise_ci_rho

Character \(G\)\(\times\)\(n\) matrix with the bootstrap itemwise confidence intervals for the component-specific consensus rankings.

ci_boot_theta

Numeric \(G\)\(\times\)\(2\) matrix with the bootstrap confidence intervals for the component-specific precisions.

ci_boot_weights

Numeric \(G\)\(\times\)\(2\) matrix with the bootstrap confidence intervals for the mixture weights. Returned when n_clust > 1 and type = "soft", otherwise NULL.

boot

List containing all the n_boot bootstrap MLEs. Returned when all = TRUE, otherwise NULL.

The boot sublist contains the following named components:

rho_boot

List of length n_clust. Each element is an integer n_boot \(\times\) n_items matrix with rows containing the bootstrap MLEs of a component-specific consensus ranking.

theta_boot

Numeric n_boot\(\times\) n_clust matrix with the bootstrap MLEs of the component-specific precision parameters in each row.

weights_boot

Numeric n_boot\(\times\) n_clust matrix with the bootstrap MLEs of the mixture weights in each row. Returned when n_clust > 1 and type = "soft", otherwise NULL.

A list of 3 labelled plots, namely: i) rho_heatmap: a heatmap for the component-specific bootstrap consensus ranking estimates (when n_clust > 1, this is in turn a list of heatmaps for each consensus ranking estimate); ii) theta_density: a kernel density plot for the component-specific bootstrap precision estimates; iii) weights_density: a kernel density plot for the bootstrap mixture weight estimates is returned when n_clust > 1 and the object x was obtained from the bootstrapMSmix routine with the argument type = "soft", otherwise NULL.

Arguments

object

An object of class "emMSmix" returned by fitMSmix.

n_boot

Number of desired bootstrap samples. Defaults to 50.

type

Character indicating which bootstrap method must be used. Available options are: "non-parametric" or "parametric" for the \(G=1\) case, and "soft" or "separated" for the \(G>1\) case. Defaults to "non-parametric" when n_clust = 1 and to "soft" when n_clust > 1. See Details.

conf_level

Numeric: value in the interval (0,1] indicating the desired confidence level of the interval estimates. Defaults to 0.95.

all

Logical: whether the bootstrap samples of the MLEs for all the parameters must be returned. Defaults to FALSE.

n_start

Number of starting points for the MLE on each bootstrap sample. Defaults to 10.

parallel

Logical: whether parallelization over multiple initializations of the EM algorithm must be used. Used when rankings contains some partial rankings. Defaults to FALSE.

x

An object of class "bootMSmix" returned by bootstrapMSmix.

...

Further arguments passed to or from other methods (not used).

Details

When n_clust = 1, two types of bootstrap are available: 1) type = "non-parametric" (default); type = "parametric", where the latter supports full rankings only.

When n_clust > 1, two types of bootstrap are available: 1) type = "soft" (default), which is the soft-separated bootstrap (Crispino et al., 2025+) and returns confidence intervals for all the parameters of the mixture of Mallows models with Spearman distance; 2) type = "separated", which is the separated bootstrap (Taushanov and Berchtold, 2019) and returns bootstrap samples for the component-specific consensus rankings and precisions.

References

Crispino M, Mollica C and Modugno L (2025+). MSmix: An R Package for clustering partial rankings via mixtures of Mallows Models with Spearman distance. (submitted)

Taushanov Z and Berchtold A (2019). Bootstrap validation of the estimated parameters in mixture models used for clustering. Journal de la société française de statistique, 160(1).

Efron B (1982). The Jackknife, the Bootstrap, and Other Resampling Plans. Philadelphia, Pa. :Society for Industrial and Applied Mathematics.

Examples

Run this code

## Example 1. Compute the bootstrap 95% confidence intervals for the Antifragility dataset.
# Let us assume no clusters.
r_antifrag <- ranks_antifragility[, 1:7]
set.seed(12345)
fit <- fitMSmix(rankings = r_antifrag, n_clust = 1, n_start = 1)
# Apply non-parametric bootstrap procedure.
set.seed(12345)
boot_np <- bootstrapMSmix(object = fit, n_boot = 200)
print(boot_np)
# Apply parametric bootstrap procedure and set all = TRUE
# to return the bootstrap MLEs of the consensus ranking.
set.seed(12345)
boot_p <- bootstrapMSmix(object = fit, n_boot = 200,
                       type = "parametric", all = TRUE)
print(boot_p)
# Plot the bootstrap estimates.
p_boot_p <- plot(boot_p)
p_boot_p$rho_heatmap()
p_boot_p$theta_density()

## Example 2. Compute the bootstrap 95% confidence intervals for the Antifragility dataset.
# Let us assume two clusters.
r_antifrag <- ranks_antifragility[, 1:7]
set.seed(12345)
fit <- fitMSmix(rankings = r_antifrag, n_clust = 2, n_start = 20)
# Apply soft bootstrap procedure and set all = TRUE
# to return the bootstrap MLEs of the consensus ranking.
set.seed(12345)
boot_soft <- bootstrapMSmix(object = fit, n_boot = 500,
                      n_start = 20, all = TRUE)
print(boot_soft)
# Plot the bootstrap estimates.
p_boot_soft <- plot(boot_soft)
p_boot_soft$rho_heatmap[[1]]()
p_boot_soft$rho_heatmap[[2]]()
p_boot_soft$theta_density()
p_boot_soft$weights_density()
# Apply separated bootstrap and compare results.
set.seed(12345)
boot_sep <- bootstrapMSmix(object = fit, n_boot = 500,
                     n_start = 20, type = "separated", all = TRUE)
print(boot_sep)
p_boot_sep <- plot(boot_sep)
p_boot_sep$rho_heatmap[[1]]()
p_boot_sep$rho_heatmap[[2]]()
p_boot_sep$theta_density()
print(boot_soft)
print(boot_sep)


Run the code above in your browser using DataLab