Giter VIP home page Giter VIP logo

prevalence-permutation's Introduction

Permutation-based prevalence inference using the minimum statistic

This is an implementation for Matlab of the method proposed by Carsten Allefeld, Kai Görgen and John-Dylan Haynes, 'Valid population inference for information-based imaging: From the second-level t-test to prevalence inference', NeuroImage 2016. In that paper the method was introduced as a way to perform population inference for classification accuracy and other information-like measures and called 'permutation-based information prevalence inference using the minimum statistic'. Since it can equally well be applied to other first-level summary statistics, the method is here generically referred to as 'permutation-based prevalence inference using the minimum statistic', or 'prevalence inference' for short.

The main user interface is given by the function:

prevalence(ifn, P2, alpha, prefix)

It takes a two-dimensional cell array of image filenames as input, which reference MR images of a given test statistic in several subjects (rows) and under several first-level permutations (columns), where the 1st column has to be based on the original (unpermuted) data. Results of prevalence inference are written to several image files. SPM functions are used to read and write image files, which therefore has to be installed. Images can be read in NIfTI and Analyze format as well as gzipped NIfTI, and are written as NIfTI files.

To perform the actual analysis, prevalence calls the function:

[results, params] = prevalenceCore(a, P2, alpha)

It can also be used directly, for input data that do not have the form of image files. The function provides a simple graphical display of the analysis results, which is updated while more second-level permutations are generated. This function has no external dependencies.

For more information on input and output parameters, use help prevalence and help prevalenceCore under Matlab.

The script prevalenceTest tests the implementation using smoothed images of cross-validated classification accuracy, derived from the data acquired by Cichy, Chen & Haynes (2011). The script can also serve as an example of how to use prevalence.

prevalencePtoZ is a utility that converts the p-value images generated by prevalence into z-value images.


This software was developed with SPM8 under Matlab R2015a, but later versions should work, too. It is copyrighted © 2016 by Carsten Allefeld and released under the terms of the GNU General Public License, version 3 or later.

prevalence-permutation's People

Contributors

allefeld avatar

Stargazers

Yohan avatar David Muñoz Tord avatar Remi Gau avatar Mark A. Thornton avatar Gio Piantoni avatar Lukas Snoek avatar Robin Ince avatar

Watchers

Robin Ince avatar James Cloos avatar  avatar Lukas Snoek avatar Daniel Feuerriegel avatar  avatar

prevalence-permutation's Issues

point out validity conditions of corrected p-values

email to Remi:

Yes, the problem lies with Eq. 21, which assumes that "the effect is only present in a small area" (p. 386). That's one of the things I'm not really happy about with this method, and which I simply adopted from the underlying work by Friston because I didn't have a better idea. The problem occurs when we look at spatially extended prevalence inference. Say in a single voxel / searchlight we'd like to reject the H0: prevalence <= 0.5 (the majority H0). How does this generalize to a set of voxels / searchlights? Is our spatially extended H0 that prevalence is smaller than but possibly close to 0.5 everywhere? Or is our spatially extended H0 that prevalence is 0 almost everywhere and possibly close to 0.5 only in one or a few regions? The multiple corrections problem is quite different in the two cases. For me the thing that decided it was that as far as I can see, there is no way to use permutations to implement the former, so I implemented the latter. ... Anyway, the whole thing breaks down if you only test in one or a few voxels / searchlights / ROIs, and I should probably explicitly write in the documentation under which circumstances the corrected p-values make sense at all. Thanks for making me aware of that!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.