When graphing my beta time courses something seemed funny. Voxels were either positively or negatively (basically identical but on different scales) associated to an eerie extent. When I looked at the correlation map (correlation with a test voxel) what I suspected was confirmed. All voxels had correlations of either 1 or -1 with the seed voxel. Any idea where I should start looking for the source of the problem?
It’s hard to guess without knowing the details of the experiment and without access to the data. One possibility is that the experiment design is not suited for estimating the effect for each trial separately if the trials are arranged in an inefficient way.
Perhaps you are accidentally using an -iresp output for correlation,
where the shapes would be identical, but of different sizes and
signs. Correlations of -iresp outputs should be all +/- 1.
- rick
That is one thing I feared. I am running the analysis again with fewer IM predictor types. I have 7 blocks each with 60 trials. There are two components to each trial that I am modeling separately. I have a jittered interval between trials (50% = 2 secs, 25% = 4 secs, 25% = 8 secs) and a jittered interval within trials (50% = 2 secs, 25% = 4 secs, 25% = 8 secs) between the two general events that I am modeling. Outcomes determine what category an event gets placed in. Within a trial event A’s category partially determines event B’s category. The within trial jitter between event A and event B was intended to allow me to model the two stages of the trial. I should mention when I run it with BLOCK I don’t recall noticing any collinearity warnings (will double check) but this is not the case when I run it with GAM (I get a few warnings with GAM). I have many IM predictors right now but I am collapsing across a few of them to make new predictors and I will rerun the analysis with fewer categories.
This is how I obtained the correlation with the aPFC voxel I was using for the sake of testing.
3dbucket -prefix PreConDecRepeatBetas stats.4_RUN+tlrc’[12…122(2)]’
3drefit -TR 2 PreConDecRepeatBetas+tlrc
3dfim+ -input PreConDecRepeatBetas+tlrc -polort 1 -ideal_file aPFCtest.1D -out Correlation -bucket aPFC_BetaSeries
This looks okay, as long as step(2) is appropriate. If you
would like, email me (click on my name for the address)
the output from:
3dinfo -verb PreConDecRepeatBetas stats.4_RUN+tlrc
- rick
Thanks for the .HEAD files.
I think indeed you ran into something like an over-specified model,
possibly due to a combination of IM and censoring, and it made the
solution unstable. Indeed, those betas are not all zero except for
one time point, they are actually typical, except for one time point.
The typical betas have magnitudes less than 20, some approach
100 (those big numbers are presumably outside the brain). But at
time point 36, they go into the hundreds of thousands.
In fact, there are many volumes (well, 9) of the stats dataset that
have a maximum of more than 1000, e.g. see the output from:
3dinfo -verb stats.4_RUN+tlrc.HEAD | grep float | grep _Coef | awk '{if ( $12 > 1000 ) print}'
In any case, this is probably a combination of using IM and
censoring.
One numerical test that you could consider would be to output
the minimum value of every regressor. If something ends up
tiny because of bad luck, it might lead to this. For example,
what is the output of :
3dTstat -min -prefix - X.xmat.1D\'
Also, if you are using afni_proc.py, it should show the
fraction of each stimulus class ideal lost to censoring.
Does it?
- rick
Taking a look at the output again now. The censored time points for the subject was 196. The censored fraction is roughly .08 (it seems like some of the stim times correspond to censored time points). I am currently running it without censoring and I am going to try on another subject as well.
- When it comes to the fraction of TRs censored for a stim it can get close to .6
I will update you on how things look without censoring
Thanks Again
The correlations look normal when I run it without censoring (no longer -1/+1) and the beta series graphs no longer have the spikes. Thanks for your help.
That is good news. Out of curiosity, did you run that
3dTstat command on the censored X-matrix?
3dTstat -min -prefix - X.xmat.1D'
- rick
Yes it gave me a .1D file with a long vector of negative values which I assume are the min values from X.xmat.1D. I can send it your way.