Log-Gaussian (Log-Normal)

Data Type: float

The log-Gaussian distribution is used to model data that is normal on the log scale. The probability density function is given by

\[f\left(x | \mu, \sigma^2 \right) = \frac{1}{\sqrt{2\pi\sigma^2}x}e^{-\frac{(\log{x}-\mu)^2}{2\sigma^2}}, \; x \in \mathbb{R}.\]

For more info see log-Gaussian Distribution.

LogGaussianDistribution

class pysp.stats.log_gaussian.LogGaussianDistribution(mu, sigma2, name=None, keys=None)

LogGaussianDistribution object defines Gaussian distribution with mean mu and variance sigma2.

mu

Location parameter for log-Gaussian distribution.

Type:

float

sigma2

Scale for log-Gaussian distribution.

Type:

float

const

Normalizing constant (depends on sigma2).

Type:

float

log_const

Log of above.

Type:

float

name

String for name of object.

Type:

Optional[str]

keys

Key for parameters of dist.

Type:

Optional[str]

__init__(mu, sigma2, name=None, keys=None)

LogGaussianDistribution object.

Parameters:
  • mu (float) – Real-valued number.

  • sigma2 (float) – Positive real-valued number.

  • name (Optional[str]) – String for name of object.

  • keys (Optional[str]) – Key for parameters of dist.

density(x)

Density of Log-Gaussian distribution at observation x.

See log_density() for details.

Parameters:

x (float) – Positive real-valued number.

Returns:

Density of Log-Gaussian at x.

Return type:

float

dist_to_encoder()

Create DataSequenceEncoder object for SequenceEncodableProbabilityDistribution instance.

Return type:

LogGaussianDataEncoder

Returns:

DataSequenceEncoder

estimator(pseudo_count=None)

Create a ParameterEstimator for corresponding SequenceEncodableProbabilityDistribution.

Parameters:

pseudo_count (Optional[float]) – Regularize sufficient statistics in estimation step.

Return type:

LogGaussianEstimator

Returns:

ParameterEstimator

log_density(x)

Log-density of log-Gaussian distribution at observation x.

Parameters:

x (float) – Positive valued observation of log-Gaussian.

Returns:

Log-density at observation x.

Return type:

float

sampler(seed=None)

Create a DistributionSampler object for a given ProbabilityDistribution.

Parameters:

seed (Optional[int]) – Set seed for drawing samples from distribution.

Return type:

LogGaussianSampler

seq_log_density(x)

Vectorized evaluation of the log density.

Parameters:

x (EncodedDataSequence) – EncodedDataSequence for corresponding SequenceEncodedProbabilityDistribution.

Return type:

ndarray

Returns:

np.ndarray

LogGaussianEstimator

class pysp.stats.log_gaussian.LogGaussianEstimator(pseudo_count=(None, None), suff_stat=(None, None), name=None, keys=None)

LogGaussianEstimator object used to estimate LogGaussianDistribution.

pseudo_count

Weights for suff_stat.

Type:

Tuple[Optional[float], Optional[float]]

suff_stat

Tuple of mean (mu) and variance (sigma2).

Type:

Tuple[Optional[float], Optional[float]]

name

String name of LogGaussianEstimator instance.

Type:

Optional[str]

keys

String keys of LogGaussianEstimator instance for combining sufficient statistics.

Type:

Optional[str]

__init__(pseudo_count=(None, None), suff_stat=(None, None), name=None, keys=None)

LogGaussianEstimator object.

Parameters:
  • pseudo_count (Tuple[Optional[float], Optional[float]]) – Tuple of two positive floats.

  • suff_stat (Tuple[Optional[float], Optional[float]]) – Tuple of float and positive float.

  • name (Optional[str]) – Assign a name to LogGaussianEstimator.

  • keys (Optional[str]) – Assign keys to LogGaussianEstimator for combining sufficient statistics.

accumulator_factory()

Create SequenceEncodableStatisticAccumulator object.

Return type:

LogGaussianAccumulatorFactory

estimate(nobs, suff_stat)

Estimate SequenceEncodableProbabilityDistribution for sufficient statistics.

Parameters:
  • nobs (Optional[float]) – Weighted number of observations.

  • suff_stat (Tuple[int, np.ndarray, np.ndarray, np.ndarray]) – Sufficient statistics for dirichlet distribution.

Return type:

LogGaussianDistribution

Returns:

SequenceEncodableProbabilityDistribution

LogGaussianSampler

class pysp.stats.log_gaussian.LogGaussianSampler(dist, seed=None)

LogGaussianSampler for drawing samples from LogGaussianSampler instance.

dist

LogGaussianDistribution instance to sample from.

Type:

LogGaussianDistribution

rng

RandomState with seed set to seed if passed in args.

Type:

RandomState

sample(size=None)

Draw ‘size’ iid samples from LogGaussianSampler object.

Numpy array of length ‘size’ from log-Gaussian distribution with scale beta if size not None. Else a single sample is returned as float.

Parameters:

size (Optional[int]) – Treated as 1 if None is passed.

Return type:

Union[float, ndarray]

Returns:

‘size’ iid samples from Gaussian distribution.