Covariate significance testing - What is it?

Dear SlicerSALT team,

We are analyzing parkinsonian patients with different cognitive profiles (4 groups in total) and we are interesting in studying shape deformations of subcortical structures between these groups. We were using shapeAnalysisMANCOVA but then we discovered SlicerSALT and the Covariate Significance Testing module. Hence, our first question: why is this module more “efficient”, more “appropriate” than the older one?

We managed to get p-values, etc. from Covariate Significance Testing analysis. However, it is not clear what this analysis does… What are the statistical tests applied? In shapeAnalysisMANCOVA, it was quite clear and one could choose between Wilks Test, Hotelling Test, etc. and it was a permutation method.

Moreover, there are many different p-values (we have 4 covariates (Center, Sex, Age, Education), thus 5 different p-values (i.e. pvalue_Group Center Sex Age Education, pvalue_1, pvalue_2, etc.). What are they related to? How should we interpret these?

Finally, with the older shapeAnalysisMANCOVA analysis, we got deformation vectors which allowed us to know the direction of the deformation cluster (inward or outward). Is it possible to get the same vectors in your new tool?

Thank you for your reply,
Best regards,

Thanks Quentin, I will wait to hear from others in the team about the exact meaning of the different p-values.

The Covariance significance testing is based on the Multivariate Functional Shape Data Analysis (MFSDA) : “A multivariate varying coefficient model is introduced to build the association between the multivariate shape measurements and demographic information and other clinical variables. Statistical inference, i.e., hypothesis testing, is also included in this package, which can be used in investigating whether some covariates of interest are significantly associated with the shape information.”

also look at the MFSDA section here:

The deformation vectors in shapeAnalysisMANCOVA are simply the differences between the mean surfaces. You can can create these manually using the Population Analysis toolbox or the MeshMath tool that is distributed with SlicerSALT


Dear Martin,

Thank you for your reply. I’m not a statistician and the MFSDA seems quite complicated. Moreover, I used shapeAnalysisMANCOVA first, then I tried MFSDA and the results are really different (i.e. most of my comparisons are not significant anymore with the MFSDA). Thus, I’m a little bit confused and I don’t know which one I should use. Finally, it is quite complicated to explain in an article (and to my colleagues) a method that I don’t really understand. Do you have a more detailed and more affordable explanation on what is the MFSDA and why did you choose it to replace shapeAnalysisMANCOVA? I didn’t find any article using this method and we plan to submit our paper this summer…

Wish you a pleasant day,

Hi Quentin, for simple analyses where covariates have limited interaction the two tools should generate similar results. But for strong interactions (e.g. if “age” as covariate interacts strongly with shape), shapeAnalysisMANCOVA will generate less correct results as these cannot be modeled well with the permutation tests used in shapeAnalysisMANCOVA.

We are aware that a tutorial for Covariance Significance Testing module is very much needed.

Btw, for your shapeAnalysisMANCOVA results, are you referring to the raw p-values or the multiple comparison corrected results?


Thank you Martin for your reply. For my shapeAnalysisMANCOVA results, I am referring to multiple comparison corrected results (with FDR fixed at 0.05).

Based on my MFSDA primary results, I looked at the different p-values (guessing that pvalue_Group Center Sex Age Education = p-values for group comparison corrected with the four covariates; pvalue_1 = interaction test (maybe as interaction test in shapeAnalysisMANCOVA) between shape and covariate #1 corrected with the 3 other covariates; etc.) and found that Sex was the covariate which interacted the lesser with shape. So, I launched MFSDA and MANCOVA analyses with only this covariate (I tried without any covariate, but MFSDA led to no result if no covariate is given; I think it is normal as long as MFSDA is called “Covariate significance testing” in SlicerSALT, implying at least one covariate should be given. However, it may be useful to other users to know it). The results (attached files) are quite different… Of course, Sex was the covariate which interacted the lesser with shape among my covariates, it doesn’t mean it interacted weakly with shape. However, it seems that MANCOVA leads to more frequent and extensive deformation clusters. I read that SPHARM-PDM seems to be quite inconsistent. Maybe, using more powerful statistical analysis like MFSDA could provide more reliable results, but it is still to be understood and MFSDA seems quite complicated.

Is there a statistical correction applied in the MFSDA? Or maybe it is not needed with this method? Having 4 different groups, it leads to 6 comparisons for each structure (8 structures in total). If there is no statistical correction in MFSDA, maybe I should at least apply a correction for these 48 comparisons. What do you think? And, if needed, how to compute it?

Finally, how to compute partial correlation between shape results and a cognitive z-score when we use MFSDA analyses? Do I have to launch Covariate significance test with the Z-score as a new covariate and look at the p-value associated with it?

Thank you very much for your help.
Wish you a pleasant day,


Hi Quentin
Not sure I was able to follow everything

  1. you have 5 variables in total: group (4 different groups of PD patients), center/site, sex, age and education. Of these, group (4 valued), center (how many values?) and sex (binary) are group variables (i.e. categorical variables). age and education are continuous variables. Is that correct?

  2. how did you structure the input for shapeAnalysisMANCOVA? All groups/categorical variables need to be binary, mutually exclusive variables for shapeAnalysisMANCOVA. So, you would need to somehow be able to separate the analysis into different sets where you have only binary associations. That’s one of the downsides of using shapeAnalysisMANCOVA. If there is an order to your diagnosis (e.g. severity of disease groups) then you could group them into binary sets of increasing order. Alternatively, e.g. for the centers, you can have a binary variable for each center (so called one-shot variables), i.e. center1 (0/1), center2 (0/1) etc

  3. you mentioned you did an interaction test. But, if I understand correctly, you want to do a group difference test. Interaction tests with shapeAnalysisMANCOVA only work with continuous variables, e.g. if you are interested in the association of age with shape, correcting for the other co-variates.

  4. in a complex setting, such as yours with 3 categorical variables (2 of them being non-binary), shapeAnalysisMANCOVA is likely not going to yield correct results (there are just too many distinct sets to permute over).

  5. how did you set up the MFSDA analysis exactly. MFSDA may interpret your group variable (with 4 values) as a continuous variable. I will need to double-check, but I am quite sure that also MFSDA needs binary categorical variables.

@bpaniagua, @styner
Hi! I’m relatively new to slicerSALT. I have input two sets of shapes of hippocampus, one for control group, and another for alzheimer’s group. I coded 0 for the control and 1 for the alzheimer’s. I know the p values are the significance values for the corresponding points of the shapes. But I also get 6 sets of attributes containing b values: betavalues_0_1, betavalues_0_group, betavalues_1_1, betavalues_1_group, betavalues_2_1, and betavalues_2_group.

I just want to ask what do the beta values mean? How do I interpret these? Thanks a lot!

1 Like

Hi @styner

May I ask about the multiple covariate testing in the Covariate Significance Testing module?

I have 3 variables; group (categorical, controls vs patients), age (continuous), and center/site (categorical). When I conducted the analysis one-by-one (i.e. group only, age only) it exhibits a reasonable p-value result. However, when I tried to add another column (age) in my CSV file, only the p-value result for age shows up while the group p-value result shows plain colour.

Is there anything that I can do to fix this problem(s)? Thank you in advance.