Diagonale Analysis Decision Tree
How to choose analysis parameters in Diagonale.
Main Analysis Tree
dataStruct Parameter
di_cfg.analysis.dataStruct is required for all analyses. It must be a MATLAB table variable that describes the structure of your data—specifically, what each row of your Y matrix represents. At minimum, it should include an ‘observationID’ column. The table can include additional columns for grouping variables, subject identifiers, or other design factors.
TO DO: show how to create a dataStruct table with an example.
clusterParams Sub-tree
OLS Sub-tree
Compatibility matrix
| objective | inferenceLevel | supported | testingApproach | correction options |
|---|---|---|---|---|
permutationH0testing |
feature |
yes | empirical, parametric | FDR, maxT |
permutationH0testing |
cluster |
yes | parametric | maxT |
permutationH0testing |
latent |
yes | empirical | maxT |
bootstrapStability |
feature |
yes | n/a | n/a |
bootstrapStability |
cluster |
no | n/a | n/a |
bootstrapStability |
latent |
yes | n/a | n/a |
General parameters
di_cfg.analysis.objective
- required for all analyses
- allowed values:
permutationH0testing,bootstrapStability
di_cfg.analysis.inferenceLevel
- required for all analyses
- allowed values:
feature,cluster,latent
di_cfg.analysis.dataStruct
- required for all analyses
- must be a ‘table’ variable
di_cfg.analysis.ignore_row
- required for all analyses (default is to ignore nothing)
- if provided: column vector with one value per row of
Y
di_cfg.analysis.ignore_col
- optional for all analyses (default is to ignore nothing)
- if provided: row vector with one value per column of
Y
di_cfg.analysis.randomSeed
- required for all analyses (default is
42) - must be finite integer scalar
di_cfg.analysis.nIterations
- required for all analyses (default is
5000)
di_cfg.analysis.verbose
- optional for all analyses (default is
false) - type: logical/boolean
- controls whether debug/progress information is printed to console
di_cfg.analysis.figFlag
- optional for all analyses (default is
false) - type: logical/boolean
- controls whether figures/plots are generated during analysis
Permutation-only parameters
The following parameters must be set if di_cfg.analysis.objective = 'permutationH0testing'
di_cfg.analysis.permuteUnit
- required when
di_cfg.analysis.objective = permutationH0testing - not used when
di_cfg.analysis.objective = bootstrapStability - allowed values:
wholeObservation,withinObservation - note: final validity depends on design code in
di_validateH0
di_cfg.analysis.p_crit
- required when
di_cfg.analysis.objective = permutationH0testing(default0.05) - not used when
di_cfg.analysis.objective = bootstrapStability
di_cfg.analysis.testingApproach
- required when
di_cfg.analysis.objective = permutationH0testing - not allowed when
di_cfg.analysis.objective = bootstrapStability - allowed values depend on
di_cfg.analysis.inferenceLevel = ...:'feature': testing approach can beempiricalorparametric'cluster': testing approach can beparametriconly'latent': testing approach can beempiricalonly
di_cfg.analysis.correction
- required when
di_cfg.analysis.objective = permutationH0testing - not allowed when
di_cfg.analysis.objective = bootstrapStability - allowed values depend on
inferenceLevel:feature:FDRormaxTcluster:maxTonlylatent:maxTonly
di_cfg.analysis.FDR_dimensions
- required only when:
di_cfg.analysis.objective = permutationH0testingdi_cfg.analysis.inferenceLevel = featuredi_cfg.analysis.correction = FDR
- not allowed in all other cases
Cluster-specific parameters
di_cfg.analysis.clusterParams
- required when
di_cfg.analysis.inferenceLevel = cluster - optional but ignored when
inferenceLevelis notcluster
di_cfg.analysis.clusterParams.adjacencyMatrix
- required when
di_cfg.analysis.inferenceLevel = cluster
di_cfg.analysis.clusterParams.distance_continuous_index
- required when:
di_cfg.analysis.inferenceLevel = cluster- at least one dimension is continuous
di_cfg.analysis.clusterParams.distance_spherical_radians
- required when:
di_cfg.analysis.inferenceLevel = cluster- at least one dimension is spherical
di_cfg.analysis.clusterParams.clusterFormingPvalThreshold
- required when
di_cfg.analysis.inferenceLevel = cluster(default0.05)
Latent (PLS-SVD) parameters
di_cfg.analysis.plssvdParams
- required when
di_cfg.analysis.inferenceLevel = latent - ignored when
di_cfg.analysis.inferenceLevelis notlatent
di_cfg.analysis.plssvdParams.zscoringVec
- required when
di_cfg.analysis.inferenceLevel = latent(default[true, false]) - interpretation of elements:
- index 1 controls z-scoring of
Y - index 2 controls z-scoring of
X
- index 1 controls z-scoring of
- example: default
[true, false]meansYis z-scored, whileXis mean-centered only
di_cfg.analysis.subjectCentering
- optional, only valid when
di_cfg.analysis.inferenceLevel = latentAND design has repeated measures - allowed values:
center,noCenter(default isnoCenter) - note: if set to
centerin OLS-based analyses (feature/cluster), causes validation error - repeated measures designs typically have subjects appearing in multiple conditions
OLS-specific parameters (feature/cluster inference)
The following parameters apply only when di_cfg.analysis.inferenceLevel = 'feature' or 'cluster', which are powered by OLS regression under the hood.
di_cfg.analysis.OLS.varianceType
- optional for OLS-based feature and cluster analyses
- allowed values:
equal,unequal(default isequal) equalcompares groups through standard Student’s t-test (homogeneous variance assumed)unequalcompares groups through Welch’s t-test (heterogeneous variance allowed)
di_cfg.analysis.OLS.standardize
- optional for OLS-based feature and cluster analyses
- allowed values:
true,falseas logical/boolean (default isfalse) - when
false, uses raw values - when
true, z-scores both predictor and outcome variables (standardized slopes equal correlation coefficient)
di_cfg.analysis.OLS.ranked
- optional for OLS-based feature and cluster analyses
- allowed values:
true,falseas logical/boolean (default isfalse) - when
false, uses raw/standardized values (it yields Pearson correlation coefficients when used with di_cfg.analysis.OLS.standardize = true) - when
true, rank transform both predictor and outcome variables (it yields Spearman correlation coefficients when used with di_cfg.analysis.OLS.standardize = true)