Geometric

Data Type: int

The geometric distribution is used to model the number of trials until the first success. The probability mass function is given by

\[f(x | n, p) = p * (1-p)^{n-1}, \: 1 \leq x.\]

For more info see Geometric Distribution.

GeometricDistribution

class dmx.stats.geometric.GeometricDistribution(p, name=None, keys=None)

Geometric distribution with probability of success p.

p

Probability of success, must be between (0,1).

Type:

float

log_p

Log of probability of success p.

Type:

float

log_1p

Log of 1-p (probability of failure).

Type:

float

name

Name for the GeometricDistribution object.

Type:

Optional[str]

keys

Key for parameter p.

Type:

Optional[str]

__init__(p, name=None, keys=None)

Initialize GeometricDistribution.

Parameters:
  • p (float) – Probability of success, must be between (0,1).

  • name (Optional[str], optional) – Name for the GeometricDistribution object.

  • keys (Optional[str], optional) – Key for parameter p.

density(x)

Evaluate the density of the geometric distribution at x.

\[P(x=k) = (k-1)\log(1-p) + \log(p), \quad x = 1,2,...\]
Parameters:

x (int) – Observed geometric value (1,2,3,…).

Returns:

Density of geometric distribution evaluated at x.

Return type:

float

dist_to_encoder()

Return a GeometricDataEncoder for this distribution.

Returns:

Encoder object.

Return type:

GeometricDataEncoder

estimator(pseudo_count=None)

Return a GeometricEstimator for this distribution.

Parameters:

pseudo_count (Optional[float], optional) – Pseudo-count for regularization.

Returns:

Estimator object.

Return type:

GeometricEstimator

log_density(x)

Evaluate the log-density of the geometric distribution at x.

Parameters:

x (int) – Must be a natural number (1,2,3,…).

Returns:

Log-density of geometric distribution evaluated at x.

Return type:

float

sampler(seed=None)

Return a GeometricSampler for this distribution.

Parameters:

seed (Optional[int], optional) – Seed for random number generator.

Returns:

Sampler object.

Return type:

GeometricSampler

seq_log_density(x)

Vectorized log-density for encoded data.

Parameters:

x (GeometricEncodedDataSequence) – Encoded data sequence.

Returns:

Log-density values.

Return type:

np.ndarray

GeometricEstimator

class dmx.stats.geometric.GeometricEstimator(pseudo_count=None, suff_stat=None, name=None, keys=None)

Estimator for the geometric distribution from aggregated sufficient statistics.

pseudo_count

Pseudo-count for regularization.

Type:

Optional[float]

suff_stat

Probability of success (value between (0,1)).

Type:

Optional[float]

name

Name for the estimator.

Type:

Optional[str]

keys

Key for merging sufficient statistics.

Type:

Optional[str]

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

Initialize GeometricEstimator.

Parameters:
  • pseudo_count (Optional[float], optional) – Pseudo-count for regularization.

  • suff_stat (Optional[float], optional) – Probability of success (value between (0,1)).

  • name (Optional[str], optional) – Name for the estimator.

  • keys (Optional[str], optional) – Key for merging sufficient statistics.

Raises:

TypeError – If keys is not a string or None.

accumulator_factory()

Return a GeometricAccumulatorFactory for this estimator.

Returns:

Factory object.

Return type:

GeometricAccumulatorFactory

estimate(nobs, suff_stat)

Estimate a GeometricDistribution from sufficient statistics.

Parameters:
  • nobs (Optional[float]) – Number of observations (not used).

  • suff_stat (Tuple[float, float]) – (count, sum) sufficient statistics.

Returns:

Estimated distribution.

Return type:

GeometricDistribution

GeometricSampler

class dmx.stats.geometric.GeometricSampler(dist, seed=None)

Sampler for the geometric distribution.

rng

RandomState with seed set for sampling.

Type:

RandomState

dist

GeometricDistribution to sample from.

Type:

GeometricDistribution

sample(size=None)

Generate iid samples from geometric distribution.

Parameters:

size (Optional[int], optional) – Number of iid samples to draw. If None, returns a single sample.

Returns:

Single sample (int) or numpy array of ints.

Return type:

Union[int, np.ndarray]