CCCPM Report

Predicting target from connectome data
v0.3.1 · generated 2026-06-30 · wwu-mmll/confound_corrected_cpm

Summary

The connectome model predicted target: r = 0.91, p = .010 (10-fold CV, 100 permutations).

The result above is the headline cross-validated number for the main connectome model on the both network. The effect size (Pearson r for regression, AUC for classification) is computed on held-out test folds and averaged across folds — the conventional CPM headline number — and the p-value comes from permutation testing. The scatter plots below show every out-of-sample prediction (pooled across folds) for each network, and for the covariates-only model as a baseline the connectome should beat.

100
Samples
30
Nodes
435
Edges (total)
435
Stable edges
1
Covariates
0.05
Edge p-threshold
100
Permutations
2026-06-30T23:27:31.240055 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ −2 −1 0 1 2 3 target −2 −1 0 1 2 3 predicted target r = 0.91 p = .010

Connectome — both networks

2026-06-30T23:27:31.417125 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ −2 −1 0 1 2 3 target −2 −1 0 1 2 3 predicted target r = 0.91 p = .010

Connectome — positive network

2026-06-30T23:27:31.494196 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ −2 −1 0 1 2 3 target −2 −1 0 1 2 3 predicted target r = -0.00 p = .198

Connectome — negative network

2026-06-30T23:27:31.569363 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ −2 −1 0 1 2 3 target −2 −1 0 1 2 3 predicted target r = 0.75 p = .010

Covariates only

Model Comparison

How the model variants compare across metrics and networks. The increment model — the full model minus the covariates-only model — is the key confound-control result: it isolates the predictive value the connectome adds beyond the confounds.

Each model answers a different question:

  • connectome — how well does brain connectivity alone predict?
  • covariates — the baseline from nuisance variables (age, sex, motion…).
  • full — connectome + covariates combined (best prediction).
  • residuals — connectome after removing covariate effects from the target.
  • increment — the added value of the connectome over covariates (full − covariates). A significant increment is your evidence the connectome carries information the confounds do not.

Colours are the network the edges came from: red = positive, blue = negative, grey = both. Boxes span the outer CV folds; the table gives mean [SD] with permutation p-values (* p<0.05, ** p<0.01).

2026-06-30T23:27:32.145990 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ 0.0 0.2 0.4 0.6 0.8 1.0 covariates connectome full residuals increment pearson score 0.0 0.2 0.4 0.6 0.8 1.0 explained variance score −1 0 1 2 mean squared error −0.5 0.0 0.5 1.0 mean absolute error network positive negative both

Performance by model (rows), metric (columns) and network (colour: red positive, blue negative, grey both). Boxes span outer CV folds.

Results Table

Mean [SD] across outer CV folds. Permutation p-values: * p<0.05, ** p<0.01. Models: connectome (connectivity only), covariates (confounds only), full (connectome + confounds), residuals (residualised connectome), increment (full minus covariates). Networks: positive / negative / both.

    explained_variance_score mean_absolute_error mean_squared_error pearson_score
    mean [sd] p mean [sd] p mean [sd] p mean [sd] p
model network                
covariates positive 0.54 [0.2] 0.010** 0.54 [0.17] 0.010** 0.5 [0.34] 0.010** 0.75 [0.14] 0.010**
negative 0.54 [0.2] 0.010** 0.54 [0.17] 0.010** 0.5 [0.34] 0.010** 0.75 [0.14] 0.010**
both 0.54 [0.2] 0.010** 0.54 [0.17] 0.010** 0.5 [0.34] 0.010** 0.75 [0.14] 0.010**
connectome positive 0.8 [0.09] 0.010** 0.35 [0.09] 0.010** 0.21 [0.13] 0.010** 0.91 [0.05] 0.010**
negative 0.0 [0.0] 0.050* 0.81 [0.2] 0.307 1.04 [0.46] 0.287 -0.0 [0.0] 0.198
both 0.8 [0.09] 0.010** 0.35 [0.09] 0.010** 0.21 [0.13] 0.010** 0.91 [0.05] 0.010**
full positive 1.0 [0.0] 0.010** 0.04 [0.0] 0.010** 0.0 [0.0] 0.010** 1.0 [0.0] 0.010**
negative 0.54 [0.2] 0.010** 0.54 [0.17] 0.010** 0.5 [0.34] 0.010** 0.75 [0.14] 0.010**
both 1.0 [0.0] 0.010** 0.04 [0.0] 0.010** 0.0 [0.0] 0.010** 1.0 [0.0] 0.010**
residuals positive 0.4 [0.29] 0.010** 0.62 [0.15] 0.010** 0.56 [0.26] 0.010** 0.63 [0.21] 0.010**
negative 0.0 [0.0] 0.020* 0.81 [0.2] 0.297 1.04 [0.46] 0.218 -0.0 [0.0] 0.149
both 0.4 [0.29] 0.010** 0.62 [0.15] 0.010** 0.56 [0.26] 0.010** 0.63 [0.21] 0.010**
increment positive 0.2 [0.09] 0.010** -0.31 [0.09] 0.010** -0.21 [0.13] 0.010** 0.09 [0.05] 0.376
negative 0.54 [0.2] 0.010** -0.28 [0.11] 0.010** -0.55 [0.26] 0.010** 0.75 [0.14] 0.010**
both 0.2 [0.09] 0.010** -0.31 [0.09] 0.010** -0.21 [0.13] 0.010** 0.09 [0.05] 0.287

Network Strengths

Network strength is the sum of all selected edge weights for each participant, separately for the positive and negative networks. A strong correlation with the target variable indicates that the selected edges carry predictive information.

For each participant, CCCPM sums the connectivity of all selected positive edges (and, separately, the negative edges). These two scalar "network strength" values are the actual features the connectome model uses. The scatter shows how strength tracks the target; the histograms show the distribution of strength across participants.

2026-06-30T23:27:32.563482 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ −2 0 2 target positive connectome negative −2000 0 2000 network strength −2 0 2 target −2000 0 2000 network strength residuals

Network strength vs target.

2026-06-30T23:27:32.821640 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ 0 20 40 60 80 100 target positive connectome negative −2000 0 2000 network strength 0 20 40 60 80 100 target −2000 0 2000 network strength residuals

Distribution of network strength scores.

Brain & Edges

Where the predictive edges are in the brain. Throughout, positive edges (red) are associated with higher target values and negative edges (blue) with lower values. Strength here is edge stability — the fraction of outer CV folds in which an edge was selected.

  • Connectivity matrix — node × node grid of stable edges; red/blue mark the positive/negative networks. Ordered by brain network when an atlas is given.
  • Hub nodes — the nodes participating in the most stable edges.
  • Network-summary matrix — the same edges collapsed to canonical networks (needs a network column in the atlas).
  • Chord diagram — between-network connectivity as a ring; arc width is the aggregated stability.
  • Glass brain — the significantly stable edges drawn on a brain (needs node coordinates x, y, z).
2026-06-30T23:27:32.991027 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ Cont Default DorsAttn Limbic SalVentAttn SomMot Vis Cont Default DorsAttn Limbic SalVentAttn SomMot Vis −1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00 stability (signed)

Connectivity matrix of stable edges (node × node).

2026-06-30T23:27:33.237810 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ 0 5 10 15 20 25 number of stable edges rh_SomMot_5 lh_Vis_5 rh_SomMot_1 lh_DorsAttn_1 rh_SalVentAttn_1 lh_Limbic_1 rh_Cont_1 lh_Default_1 rh_Vis_2 lh_SomMot_2 rh_DorsAttn_2 lh_SalVentAttn_2 rh_Limbic_2 lh_Cont_2 rh_Default_2 positive negative

Hub nodes — number of stable edges per node.

2026-06-30T23:27:33.354748 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ Vis SomMot DorsAttn SalVentAttn Limbic Cont Default Vis SomMot DorsAttn SalVentAttn Limbic Cont Default 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 −1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00 mean stability (signed)

Edges aggregated by canonical brain network.

2026-06-30T23:27:33.810026 image/svg+xml Matplotlib v3.10.3, https://matplotlib.org/ Vis SomMot DorsAttn SalVentAttn Limbic Cont Default

Chord diagram of between-network connectivity.

Glass brain — stable positive edges.

Stable Edges

Edges sorted by permutation p-value (ascending). Stability is the proportion of outer folds in which the edge was selected.

The individual connections (region A — region B) that most reliably drive the prediction. Stability is how often an edge was selected across folds; significance is the permutation p-value for that stability. These are the edges you would report and interpret anatomically.

Positive Network

Showing the top 50 of 435 edges (by significance).

Stability Stability Significance
Region A Region B
rh_SomMot_1 lh_Vis_1 1.0 0.06588
lh_DorsAttn_1 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
rh_SalVentAttn_1 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
lh_Limbic_1 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
rh_Cont_1 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588
lh_Default_1 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588
rh_Cont_1 1.0 0.06588
rh_Vis_2 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588
rh_Cont_1 1.0 0.06588
lh_Default_1 1.0 0.06588
lh_SomMot_2 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588
rh_Cont_1 1.0 0.06588
lh_Default_1 1.0 0.06588
rh_Vis_2 1.0 0.06588
rh_DorsAttn_2 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588
rh_Cont_1 1.0 0.06588
lh_Default_1 1.0 0.06588
rh_Vis_2 1.0 0.06588
lh_SomMot_2 1.0 0.06588
lh_SalVentAttn_2 lh_Vis_1 1.0 0.06588
rh_SomMot_1 1.0 0.06588
lh_DorsAttn_1 1.0 0.06588
rh_SalVentAttn_1 1.0 0.06588
lh_Limbic_1 1.0 0.06588

Negative Network

Stability Stability Significance
0 No significantly stable edges. NaN

Data & Methods

Distribution of the target variable.

Scatter matrix of target and covariates.

Analysis Configuration

Results Directory ./results/regression_quickstart
Task Type regression
CPM Model LinearCPM
Outer CV strategy KFold(n_splits=10, random_state=42, shuffle=True)
Inner CV strategy None
Edge selection method UnivariateEdgeSelection(edge_selection=[PThreshold(correction=[None],
threshold=[0.05])],
edge_statistic=EdgeStatistic(edge_statistic='pearson'))
Select stable edges No
Impute Missing Values Yes
Calculate residuals No
Number of Permutations 100
Device cpu