Diagonal Multivariate Gaussian
Data Type: Sequence[float]
A d-dimensinoal random variable \((X_1, X_2, ..., X_d)\) follows a diagonal multivariate normal distribution if each \(X_i \sim N\left(0, \sigma^2_i \right)\) and \(Cov(X_i, X_j) = 0\) for each \(i \neq j\).
The probability density function is given by
For more info see Multivariate Normal Distribution.
DiagonalGaussianDistribution
- class dml.stats.dmvn.DiagonalGaussianDistribution(mu, covar, name=None, keys=(None, None))
Diagonal Gaussian distribution with mean
muand diagonal covariancecovar.- dim
Dimension of the multivariate Gaussian.
- Type:
int
- mu
Mean of the Gaussian.
- Type:
np.ndarray
- covar
Variance for each component.
- Type:
np.ndarray
- name
Name of object instance.
- Type:
Optional[str]
- log_c
Normalizing constant for diagonal Gaussian.
- Type:
float
- ca
Term for likelihood calculation.
- Type:
np.ndarray
- cb
Term for likelihood calculation.
- Type:
np.ndarray
- cc
Term for likelihood calculation.
- Type:
np.ndarray
- keys
Key for mean and covariance.
- Type:
Tuple[Optional[str], Optional[str]]
- __init__(mu, covar, name=None, keys=(None, None))
Initialize a DiagonalGaussianDistribution object.
- Parameters:
mu (Union[Sequence[float], np.ndarray]) – Mean of Gaussian distribution.
covar (Union[Sequence[float], np.ndarray]) – Variance of each component.
name (Optional[str], optional) – Name for object instance.
keys (Tuple[Optional[str], Optional[str]], optional) – Key for mean and covariance.
- density(x)
Evaluate the density of the DiagonalGaussianDistribution.
- Parameters:
x (Union[Sequence[float], np.ndarray]) – Observation from Diagonal Gaussian.
- Returns:
Density at x.
- Return type:
float
- dist_to_encoder()
Return a DiagonalGaussianDataEncoder for this distribution.
- Returns:
Encoder object.
- Return type:
DiagonalGaussianDataEncoder
- estimator(pseudo_count=None)
Return a DiagonalGaussianEstimator for this distribution.
- Parameters:
pseudo_count (Optional[float], optional) – Pseudo-count for regularization.
- Returns:
Estimator object.
- Return type:
- log_density(x)
Evaluate the log-density of the DiagonalGaussianDistribution.
- Parameters:
x (Union[Sequence[float], np.ndarray]) – Observation from Diagonal Gaussian.
- Returns:
Log-density at x.
- Return type:
float
- sampler(seed=None)
Return a DiagonalGaussianSampler for this distribution.
- Parameters:
seed (Optional[int], optional) – Seed for random number generator.
- Returns:
Sampler object.
- Return type:
- seq_log_density(x)
Vectorized log-density for encoded data.
- Parameters:
x (DiagonalGaussianEncodedDataSequence) – Encoded data sequence.
- Returns:
Log-density values.
- Return type:
np.ndarray
DiagonalGaussianEstimator
- class dml.stats.dmvn.DiagonalGaussianEstimator(dim=None, pseudo_count=(None, None), suff_stat=(None, None), name=None, keys=(None, None))
Estimator for diagonal Gaussian distributions from aggregated sufficient statistics.
- name
Name for object instance.
- Type:
Optional[str]
- dim
Dimension of Gaussian, either set or determined from suff_stat arg.
- Type:
int
- prior_mu
Set from suff_stat[0].
- Type:
Optional[np.ndarray]
- prior_covar
Set from suff_stat[1].
- Type:
Optional[np.ndarray]
- pseudo_count
Re-weight the sum of observations and sum of squared observations in estimation.
- Type:
Tuple[Optional[float], Optional[float]]
- keys
Key for mean and covariance.
- Type:
Tuple[Optional[str], Optional[str]]
- __init__(dim=None, pseudo_count=(None, None), suff_stat=(None, None), name=None, keys=(None, None))
Initialize DiagonalGaussianEstimator.
- Parameters:
dim (Optional[int], optional) – Optional dimension of Gaussian.
pseudo_count (Tuple[Optional[float], Optional[float]], optional) – Re-weight the sum of observations and sum of squared observations in estimation.
suff_stat (Tuple[Optional[np.ndarray], Optional[np.ndarray]], optional) – Sum of observations and sum of squared observations both having same dimension.
name (Optional[str], optional) – Name for object instance.
keys (Tuple[Optional[str], Optional[str]], optional) – Key for mean and covariance.
- Raises:
TypeError – If keys is not a tuple of two strings or None.
- accumulator_factory()
Return a DiagonalGaussianAccumulatorFactory for this estimator.
- Returns:
Factory object.
- Return type:
DiagonalGaussianAccumulatorFactory
- estimate(nobs, suff_stat)
Estimate a DiagonalGaussianDistribution from sufficient statistics.
- Parameters:
nobs (Optional[float]) – Number of observations.
suff_stat (Tuple[np.ndarray, np.ndarray, float]) – Sufficient statistics.
- Returns:
Estimated distribution.
- Return type:
DiagonalGaussianSampler
- class dml.stats.dmvn.DiagonalGaussianSampler(dist, seed=None)
Sampler for DiagonalGaussianDistribution.
- dist
Object instance to sample from.
- rng
Random number generator.
- Type:
RandomState
- sample(size=None)
Generate samples from Diagonal Gaussian distribution.
- Parameters:
size (Optional[int], optional) – Number of samples to generate.
- Returns:
Single sample or list of samples.
- Return type:
Union[np.ndarray, List[np.ndarray]]