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.

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, **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
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)[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)[source]

Generate an array of independent samples

Parameters:size – number of samples
Returns:2D array of sample values
class getdist.gaussian_mixtures.RandomTestMixtureND(ndim=4, ncomponent=1, names=None, weights=None, seed=0, 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
  • 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 list of MCSamples instances with random samples from random covariances and y