support vector machine in resting state data

Hi afni experts,
I want to perform SVM at resting state data to train and predict individual behavioral index. However, the 3dsvm seems working at task state fmri data only. How can i perform it at rest-data.

There’s quite a few possibilities here. One that comes to mind immediately is to use 3dRSFC to extract summary statistics (e.g. ALFF) from resting state data to use in the SVM.

Likely someone has done something similar to what you’re aiming to do, and you could use a similar analysis.

Hi Peter–

I’ll provide one interpretation of Rujing’s question in light of something we’re also interested in. I think, in this case, Rujing is interested in asking a question about prediction at the group or between-subjects level with resting-state data. There are two ways using 3dsvm that I could see going forward with such a question, one of which you already allude to. Can you let us know if you think either way is rational at all or if one is more rational than another?

Here goes. Let’s say there are two groups, A and B, of forty subjects each and we have 200 TRs of rsfMRI data for each subject:

Alternative 1: As you suggest, use 3dRSFC to get for each subject a volume with a connectivity index (e.g., fALFF) at each voxel. Then use 40 subjects (20 each from Group A and B) for training and 40 for testing. To do this concatenate 3dRSFC output for each training subject into a single, 40 volume -trainvol and do the same for the test cohort (-testvol). In this case, the .1D -trainlabels file would have 40 rows of 0s (Group A member volumes) and 1s (Group B member volumes). Then unleash hyperplane hell.

Alternative 2: For training, use all 200 TRs of rsfMRI data for each subject (not clear why one would want to, but who knows) so that we concatenate the training cohort’s data into a single, 200x40=8000 volume -trainvol with corresponding 8000 row -trainlabel file where each row indicates whether a given TR came from a Group A or Group B member.

To restate my question from above, are either/both of these smart ways to use 3dsvm for group prediction?

Additionally, if one were working with a relatively small between-groups prediction dataset and wanted to use leave-one-out cross validation then I assume one could simply loop multiple times through the above alternatives leaving one subject out of the training set and using that subject as the single member of the testing set, yes?

Thanks for insights/guidance…


Hi Paul-

My inclination is to recommend Option 1, compute a summary statistic and then use that for your prediction. I think the variability of using all of the data points is going to make classification difficult. I can’t promise that RSFC measures will be the answer, but that seems like a better option than all of the issues you may have using “raw” time series.

Happy to discuss more though!


Thanks much, Peter. We’ll jump into this and see if something bad happens…