Comparison between correlations and 3dttest++

Dear all,

I have calculated the correlation between 2 measurements/variables. The result of this correlation is a voxel-wise dataset that shows the correlation for each voxel in the brain. Furthermore, I use different ROIs in the brain.

What I would like to do now is to statistically compare if various correlations between different ROIs significantly differ. This means that I would like to compare different correlations. Let me provide you with an example:

  • Does the (previously calculated) correlation of the 2 variables in ROIs 1 vs. 2 significantly differ vs. the correlation of both variables in ROI 3 vs. 4?

Consequently, three steps are required:

  1. Calculate the correlation between ROI 1 and ROI 2.
  2. Calculate the correlation between ROI 3 and ROI 4.
  3. Now test if the two correlation results of both ROI comparisons differ significantly.

What would be the best AFNI program to perform these steps? I used 3dtcorrelate and 3dttest++, but it seems that something is wrong. I am breaking my head over this for hours now. For example, the correlation of ROI 1 and ROI 2 does not really overlap with the other correlation of ROI 3 and ROI 4. In this case, does it even make sense to compare the correlation in step 3 between the two correlations that I calculated in step 1 and 2? Is it logically reasonable? And is 3dttest++ the correct AFNI program to perform step 3?


I would like to specify my question, or ask a bit of a different question. I think that would make things easier. The setup is as follows:

  • The correlation between 2 variables was calculated. For each subject, I would have a file in AFNI format (BRIK and HEAD) that shows me the correlation for each voxel.
  • This correlation between 2 variables was calculated via 3dTcorrelate for two different ROIs.

Would 3dttest++ be the appropriate tool to now calculate if there is a significant difference between both correlations, i.e., between correlation from ROI 1 and correlation from ROI 2? I wonder if my question is already ill-posed, especially when both ROIs show no real overlap in the brain.

Your questions are very confusing. 3dTcorrelate is meant to compute the correlation between two time series at the voxel – not ROI – level. What are those two time series? I cannot make sense out of your following questions at the ROI level:

  1. Calculate the correlation between ROI 1 and ROI 2.
  2. Calculate the correlation between ROI 3 and ROI 4.
  3. Now test if the two correlation results of both ROI comparisons differ significantly

Hi Gang,

I will try to explain my question more precisely.

  1. I measured/calculated the Power-Law Exponent and the Mean Frequency of fMRI runs.
  2. Then, I calculated their correlation via 3dTcorrelate. As you know and already stated, the output of 3dTcorrelate is the correlation for every voxel in the brain, i.e., on a voxel-wise level.
  3. I used different ROIs to calculate the average correlation of the two variables above (per ROI). What I consequently get is one correlation value per ROI.

Now I would like to check if the correlation value between two ROIs (e.g. ROI1: r=0.74334; ROI2: r=0,79322323) significantly differs or not. I think that this basically sums up my question. I was wondering if there is an appropriate way to calculate this in AFNI, or if that approach might already be ill-posed statistically speaking, leaving AFNI aside.

Philipp

  1. I used different ROIs to calculate the average correlation of the two variables above (per ROI). What I consequently get is one correlation value per ROI.

Correlation coefficients are bounded within [-1, 1], and it would be difficult to directly apply the conventional models to such data. Thus, Fisher’s Z transformation formula is usually adopted to reduce skewness and make the sampling distribution more normal when sample size is big enough: z = (1/2) * ln((1+r)/(1-r)), where z is approximately normally distributed with mean r, and standard error 1/(n-3)0.5 (n: sample size). Before you average within each ROI, consider running the following:

3dcalc -a Corr_subj01R+tlrc -expr ‘log((1+a)/(1-a))/2’ -prefix Corr_subj01_Z

or more concisely,

3dcalc -a Corr_subj01R+tlrc -expr ‘atanh(a)’ -prefix Corr_subj01_Z

Now I would like to check if the correlation value between two ROIs (e.g. ROI1: r=0.74334; ROI2: r=0,79322323) significantly differs or not.

I assume that you’re discussing such a comparison at the population level. If so, this would be a paired t-test for each region pair. You can easily do this in any computational environment such as R, Python, Matlab, SAS, SPSS, etc. Alternatively, if have multiple region pairs, you can put them in a table in pure text and then use 3dttest++ -paired on the table. Check the help of 3dttest++ for details.