[pymvpa] null classification performance in the presence of strong univariate signal??

David Soto d.soto.b at gmail.com
Mon Sep 8 09:21:44 UTC 2014


Hi,

Thank you for the great software. I am really enjoying it.
We have been learning about the searchlight analyses
 as part of a broader analyses, and have encountered an issue for which we
have no apparent explanation. The univariate GLM substraction analyses show
strong differences in activation in a frontoparietal network betwen a
*cued* and *uncued* attention task. We performed a searchlight analyses
with KNN and SVM classifiers on the same data *as a sanity check*
​expecting to find spheres in frontoparietal cortex​
​ with significant classification accuracy. But we do not find anything
like it.

There are two experimental conditions  *cued and uncued* and 19 subjects.

The data input to the searchlight is the parameter estimates (PEs) from the
GLM that give such strong univariate effecs in frontoparietal cortex​
​.

We therefore have a 4D nii file in which volumes 1-19 are PEs for the *cue*
classification target and volumes 20-38  are the PEs for the *uncued*
classification target

This is the code we use. In it the chunks are the subject (1-19)

from mvpa2.suite import *
attr = SampleAttributes(os.path.join(datapath,
'attr1task_cued_vs_uncued.txt'))
ds = fmri_dataset(samples=os.path.join(datapath1, 'introsp_pred.nii.gz'),
                  targets=attr.targets, chunks=attr.chunks,
                  mask=os.path.join(datapath2, 'mask.nii.gz'))#based on
FEAT analyses
                  #add_fa={'unmbral_glm': os.path.join(datapath2,
'mask.nii.gz')})
#ds.sa['task']=np.repeat(['search','introsp'], 16)
zscore(ds, chunks_attr='chunks')

clf=kNN(k=1, dfx=one_minus_correlation, voting='majority')
#clf = LinearNuSVMC()
partitioner=NFoldPartitioner()
cv=CrossValidation(clf, partitioner)

sl=sphere_searchlight(cv, radius=3, space='voxel_indices',
postproc=mean_sample(), nproc=4)
res_knn=sl(ds)
niftires = map2nifti(ds, res_knn)
archivo='/home/dsoto/Documents/fmri/wmintrosp/just1indivcopesML/orig/sl_knn.nii.gz'

niftires.to_filename(archivo)
h5save(os.path.join(datapath1,'sl_knn.hdf5'),res_knn_pred_z_by_subj)

The above code gave a Warning re: the zscoring stage becos the number of
datapoints per chunks was only 2 (in the example above the chunks were the
subjects)

I ALSO NOTE that I repeated this using different zscoring approaches (eg
zscoring  by each subject, by each condition *cued* vs *uncued* or by the
whole input data, for this later we created a column factor with *1* for
the 38 data points)
​


​I am confused as to why the univariate GLM gives such strong difference
between conditions, while the searchlight gives null classification
accuracy.

Any input is highly appreciated!

cheers
ds​

-- 

http://www1.imperial.ac.uk/medicine/people/d.soto/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/attachments/20140908/f12de420/attachment.html>


More information about the Pkg-ExpPsy-PyMVPA mailing list