Multivariate Pattern Analysis in Python

# mvpa2.clfs.stats.match_distribution

`mvpa2.clfs.stats.``match_distribution`(data, nsamples=None, loc=None, scale=None, args=None, test='kstest', distributions=None, **kwargs)

  Determine best matching distribution.

  Can be used for ‘smelling’ the data, as well to choose a parametric distribution for data obtained from non-parametric testing (e.g. `MCNullDist`).

  WiP: use with caution, API might change

  Parameters:

  data : np.ndarray

  > Array of the data for which to deduce the distribution. It has to be sufficiently large to make a reliable conclusion

  nsamples : int or None

  > If None – use all samples in data to estimate parametric distribution. Otherwise use only specified number randomly selected from data.

  loc : float or None

  > Loc for the distribution (if known)

  scale : float or None

  > Scale for the distribution (if known)

  test : str

  > What kind of testing to do. Choices:
  >   ‘p-roc’

  >     detection power for a given ROC. Needs two parameters: `p=0.05` and `tail='both'`

  >   ‘kstest’

  >     ‘full-body’ distribution comparison. The best choice is made by minimal reported distance after estimating parameters of the distribution. Parameter `p=0.05` sets threshold to reject null-hypothesis that distribution is the same. WARNING: older versions (e.g. 0.5.2 in etch) of scipy have incorrect kstest implementation and do not function properly.

  distributions : None or list of str or tuple(str, dict)

  > Distributions to check. If None, all known in scipy.stats are tested. If distribution is specified as a tuple, then it must contain name and additional parameters (name, loc, scale, args) in the dictionary. Entry ‘scipy’ adds all known in scipy.stats.

  **kwargs

  > Additional arguments which are needed for each particular test (see above)

  Examples

      >>> from mvpa2.clfs.stats import match_distribution
      >>> data = np.random.normal(size=(1000,1));
      >>> matches = match_distribution(
      ...   data,
      ...   distributions=['rdist',
      ...                  ('rdist', {'name':'rdist_fixed',
      ...                             'loc': 0.0,
      ...                             'args': (10,)})],
      ...   nsamples=30, test='p-roc', p=0.05)