How to calculate voxelwise ICC with 3dLME2

AFNI version info (afni -ver):
Precompiled binary linux_ubuntu_16_64: Dec 14 2024 (Version AFNI_24.3.09 'Elagabalus')

Hello, I am using 3dLME2 and it works great. It gives exactly the same results as when I extract a single voxel and analyze it with R. That is always reassuring.

I would like to also have the ICC and the Random Effect LRT results for every voxel. Is this possible? And if so, how can I calculate them?

Thank you

Could you share your 3dLME2 script with a few lines of the data table content?

Gang Chen

Thank you for you help

3dLME2 -prefix ThreeDLME2_DMS_AllSlicesRESID -jobs 12 \
-mask /media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/GroupAnalysis/NeuralCapEff/threeDLME/mask.nii \
-fixef 'Group*Load*DMS' \
-ranef '~1|Subj' \
-qVars	'DMS'	\
-qVarCenters	0	\
-gltCode AgeLoad5	'Group : 1*Younger -1*Older Load : 1*five'	\
-gltCode AgeLoad4	'Group : 1*Younger -1*Older Load : 1*four'	\
-gltCode AgeLoad3	'Group : 1*Younger -1*Older Load : 1*three'	\
-gltCode AgeLoad2	'Group : 1*Younger -1*Older Load : 1*two'	\
-gltCode AgeLoad1	'Group : 1*Younger -1*Older Load : 1*one'	\
-gltCode AgeLoad54	'Group : 1*Younger -1*Older Load : 1*five -1*four'	\
-gltCode AgeLoad43	'Group : 1*Younger -1*Older Load : 1*four -1*three'	\
-gltCode AgeLoad32	'Group : 1*Younger -1*Older Load : 1*three -1*two'	\
-gltCode AgeLoad21	'Group : 1*Younger -1*Older Load : 1*two -1*one'	\
-gltCode AgeLoad31	'Group : 1*Younger -1*Older Load : 1*three -1*one'	\
-gltCode AgeLoad41	'Group : 1*Younger -1*Older Load : 1*four -1*one'	\
-gltCode AgeLoad51	'Group : 1*Younger -1*Older Load : 1*five -1*one'	\
-gltCode AgeDiffOY	'Group : 1*Older -1*Younger'	\
-gltCode Load54	'Load : 1*five -1*four'	\
-gltCode Load43	'Load : 1*four -1*three'	\
-gltCode Load32	'Load : 1*three -1*two'	\
-gltCode Load21	'Load : 1*two -1*one'	\
-gltCode YngLoad5	'Group	: 1*Younger	Load	: 1*five'	\
-gltCode YngLoad4	'Group	: 1*Younger	Load	: 1*four'	\
-gltCode YngLoad3	'Group	: 1*Younger	Load	: 1*three'	\
-gltCode YngLoad2	'Group	: 1*Younger	Load	: 1*two'	\
-gltCode YngLoad1	'Group	: 1*Younger	Load	: 1*one'	\
-gltCode OldLoad5	'Group	: 1*Older	Load	: 1*five'	\
-gltCode OldLoad4	'Group	: 1*Older	Load	: 1*four'	\
-gltCode OldLoad3	'Group	: 1*Older	Load	: 1*three'	\
-gltCode OldLoad2	'Group	: 1*Older	Load	: 1*two'	\
-gltCode OldLoad1	'Group	: 1*Older	Load	: 1*one'	\
-gltCode Age_Load32_DMS	'Group	: 1*Younger -1*Older Load : 1*three -1*two	DMS :'	\
-gltCode Age_Load43_DMS	'Group	: 1*Younger -1*Older Load : 1*four -1*three	DMS :'	\
-gltCode Age_Load54_DMS	'Group	: 1*Younger -1*Older Load : 1*five -1*four	DMS :'	\
-gltCode Age_Load21_DMS	'Group	: 1*Younger -1*Older Load : 1*two -1*one	DMS :'	\
-gltCode Age_Load31_DMS	'Group	: 1*Younger -1*Older Load : 1*three -1*one	DMS :'	\
-gltCode Age_Load41_DMS	'Group	: 1*Younger -1*Older Load : 1*four -1*one	DMS :'	\
-gltCode Age_Load51_DMS	'Group	: 1*Younger -1*Older Load : 1*five -1*one	DMS :'	\
-gltCode DMS	'DMS :'	\
-resid RESID \
-dataTable \
Subj	Group	Load	DMS	InputFile \
1002002	Younger	one	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0001.nii	\
1002002	Younger	two	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0002.nii	\
1002002	Younger	three	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0003.nii	\
1002002	Younger	four	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0004.nii	\

To compute ICC(3,1), you may try

3dICC -prefix... -jobs 12 \
-mask /media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/GroupAnalysis/NeuralCapEff/threeDLME/mask.nii \
-model 'Group*Load*DMS+(1|Subj)' \
-qVars	'DMS'	\
-qVarCenters	0	\
-dataTable \
Subj	Group	Load	DMS	InputFile \
1002002	Younger	one	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0001.nii	\
1002002	Younger	two	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0002.nii	\
1002002	Younger	three	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0003.nii	\
1002002	Younger	four	5.778	/media/jsteffen/GDrive/LabFiles/NCM002-MRIStudy/Data/Imaging/ProcMRIData/1002002/V001/fMRIStats/DMS/Model1ExplicitMask/beta_0004.nii	\
...

Regarding the random-effects LRT, what is your intended purpose or goal in computing it?

Gang Chen

Hello Gang,

Thank you for this info. I am sorry that did not find this on my own. I will read the associated paper also. When I do mixed models I report the LRT test results just to say that the use of the random effect was significant.
Jason

Hi Jason,

When I do mixed models I report the LRT test results just to say that the use of the random effect was significant.

You raise an interesting question. Practically speaking, such information might be informative in one or a few brain regions, but it could become overwhelming or less meaningful when considered across the whole brain. More fundamentally, I believe that a statistical model should be constructed based on the hierarchical structure of the data, relevant theoretical constructs, and their underlying causal relationships. In particular, the inclusion of variation (e.g., random effects) should be guided by prior knowledge or shared understanding that such variation---like individual differences---is expected and meaningful.

Gang Chen