getdist.gaussian_mixtures

class getdist.gaussian_mixtures.Gaussian1D(mean, sigma, **kwargs)[source]

Simple 1D Gaussian

Parameters:
  • mean – mean

  • sigma – standard deviation

  • kwargs – arguments passed to Mixture1D

class getdist.gaussian_mixtures.Gaussian2D(mean, cov, **kwargs)[source]

Simple special case of a 2D Gaussian mixture model with only one Gaussian component

Parameters:
  • mean – 2 element array with mean

  • cov – 2x2 array of covariance, or list of [sigma_x, sigma_y, correlation] values

  • kwargs – arguments passed to Mixture2D

class getdist.gaussian_mixtures.GaussianND(mean, cov, is_inv_cov=False, **kwargs)[source]

Simple special case of a Gaussian mixture model with only one Gaussian component

Parameters:
  • mean – array specifying y of parameters

  • cov – covariance matrix (or filename of text file with covariance matrix)

  • is_inv_cov – set True if cov is actually an inverse covariance

  • kwargs – arguments passed to MixtureND

class getdist.gaussian_mixtures.Mixture1D(means, sigmas, weights=None, lims=None, name='x', xmin=None, xmax=None, **kwargs)[source]

Gaussian mixture model in 1D with optional boundaries for fixed ranges

Parameters:
  • means – array of y for each component

  • sigmas – array of standard deviations for each component

  • weights – weights for each component (defaults to equal weight)

  • lims – optional array limits for each component

  • name – parameter name (default ‘x’)

  • xmin – optional lower limit

  • xmax – optional upper limit

  • kwargs – arguments passed to MixtureND

pdf(x)[source]

Calculate the PDF. Note this assumes x is within the boundaries (does not return zero outside) Result is also only normalized if no boundaries.

Parameters:

x – array of parameter values to evaluate at

Returns:

pdf at x

class getdist.gaussian_mixtures.Mixture2D(means, covs, weights=None, lims=None, names=('x', 'y'), xmin=None, xmax=None, ymin=None, ymax=None, **kwargs)[source]

Gaussian mixture model in 2D with optional boundaries for fixed x and y ranges

Parameters:
  • means – list of y for each Gaussian in the mixture

  • covs – list of covariances for the Gaussians in the mixture. Instead of 2x2 arrays, each cov can also be a list of [sigma_x, sigma_y, correlation] parameters

  • weights – optional weight for each component (defaults to equal weight)

  • lims – optional list of hard limits for each parameter, [[x1min,x1max], [x2min,x2max]]; use None for no limit

  • names – list of names (strings) for each parameter. If not set, set to x, y

  • xmin – optional lower hard bound for x

  • xmax – optional upper hard bound for x

  • ymin – optional lower hard bound for y

  • ymax – optional upper hard bound for y

  • kwargs – arguments passed to MixtureND

pdf(x, y=None)[source]

Calculate the PDF. Note this assumes x and y are within the boundaries (does not return zero outside) Result is also only normalized if no boundaries

Parameters:
  • x – value of x to evaluate pdf

  • y – optional value of y to evaluate pdf. If not specified, returns 1D marginalized value for x.

Returns:

value of pdf at x or x,y

class getdist.gaussian_mixtures.MixtureND(means, covs, weights=None, lims=None, names=None, label='', labels=None)[source]

Gaussian mixture model with optional boundary ranges. Includes functions for generating samples and projecting. MixtureND instances can be used to plot theoretical smooth contours instead of samples (e.g. for Fisher forecasts). For a simple Gaussian, can use GaussianND inherited class.

Parameters:
  • means – list of y for each Gaussian in the mixture

  • covs – list of covariances for the Gaussians in the mixture

  • weights – optional weight for each component (defaults to equal weight)

  • lims – optional list of hard limits for each parameter, [[x1min,x1max], [x2min,x2max]]; use None for no limit

  • names – list of names (strings) for each parameter. If not set, set to “param1”, “param2”…

  • label – name for labelling this mixture

  • labels – list of latex labels for each parameter. If not set, defaults to p_{1}, p_{2}…

MCSamples(size, names=None, logLikes=False, random_state=None, **kwargs)[source]

Gets a set of independent samples from the mixture as a mcsamples.MCSamples object ready for plotting etc.

Parameters:
  • size – number of samples

  • names – set to override existing names

  • logLikes – if True set the sample likelihood values from the pdf, if false, don’t store log likelihoods

  • random_state – random seed or Generator

Returns:

a new mcsamples.MCSamples instance

conditionalMixture(fixed_params, fixed_param_values, label=None)[source]

Returns a reduced conditional mixture model for the distribution when certainly parameters are fixed.

Parameters:
  • fixed_params – list of names or numbers of parameters to fix

  • fixed_param_values – list of values for the fixed parameters

  • label – optional label for the new mixture

Returns:

A new MixtureND instance with cov_i = Projection(Cov_i^{-1})^{-1} and shifted conditional y

density1D(index=0, num_points=1024, sigma_max=4, no_limit_marge=False)[source]

Get 1D marginalized density. Only works if no hard limits in other parameters.

Parameters:
  • index – parameter name or index

  • num_points – number of grid points to evaluate PDF

  • sigma_max – maximum number of standard deviations away from y to include in computed range

  • no_limit_marge – if true don’t raise error if limits on other parameters

Returns:

Density1D instance

density2D(params=None, num_points=1024, xmin=None, xmax=None, ymin=None, ymax=None, sigma_max=5)[source]

Get 2D marginalized density for a pair of parameters.

Parameters:
  • params – list of two parameter names or indices to use. If already 2D, can be None.

  • num_points – number of grid points for evaluation

  • xmin – optional lower value for first parameter

  • xmax – optional upper value for first parameter

  • ymin – optional lower value for second parameter

  • ymax – optional upper value for second parameter

  • sigma_max – maximum number of standard deviations away from mean to include in calculated range

Returns:

Density2D instance

marginalizedMixture(params, label=None, no_limit_marge=False) MixtureND[source]

Calculates a reduced mixture model by marginalization over unwanted parameters

Parameters:
  • params – array of parameter names or indices to retain. If none, will simply return a copy of this mixture.

  • label – optional label for the marginalized mixture

  • no_limit_marge – if true don’t raise an error if mixture has limits.

Returns:

a new marginalized MixtureND instance

pdf(x)[source]

Calculate the PDF. Note this assumes x is within the boundaries (does not return zero outside) Result is also only normalized if no boundaries.

Parameters:

x – array of parameter values to evaluate at

Returns:

pdf at x

pdf_marged(index, x, no_limit_marge=False)[source]

Calculate the 1D marginalized PDF. Only works if no other parameter limits are marginalized

Parameters:
  • index – index or name of parameter

  • x – value to evaluate PDF at

  • no_limit_marge – if true don’t raise an error if mixture has limits

Returns:

marginalized 1D pdf at x

sim(size, random_state=None)[source]

Generate an array of independent samples

Parameters:
  • size – number of samples

  • random_state – random number Generator or seed

Returns:

2D array of sample values

class getdist.gaussian_mixtures.RandomTestMixtureND(ndim=4, ncomponent=1, names=None, weights=None, seed=None, label='RandomMixture')[source]

class for randomly generating an N-D gaussian mixture for testing (a mixture with random parameters, not random samples from the mixture).

Parameters:
  • ndim – number of dimensions

  • ncomponent – number of components

  • names – names for the parameters

  • weights – weights for each component

  • seed – random seed or Generator

  • label – label for the generated mixture

getdist.gaussian_mixtures.randomTestMCSamples(ndim=4, ncomponent=1, nsamp=10009, nMCSamples=1, seed=10, names=None, labels=None)[source]

get a MCSamples instance, or list of MCSamples instances with random samples from random covariances and y