Manifold-Regularized Anchor Selection (MRA-Select)
Source:R/anchor_selection_mra.R
select_anchors_mra.Rd
Selects a set of anchor parcels by optimizing a criterion that balances the stability of the mean anchor representation (via condition number) and the dispersion of subject-specific covariance matrices derived from these anchors on the SPD manifold.
Usage
select_anchors_mra(
U_original_list_pilot,
spectral_rank_k,
m_target,
total_parcels = NULL,
max_kappa = 100,
weight_inv_kappa = 1,
weight_dispersion = 1,
initial_selection = integer(0),
candidate_pool = NULL,
parcel_quality_info = NULL,
riemannian_dispersion_options = list(),
min_anchors_for_metrics = NULL,
verbose = TRUE
)
Arguments
- U_original_list_pilot
A list of original (unaligned) sketch matrices (V_p x k) for a set of pilot subjects. These are used to evaluate candidate anchors.
- spectral_rank_k
Integer, the spectral rank `k` used to generate `U_original_list_pilot`.
- m_target
Integer, the desired number of anchors to select.
- total_parcels
Integer, the total number of parcels (V_p) available for selection. If NULL, inferred from `U_original_list_pilot`.
- max_kappa
Numeric, the maximum allowable condition number for the mean anchor matrix. Candidates leading to a kappa above this are penalized or excluded. Default: 100.
- weight_inv_kappa
Numeric, weight for the inverse condition number term in the score. Higher values prioritize lower condition numbers (more stable mean). Default: 1.0.
- weight_dispersion
Numeric, weight for the negative dispersion term in the score. Higher values prioritize lower dispersion. Default: 1.0.
- initial_selection
Optional. A vector of pre-selected anchor indices (1-based). The algorithm will try to add `m_target - length(initial_selection)` new anchors.
- candidate_pool
Optional. A vector of parcel indices (1-based) from which to select new anchors. If NULL, all non-initially-selected parcels are candidates.
- parcel_quality_info
Optional. Data frame or list providing parcel quality or network information. Currently unused in the core MRA logic but reserved for future extensions (e.g., pre-filtering candidates).
- riemannian_dispersion_options
A list of options to pass to `hatsa::riemannian_dispersion_spd` (e.g., `spd_metric`, `use_geometric_median`).
- min_anchors_for_metrics
Integer. Minimum number of selected anchors required before kappa and dispersion metrics are considered stable enough to compute. Default is `spectral_rank_k`.
- verbose
Logical. If TRUE, print progress messages. Default: TRUE.
Methodological Details
MRA-Select greedily optimizes a composite score balancing the
condition number of the mean anchor matrix with the Riemannian
dispersion of subject covariance matrices on the SPD manifold.
Candidate anchors that maximize this score are iteratively added
until m_target
anchors are selected.
Examples
# Conceptual example (requires U_original_list_pilot from actual or synthetic data)
# N_pilot <- 5
# V_p_total <- 50
# k_rank <- 10
# U_pilot_list <- replicate(N_pilot,
# matrix(rnorm(V_p_total * k_rank), V_p_total, k_rank),
# simplify = FALSE)
# selected_anchors_mra <- select_anchors_mra(
# U_original_list_pilot = U_pilot_list,
# spectral_rank_k = k_rank,
# m_target = 15,
# total_parcels = V_p_total,
# verbose = TRUE
# )
# print(selected_anchors_mra)