How To Do Multivariate Pattern Analysis

Post on 24-Feb-2016

103 views 0 download

description

How To Do Multivariate Pattern Analysis. What is MVPA?. Animations from Meyer & Kaplan (in press), Journal of Visualized Experiments. Not significant. Average. Average. V 1. V 2. V 3. V 4. V 5. V 6. V 1. V 2. V 3. V 4. V 5. V 6. Univariate vs. multivariate analysis of - PowerPoint PPT Presentation

Transcript of How To Do Multivariate Pattern Analysis

How To Do Multivariate Pattern Analysis

What is MVPA?

Animations from Meyer & Kaplan (in press), Journal of Visualized Experiments

V1 V2 V3 V4 V5 V6

V1 V2 V3 V4 V5 V6 V1 V2 V3 V4 V5 V6

AverageAverage

Not significant

Individually not significant…but significant when consideredin conjunction!

Univariate vs. multivariate analysis of fMRI data

Univariate analysis:

Fusiform face area

Significant?

Multivariate patternanalysis: Predictable?

Primary visual cortex

V1 V2 V3 V4 V5 V6

The direction in which the correlation between the perceptual stimuli and brain activity is mapped does not matter from a

statistical point of view.

Multivariate pattern analysis:Reverse inference

Classifier

? ? ? ? ? ? ? ? ? ? ? ?V1 activitypattern v

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv v

Testing trials

Classifier guess

Stimulus

Performance: 75%Stimulus

V1 activitypattern v

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv v

Testing trials

vvvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv vv

vvvv

vv v

Stimulus

V1 activitypattern

Training trials

1 2 3 4 5 6 7 8

12345678

Runs

Cro

ss-v

alid

atio

n st

eps

Training run Testing run

Performance 1

Performance 2

Performance 3

Performance 4

Performance 5

Performance 6

Performance 7

Performance 8

Overall performance

Cross-validation paradigm:

What do I need to do MVPA? An fMRI experiment with an appropriate design Almost any modern computer PyMVPA software

Experiment designAs many trials as possible to train the classifier

Experiment design

As many trials as possible to train the classifierClear BOLD pattern resulting from each trial

TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR

Sparse temporal sampling

Video clip TR

What is the input to the classifier?

Raw fMRI data

TR TR TR TR TR TR TR TRTR TRTR TR

TASK A TASK B

What is the input to the classifier?

Raw fMRI data Averaged fMRI data

TR TR TR TR TR TR TR TRTR TRTR TR

TASK A TASK B

AVG AVG

What is the input to the classifier?

Raw fMRI data Averaged fMRI data beta values from a GLM analysis

TR TR TR TR TR TR TR TRTR TRTR TR

TASK A TASK B

Data pre-processing

• Motion-correction• Smoothing (?)• Trend removal / high pass filter• Z-scoring PyMVPA

FSL

Gathering Your Tools

Why PyMVPA Alternative toolbox: Princeton MVPA toolbox

http://code.google.com/p/princeton-mvpa-toolbox/

PyMVPA is free and open-source, does not require Matlab Well-maintained and flexible Python is great once you get used to it I know how to use it

Python An interpreted, modern

programming language Produces very clear, easy to read

code Object-oriented Extensive scientific computing

modules available for python (scipy, nipy, etc.)

Brief python demo Python command line Python scripting iPython

Gathering Your Tools Install PyMVPA: http://www.pymvpa.org

Version .4x versus .6x Linux: Very easy, just type one command Windows:

Mac: Instructions on website will only install .4x. To install .6x follow my guide:

http://www.jonaskaplan.com/lab/pymvpainstallation.php

Gather Your Ingredients

Ingredients 1 4-dimensional functional data file, motion-corrected

This should be all of your data from one subject. If you did multiple scans, concatenate them into one single 4D file, all motion corrected to the same volume

Sample preprocessing script

Ingredients 1 4-dimensional functional data file, motion-corrected

This should be all of your data from one subject. If you did multiple scans, concatenate them into one single 4D file, all motion corrected to the same volume

1 text file which contains “attributes”: Column 1 labels each volume with a “target” category Column 2 labels each volume with a “chunk”, e.g. scan

1 Mask file in the functional space

dog violin cow vase

VOLUMES

VOXELS

Terminology

dog violin cow vase

SAMPLES

FEATURES

TARGETS

CHUNK

Terminology

Sample attributes file

Sparse design Block design

Getting started with pymvpa Start python or ipython Import the pymvpa module and explore it

Sample dataset

Subject saw nine different 5-second video clips: dog, cow, rooster, violin, piano, bass, vase, chainsaw, coins

One single volume acquired 7 seconds after the start of the clip

Eight scans, each stimulus seen 3 times in each scan (24 times across the experiment)

Getting started with pymvpa Read in your attributes

Create a dataset

Mappers Mappers transform data samples Dataset automatically maps data from 4D to 2D Many mappings are reversible

Data pre-processing steps Detrending

Z-scoring

Partitioners Used to split the data into training set and testing set

HalfPartitioner() OddEvenPartitioner() NFoldPartitioner()

Choosing a classifier algorithm

• Nearest neighbor• Support Vector Machine (SVM)• Linear Discriminant Analysis (LDA)• Gaussian Naive Bayes (GNB)• Sparse Multinomial Linear Regression (SMLR)•...•...

Choosing a classifier algorithm

Support Vector Machine Draws a hyperplane to separate the categories,

maximizing the margin between classes

Support Vector Machine

Support Vector Machine

• Draws a hyperplane to separate the categories, maximizing the margin between classes

• Works quickly with on large feature sets (lots of voxels)

• Common in fMRI pattern learning literature

• Binary classifier

• Linear version chosen (very little advantage to nonlinear SVM with lots of features and few stimuli)

Misaki et al, 2010, NeuroImage

Choosing a classifier algorithm

Setting up cross-validation

Go!

Results

Show confusion matrix:

Plot confusion matrix:

Significance testing

• Binomial test

• Permutation testing

• Voxel sensitivity maps

Significance testing• Binomial test

Significance testing

• Binomial test

Significance testing

• Permutation testing• Generate a null distribution by randomly permuting pattern labels

http://www.pymvpa.org/examples/permutation_test.html

Searchlight analysis

Searchlight analysis

To study on your own

Temporal exploration: averaging, temporal searchlights Sensitivity maps Permutation testing