Distribution Families¶
Most model families are available from mixle.stats. The important idea is
that families are not only scalar densities. They include combinators, latent
wrappers, structured supports, graph/ranking models, Bayesian families, and
process models, all using the same distribution and estimator contract.
How to Choose a Family¶
Start from the shape and support of one observation.
Observation |
Start with |
Consider when needed |
|---|---|---|
real scalar |
|
|
positive duration or magnitude |
|
|
non-negative count |
|
|
label, token, state |
|
|
vector |
|
|
tuple |
|
nested composites when fields are themselves structured |
dictionary or named record |
|
schemas from |
variable-length sequence |
|
HMMs when latent state drives the sequence |
cluster or regime |
|
|
state path through time |
|
|
The family can be nested. A mixture of records with a sequence field is still one estimator tree.
Detailed Catalogs¶
This page is the overview. Use the detailed catalogs when you need the full family map:
Univariate Families for scalar continuous and discrete distributions.
Structured Statistical Families for combinators, vectors, matrices, directional families, sets, rankings, trees, graphs, and structured supports.
Latent, Bayesian, And Nonparametric Families for mixtures, HMM variants, topic models, grammar families, Bayesian priors, posteriors, and nonparametric families.
Basic Usage¶
from mixle.inference import optimize
from mixle.stats import GaussianDistribution, GaussianEstimator
dist = GaussianDistribution(mu=0.0, sigma2=1.0)
print(dist.log_density(0.25))
fitted = optimize([0.1, -0.2, 0.3], GaussianEstimator(), out=None)
print(fitted.mu, fitted.sigma2)
Distribution classes represent fitted models. Estimator classes represent what to fit.
Combinators¶
Combinators build distributions over structured observations.
CompositeDistribution/CompositeEstimatorTuple-shaped observations, matched position by position.
RecordDistribution/RecordEstimatorNamed fields, usually dictionaries or schema-backed records.
SequenceDistribution/SequenceEstimatorVariable-length sequences with an element distribution and optional length model.
OptionalDistributionValues that may be missing.
TransformDistributionChange of variables or deterministic transformations.
TruncatedDistribution, CensoredDistribution, HurdleDistribution,
ZeroInflatedDistribution
Support modifications for common data-generation effects.
Example:
from mixle.inference import optimize
from mixle.stats import CategoricalEstimator, CompositeEstimator, GammaEstimator
rows = [("click", 0.4), ("view", 1.2), ("click", 0.7)]
est = CompositeEstimator((CategoricalEstimator(), GammaEstimator()))
model = optimize(rows, est, out=None)
Latent Models¶
Latent families add hidden variables over otherwise ordinary observations.
mixtures and Gaussian mixtures;
sparse, heterogeneous, hierarchical, joint, and semi-supervised mixtures;
LDA, LLDA, PLSI variants, and topic models;
probabilistic PCA;
hidden association models;
PCFGs and grammar-related models;
Indian buffet process and nonparametric latent models;
HMMs, segmental HMMs, lookback HMMs, tree HMMs, scheduled HMMs, structured HMMs, and quantized HMMs.
Latent models usually fit by EM or a variational route. Use HMMs and Latent Structure for the HMM and structured-state workflow.
Univariate Families¶
Continuous families include Gaussian, Student-t, Logistic, LogGaussian, Laplace, Uniform, Exponential, Gamma, InverseGamma, InverseGaussian, HalfNormal, Gumbel, Beta, Weibull, Rayleigh, Pareto, generalized extreme-value families, Tweedie, Nakagami, Rician, and skew-normal variants.
Discrete families include Categorical, IntegerCategorical, Bernoulli, Binomial, BetaBinomial, Poisson, Geometric, NegativeBinomial, LogSeries, Skellam, and PointMass.
Multivariate, Matrix, and Directional Families¶
Vector families include MultivariateGaussian, DiagonalGaussian, MultivariateStudentT, GaussianCopula, Composition, CategoricalMultinomial, IntegerMultinomial, and DirichletMultinomial.
Matrix-valued families include Wishart, InverseWishart, MatrixNormal, and LKJ.
Directional families include VonMises, VonMisesFisher, Watson, Kent, Bingham, WrappedCauchy, WrappedNormal, and ProjectedNormal.
Structured Supports¶
Some families score and enumerate structured objects rather than simple vectors:
Markov chains and Markov transforms;
Bernoulli sets and integer set distributions;
rankings and permutations such as Mallows, Plackett-Luce, Bradley-Terry, Thurstone, Spearman, Ewens, matching, and paired comparison models;
trees and graphs such as Chow-Liu trees, spanning trees, Erdos-Renyi graphs, stochastic block models, random dot-product graphs, knowledge graphs, and graph grammars;
point processes such as Hawkes, multivariate Hawkes, power-law Hawkes, inhomogeneous Poisson, renewal, birth-death, and Chinese restaurant processes.
Use Enumeration and Ranking when the question is about top-k, rank, or support traversal.
Bayesian Families¶
mixle.stats.bayes provides conjugate and nonparametric families including:
Dirichlet and symmetric/dictionary Dirichlet;
NormalGamma, NormalWishart, and MultivariateNormalGamma;
Dirichlet-process mixtures and hierarchical DPMs;
Pitman-Yor process families.
Many estimators accept prior=. With conjugate priors, the same fit surface
can produce posterior-bearing models.
Generated Kernels and Capabilities¶
Many distributions expose metadata used by generated kernels, backend scoring, conjugate updates, enumeration, or symbolic export. Inspect behavior through the capability layer:
import mixle
print(mixle.describe(model))
print(mixle.capabilities(model))
Do not assume a family supports every operation because it supports
log_density. Capabilities are the public way to ask.