mixle.stats.univariate.discrete.poisson module¶
Poisson distributions, estimators, accumulators, samplers, and encoders.
For nonnegative integer counts, PoissonDistribution(lam) has rate
lam > 0 and log-density:
log(p_mat(x_mat=x; lam)) = x*log(lam) - log(x!) - lam,
Values outside {0, 1, 2, ...} score -inf.
Reference: Johnson, Kemp & Kotz, Univariate Discrete Distributions (3rd ed., Wiley, 2005).
- class PoissonDistribution(lam, name=None, prior=None)[source]
Bases:
SequenceEncodableProbabilityDistributionPoisson distribution over non-negative integer counts with rate
lam.- classmethod compute_capabilities()[source]
Declare backend support for generated Poisson density kernels.
- classmethod compute_declaration()[source]
Return the generated-compute declaration for the Poisson distribution.
- static exp_family_sufficient_statistics(x, engine)[source]
Return Poisson sufficient statistics for generated scoring.
- static exp_family_legacy_sufficient_statistics(x, params, engine)[source]
Return per-row Poisson sufficient statistics in accumulator order.
- static exp_family_natural_parameters(params, engine)[source]
Return Poisson natural parameters for generated scoring.
- static exp_family_log_partition(params, engine)[source]
Return Poisson log partition for generated scoring.
- static exp_family_base_measure(x, engine)[source]
Return Poisson base measure for generated scoring.
- set_prior(prior)[source]
Attach a parameter prior and cache the conjugate Gamma expectations.
With a Gamma(k, theta) prior over the rate
lamthis caches (k, theta) so thatexpected_log_density(x) = (psi(k) + ln theta)*x - k*theta - gammaln(x+1)(the VB E-step term using E[ln lam] = psi(k) + ln theta and E[lam] = k*theta). Any other prior (includingNone) leaves the distribution a plain point model.- Parameters:
prior (SequenceEncodableProbabilityDistribution | None)
- Return type:
None
- expected_log_density(x)[source]
Variational expectation E_q[log p(x | lam)] under the Gamma prior.
Falls back to the plug-in
log_density(x)when no conjugate prior is attached.
- seq_expected_log_density(x)[source]
Vectorized
expected_log_densityover sequence-encoded observations.
- density(x)[source]
Evaluate the density of Poisson distribution at observation x.
Calls np.exp(log_density(x)). See log_density() for details.
- log_density(x)[source]
Log-density of Poisson distribution evaluated at x.
- Log-density given by,
log(p_mat(x_mat=x; lam) = x*log(lam) - log(x!) - lam, for x in {0,1,2,…}
and -np.inf else.
Note: log(Gamma(x+1.0)) = log(x!), where Gamma is the gamma function.
- seq_log_density(x)[source]
Vectorized log-density evaluated on sequence encoded x.
Arg value x (Tuple[np.ndarray[int], np.ndarray[float]]) is seq_encoded Poisson data from PoissonDataEncoder.seq_encode(), containing
x[0] (np.ndarray[int]): Non-negative integer valued Poisson iid observations, x[1] (np.ndarray[float]): np.log(Gamma(x[0]+1.0)), Gamma is the gamma function.
- static backend_log_density_from_params(vals, log_fact, lam, engine)[source]
Engine-neutral Poisson log-density from explicit parameters.
- backend_seq_log_density(x, engine)[source]
Engine-neutral vectorized log-density for encoded data.
- classmethod backend_stacked_params(dists, engine)[source]
Return stacked Poisson parameters for a homogeneous mixture kernel.
- classmethod backend_stacked_log_density(x, params, engine)[source]
Return an
(n, k)matrix of Poisson log densities.
- classmethod backend_stacked_sufficient_statistics(x, weights, params, engine)[source]
Return stacked Poisson sufficient statistics using engine-resident arrays.
- to_fisher(**kwargs)[source]
Return the Poisson’s count-family Fisher view.
- cdf(x)[source]
Cumulative distribution function P(X <= x) = Q(floor(x)+1, lam).
- quantile(q)[source]
Inverse CDF F^{-1}(q) (via scipy poisson).
- sampler(seed=None)[source]
Return a sampler for iid draws from this distribution.
- Parameters:
seed (int | None) – Optional seed for the sampler’s random state.
- Returns:
A configured
PoissonSampler.- Return type:
PoissonSampler
- estimator(pseudo_count=None)[source]
Return an estimator initialized from this distribution’s shape.
- Parameters:
pseudo_count (float | None) – Optional smoothing count applied to the current rate.
- Returns:
A
PoissonEstimator.- Return type:
PoissonEstimator
- dist_to_encoder()[source]
Return an encoder for iid Poisson observations.
- Return type:
PoissonDataEncoder
- enumerator()[source]
Return an enumerator over nonnegative counts in descending probability order.
- Return type:
PoissonEnumerator
- quantized_index(max_bits, bin_width_bits=1.0)[source]
Build a bounded bit-quantized index by walking the Poisson mode outward.
- class PoissonEnumerator(dist)[source]
Bases:
DistributionEnumeratorEnumerate Poisson support values in descending probability order.
- Parameters:
dist (PoissonDistribution)
- class PoissonSampler(dist, seed=None)[source]
Bases:
DistributionSamplerDraw independent samples from a
PoissonDistribution.- Parameters:
dist (PoissonDistribution)
seed (int | None)
- class PoissonAccumulator(keys=None)[source]
Bases:
SequenceEncodableStatisticAccumulatorAccumulate weighted count and sum statistics for Poisson estimation.
- Parameters:
keys (str | None)
- initialize(x, weight, rng=None)[source]
Initialize sufficient statistics with one weighted observation.
This method delegates to
update.- Parameters:
x (int) – Observation from a Poisson distribution.
weight (float) – Observation weight.
rng (RandomState | None) – Unused; accepted for the accumulator interface.
- Return type:
None
- seq_initialize(x, weights, rng=None)[source]
Vectorized initialization of PoissonAccumulator sufficient statistics with weighted observations.
This delegates to
seq_update().Arg value x (Tuple[np.ndarray[int], np.ndarray[float]]) is seq_encoded Poisson data from PoissonDataEncoder.seq_encode(), containing
x[0] (np.ndarray[int]): Non-negative integer valued Poisson iid observations, x[1] (np.ndarray[float]): np.log(Gamma(x[0]+1.0)), Gamma is the gamma function.
- update(x, weight, estimate=None)[source]
Update sufficient statistics for PoissonAccumulator with one weighted observation.
- seq_update(x, weights, estimate=None)[source]
Vectorized update of PoissonAccumulator sufficient statistics with weighted observations.
Arg value x (Tuple[np.ndarray[int], np.ndarray[float]]) is seq_encoded Poisson data from PoissonDataEncoder.seq_encode(), containing
x[0] (np.ndarray[int]): Non-negative integer valued Poisson iid observations, x[1] (np.ndarray[float]): np.log(Gamma(x[0]+1.0)), Gamma is the gamma function.
- combine(suff_stat)[source]
Merge aggregated Poisson sufficient statistics into this accumulator.
The tuple is interpreted as
(count, sum).
- from_value(x)[source]
Replace this accumulator’s sufficient statistics.
- key_merge(stats_dict)[source]
Merge this accumulator into
stats_dictunder its configured key.
- key_replace(stats_dict)[source]
Replace sufficient statistics from
stats_dictwhen this accumulator’s key is present.
- acc_to_encoder()[source]
Return an encoder compatible with Poisson observations.
- Return type:
PoissonDataEncoder
- class PoissonAccumulatorFactory(keys=None)[source]
Bases:
StatisticAccumulatorFactoryCreate Poisson accumulators with a shared optional merge key.
- Parameters:
keys (str | None)
- make()[source]
Return a fresh Poisson accumulator.
- Return type:
PoissonAccumulator
- class PoissonEstimator(pseudo_count=None, suff_stat=None, name=None, keys=None, prior=None)[source]
Bases:
ParameterEstimatorEstimate Poisson rate parameters from accumulated sufficient statistics.
- Parameters:
- accumulator_factory()[source]
Return an accumulator factory matching this estimator.
- Return type:
PoissonAccumulatorFactory
- model_log_density(model)[source]
Log-density of the model’s rate under the Gamma prior (ELBO global term).
- Parameters:
model (PoissonDistribution)
- Return type:
- estimate(nobs, suff_stat)[source]
Estimate a Poisson distribution from aggregated sufficient statistics.
The tuple is interpreted as
(count, sum).
- class PoissonDataEncoder[source]
Bases:
DataSequenceEncoderEncode iid non-negative integer Poisson observations with log-factorials.