Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-parametric statistics #233

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

cmaumet
Copy link
Member

@cmaumet cmaumet commented Dec 8, 2014

This is a work-in-progress, developed with @nicholst, to model non-parametric inference.

image

The proposed modifications are as follows:

  • New attribute nidm:isParametric in nidm:Inference to specify whether parametric or non-parametric inference is performed.
  • New optional entity nidm:NonParametricNullDistribution (used by nidm:Inference and only available if isParametric = true) with attributes: nidm:numberOfPermutations, nidm:exchangeabilityBlockSize (optional).
  • New optional attribute nidm:varianceSmoothingFWHM in nidm:StatisticMap to specify the degree of variance smoothing for Pseudo-TStatistic.
  • nidm:NonParametricSymmetricDistribution replaced by nidm:SymmetricDistribution in nidm:ErrorModel (as discussed at Non-parametric distributions ISA-tools/stato#29 and Non-parametric symmetric distribution ISA-tools/stato#31).

@nicholst
Copy link
Contributor

nicholst commented Dec 8, 2014

Thanks @cmaumet. So have we defined a new type of statistic, the 'pseudo t'? (Which really should instead be called the 'Smoothed Variance t-test'

@cmaumet
Copy link
Member Author

cmaumet commented Dec 8, 2014

Thanks @nicholst, the new statistic term is now updated to SmoothedVarianceTStatistic. Once we have agreed on those changes we might want to check with STATO if this new term can be created there as well.

@cmaumet cmaumet force-pushed the non_parametric branch 3 times, most recently from 666b2e4 to fd701f9 Compare December 12, 2014 10:46
@cmaumet
Copy link
Member Author

cmaumet commented Dec 12, 2014

(Just rebased)

@cmaumet
Copy link
Member Author

cmaumet commented Dec 15, 2014

Created new terms for:

  • TFCE Statistic: nidm:ThresholdFreeClusterEnhancement and nidm:EParameter and nidm:HParameter.
  • cluster mass: nidm:clusterMass

@cmaumet cmaumet changed the title WIP: Non-parametric statistics Non-parametric statistics Dec 15, 2014
@nicholst
Copy link
Contributor

These nidm:EParameter and nidm:EParameter are quite specific to TFCE. Might they not be better labelled nidm:TFCE_EParameter and nidm:TFCE_EParameter or something?

@cmaumet
Copy link
Member Author

cmaumet commented Dec 15, 2014

We discussed this issue on NIDASH call on December 15th.

  • We re-discussed the possibility to use nidm:NonParametricInference, nidm:ParametricInference (and similarly remove nidm:statisticType).
  • @nicholst: add uncorrected and corrected p-value maps?

@nicholst
Copy link
Contributor

@cmaumet : Yes! We should model uncorrected and corrected p-value as well.

@cmaumet
Copy link
Member Author

cmaumet commented Mar 26, 2015

This pull request has been rebased on master and the following updates included:

  • Modelling of "non-parametric" analyses proposed in this PR, is now considered as an "extension" to nidm-results.owl. A separate folder extension/non_parametric was created in order to store scripts, examples and a new owl file called nidm-results_nonparametric.owl.
  • nidm-results_nonparametric.owl imports nidm-results.owl and is using the same nidm namespace.
  • a few fixes were introduced in the owl file (nidm:Statistic -> obo:statistic) and non-parametric example (add nidm:CoordinateSpace entity).

@jbpoline
Copy link
Contributor

looking at it now, looks great -
@nicholst : strictly speaking the smoothed variance t is an actual t ? is the denominator an independent sqrt(X2) ?

@nicholst
Copy link
Contributor

Good question @jbpoline. Your definition amounts to the strict parametric definition. In that vein the smoothed variance t-test is Gaussian divided by independent approximate chi-squared.

Colloquially, I think of any "estimate divided by standard error" as a "t ratio", and certainly in a nonparametic setting we don't need the parametric assertions.

I find "smoothed variance t-test" a very clear description, more informative than Andrew Holmes' preferred "pseudo t-test". But I'm up for suggestions they are more precise.

What do you suggest?

On Mar 30, 2015, at 6:09 AM, Jean-Baptiste Poline [email protected] wrote:

looking at it now, looks great -
@nicholst : strictly speaking the smoothed variance t is an actual t ? is the denominator an independent sqrt(X2) ?


Reply to this email directly or view it on GitHub.

@nicholst
Copy link
Contributor

@cmaumet : What's the status of this PR... Are we waiting for resolution of the discussion from 2015? Or for another version / release candidate of NIDM-Results to be created?

@cmaumet
Copy link
Member Author

cmaumet commented Feb 28, 2018

Hi @nicholst! I think we only need to check that what is in here is consistent with our first prototype for SnPM (SnPM-toolbox/SnPM-devel#45). If @TomMaullin is up for it, we could also do the same for randomise, just to check that the proposed model fits our needs.

@nicholst
Copy link
Contributor

nicholst commented Feb 28, 2018

Sorry for being slow but I'm trying to keep track of all of our NIDM-Results exporter work:

  1. SPM: By @gllmflndn, in Matlab, writes out NIDM-Results graph in Turtle & JSON-LD serializations.
  2. nidmfsl - By @cmaumet , in python, uses rdflib to write out Turtle & JSON-LD
  3. SnPM: By @cmaumet, in Matlab, uses @gllmflndn's code to do analogous serializations (based on these nonparam-NIDM extensions)
  4. JSON API: By @cmaumet, a specification of a JSON file giving minimal details to create a NIDM-Result export (again depending on this PR)
  5. Randomise via JSON API: Initial effort by @TomMaullin & @AlexBowring
  6. nidmafni - By ???, initially planned as clone of nidmfsl, now planned to use JSON API

So the question is, for SnPM: What should we do? Use this PR? Or switch to JSON API?

@cmaumet - Please feel free to edit this comment to correct details in-line.

@cmaumet
Copy link
Member Author

cmaumet commented Mar 1, 2018

Hi @nicholst! Sorry for the confusion!

So the question is, for SnPM: What should we do? Use this PR? Or switch to JSON API?

The JSON API is a intermediate (flattened) representation used by the exporters to more easily generate a NIDM-Results export. But, we still need to have the information represented in NIDM in the first place.

For non-parametric statistics:

  1. This PR is used to extend NIDM to represent non-parametric statistics - then -
  2. We can update the JSON API to add non-parametric attributes new terms (directly from the new NIDM terms) - then -
  3. Finally we can update SnPM to generate NIDM-Results packs using the JSON API (via SPM NIDM exporter)

My suggestion was that before we merge this PR, we do a full cycle 1 -> 2 -> 3 as a sanity check that our model fits our needs. How does this sound?

@nicholst
Copy link
Contributor

nicholst commented Mar 1, 2018

OK... so... how to action this... Are you poised to do this all? Or you taking the lead on 2, Tom MS w/ my help, 3?

@cmaumet
Copy link
Member Author

cmaumet commented Mar 1, 2018

Suggested action items/people:

Is that okay? @nicholst, @TomMaullin

@nicholst
Copy link
Contributor

nicholst commented Mar 1, 2018

@cmaumet : This is good for me: @TomMaullin are you clear what needs to be done?

My only question is: Does the NIDM FSL exporter currently use the JSON API? I.e. will @TomMaullin & my PR to the exporter use the JSON API?

@cmaumet
Copy link
Member Author

cmaumet commented Mar 1, 2018

My only question is: Does the NIDM FSL exporter currently use the JSON API? I.e. will @TomMaullin & my PR to the exporter use the JSON API?

That's a good point! The integration of the JSON API in the NIDM FSL exporter is still work-in-progress, and this is another todo point [now added above].

Maybe you can start by finishing the collection of all the required information in the randomise output folder while I focus on JSON API integration and we can reconvene afterwards?

@nicholst
Copy link
Contributor

nicholst commented Mar 1, 2018 via email

@TomMaullin
Copy link

Hi @nicholst @cmaumet , yes this makes sense to me. Just to double check though, I should:

  • Add the terms discussed in this PR to the Google doc for the JSON API
  • Make a PR for Randomise on the nidmresults-fsl repository

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants