Dear Gang,
I have produced several correlation maps (SBA) for each of my subjects,
Sometime, but not always I have different sessions per subject as well as runs
I would like to measure the overall effect as well as the inter individual variability
I assume that both variables, Sess and run, are within-individual factors. In this case, the 3dLMEr program is more appropriate. I recommend following this blog post for guidance on model construction.
A few specific points regarding your effect specification:
The following specification:
-gltCode 1 'Sess : 1' \
should be corrected to:
-gltCode 1 'Sess : 1*1' \
The intent behind this specification is unclear, but as written, it does not make sense:
Hey Gang,
Thank you, now that I solved the docker issue I manage to run it !
However, I seems that I am missing the group effect, that takes into account run and session as within subject variable
It is like the output of 3dttest against zero, to see where does the activation occur
Thank you again!
Clément
Thank you very much Gang, it helped a lot!
Sadly I had a result for the glt that was completely empty
what does it means Interpret type III hypotheses with care.
++ Smallest FDR q [0 Sess Chi-sq] = 0.00440489
*+ WARNING: Smallest FDR q [1 run Chi-sq] = 0.999865 ==> few true single voxel detections
++ Smallest FDR q [2 Sess:run Chi-sq] = 1.2213e-11
*+ WARNING: mri_fdrize: will not process only 0 values (min=20)
++ Smallest FDR q [4 groupeffect Z] = 0
Talking with chat gpt, I was suggested:
2️⃣ Type II Hypothesis (Main Effects Without Interaction)
To test main effects without interaction bias, remove Sess:run from the model:
3dLMEr -model "Sess+run+(1|Subj)+(1|Sess:Subj)+(1|run:Subj)"
Why?
This forces Sess and run to be tested independently, avoiding distortions from unbalanced interactions.
You can still examine interactions separately by running a different model just for interactions:
3dLMEr -model "Sess*run+(1|Subj)+(1|Sess:Subj)+(1|run:Subj)" -gltCode "Sess:run" '1'
3️⃣ Testing the Group Effect
To test if the group mean is different from zero, modify gltCode:
-gltCode group.mean 'Sess : 1*01 + 1*02'
OR, if you want to correct for the imbalance in Sess:
-gltCode group.mean 'Sess : X*01 + Y*02'
where X and Y are weights adjusted to reflect the number of observations.
I indeed, tested 3dLMEr with Sess+run instate of Sess*run and it did gave me the expected group results.
Does it make sense? Do the other proposals of chat make sense to you ?
The chatbot's explanations/suggestions seem off target.
Could you describe your data structure in more detail? How are sessions and runs coded in the data table? Does each session have two runs, or are runs nested within sessions?
Could you also provide a contingency table for sessions and runs in terms of the number of participants as below?
Here is the contingency table for sessions and runs based on your data table:
... Run
0 1 2 3
Session 1 13 10 2 1
2 4 0 0 0
The modeling issue here is not about the type of hypothesis test (e.g., Type I, II, III), as the chatbot suggested. Instead, the missing cells in the table indicate that there is no way to estimate interaction effects between Session and Run. Given this limitation, the most complex model you can fit is:
that make sense,
one last question:
Looking at the output I just want to make that I understand sure who is who
-- At sub-brick #0 'Sess Chi-sq' datum type is float: 0 to 29.398
statcode = fict; statpar = 2
-- At sub-brick #1 'run Chi-sq' datum type is float: 0 to 15.154
statcode = fict; statpar = 2
-- At sub-brick #2 'Sess:run Chi-sq' datum type is float: 0 to 363.37
statcode = fict; statpar = 2
If i used Sess+ run, I loose image 3;
which make sense and made me think I could probably simplify?
-model "Sess+run+(1|Subj)+(1|Sess:Subj)"
anyway,
I would have guess based on what you said previously the meaning of the 3 images is:
...
-- At sub-brick #0 'Sess Chi-sq' datum type is float: 0 to 29.398
statcode = fict; statpar = 2
-- At sub-brick #1 'run Chi-sq' datum type is float: 0 to 15.154
statcode = fict; statpar = 2
-- At sub-brick #2 'Sess:run Chi-sq' datum type is float: 0 to 363.37
statcode = fict; statpar = 2
Does this output above come from the full model below, without any missing combinations between Session and run?
As I mentioned earlier, 3dLMErdoes not provide an option to extract these variance components. Therefore, do not conflate the first three sub-bricks of population-level effects with these variance components.
of course,
I am referring to a difference in signal that can be attributed to subject differences.
As my understanding of Sess effect and run effect are difference in signal that can be attributed to Sess or run differences (e.g difference between Sess 1 and 2, which in this case is specific to the difference between this two sessions). My aim is to extract difference in signal that can be attributed to subject differences at the population level.
The intra-class correlation (ICC) measures the proportion of total variability that can be attributed to differences between individuals. If that aligns with your goal, you might try using 3dICC with the same model specification as your 3dLMEr setup.
Gang Chen
The
National Institute of Mental Health (NIMH) is part of the National Institutes of
Health (NIH), a component of the U.S. Department of Health and Human
Services.