Skip to contents

Calculates the dispersion of a set of SPD matrices around their Fréchet mean using the Riemannian (Log-Euclidean by default) distance.

Usage

riemannian_dispersion_spd(object, ...)

# S3 method for class 'hatsa_projector'
riemannian_dispersion_spd(
  object,
  type = "cov_coeffs",
  subject_data_list = NULL,
  use_geometric_median = FALSE,
  k_conn_params = NULL,
  spd_regularize_epsilon = 1e-06,
  verbose = FALSE,
  ...
)

# S3 method for class 'list'
riemannian_dispersion_spd(
  object,
  use_geometric_median = FALSE,
  spd_regularize_epsilon = 1e-06,
  verbose = FALSE,
  ...
)

Arguments

object

A `hatsa_projector` or `task_hatsa_projector` object.

...

Additional arguments passed to `frechet_mean_spd`, `riemannian_distance_spd` or `get_spd_representations`.

type

Character string, either `"cov_coeffs"` (default) or others like `"fc_conn"`, `"fc_task"` (relying on RGEOM-003 `get_spd_representations`). Specifies which matrices to compute dispersion for.

subject_data_list

Optional, may be needed by `get_spd_representations`.

use_geometric_median

Logical, if TRUE, attempts to use AIRM Fréchet mean (via `shapes::mediancov` if available, or iterative Log-Euclidean if not). If FALSE (default), uses iterative Log-Euclidean Fréchet mean.

k_conn_params

Parameters for connectivity if type involves FC.

spd_regularize_epsilon

Epsilon for regularizing SPD matrices.

verbose

Logical, controls verbose output during calculations.

Value

A list containing: `mean_spd_matrix`, `distances_to_mean` (named vector), `num_valid_subjects`, `original_num_subjects`, `mean_dispersion`, `median_dispersion`.