Skip to content

Families

Family objects define the response distribution used during fitting, scoring, and inference. Convenience constructors in superglm.families are a shorthand for building those family objects.

Factories

families

Convenience constructors for distribution families.

Usage::

from superglm import families

model = SuperGLM(family=families.poisson(), ...)
model = SuperGLM(family=families.tweedie(p=1.5), ...)
model = SuperGLM(family=families.nb2(theta=1.0), ...)

Simple (parameter-free) families can also be specified as strings::

model = SuperGLM(family="poisson", ...)

poisson()

Create a Poisson family object.

gaussian()

Create a Gaussian family object.

gamma()

Create a Gamma family object.

binomial()

Create a Binomial family object.

nb2(theta='auto')

Create a negative binomial (NB2) family object.

Parameters:

Name Type Description Default
theta float or auto

Overdispersion parameter. "auto" estimates theta via profile likelihood during fit().

'auto'

tweedie(p)

Create a Tweedie family object.

Parameters:

Name Type Description Default
p float

Power parameter, must be in (1, 2). p → 1 approaches Poisson, p → 2 approaches Gamma.

required

Family Classes

Known-scale families keep phi=1. Negative binomial overdispersion is controlled by theta, not by a meaningful fitted phi.

Poisson

Poisson distribution. V(mu) = mu.

variance(mu)

V(μ) = μ.

variance_derivative(mu)

V'(μ) = 1.

variance_second_derivative(mu)

V''(μ) = 0. Wood (2011) Appendix D.

deviance_unit(y, mu)

Unit deviance: 2[y log(y/μ) - (y - μ)].

log_likelihood(y, mu, weights, phi=1.0)

Poisson log-likelihood (φ fixed at 1).

Gaussian

Gaussian distribution. V(mu) = 1.

variance(mu)

V(μ) = 1.

variance_derivative(mu)

V'(μ) = 0.

variance_second_derivative(mu)

V''(μ) = 0. Wood (2011) Appendix D.

deviance_unit(y, mu)

Gaussian unit deviance: (y - μ)^2.

log_likelihood(y, mu, weights, phi=1.0)

Gaussian log-likelihood with dispersion φ = σ².

Gamma

Gamma distribution. V(mu) = mu^2.

variance(mu)

V(μ) = μ².

variance_derivative(mu)

V'(μ) = 2μ.

variance_second_derivative(mu)

V''(μ) = 2. Wood (2011) Appendix D.

deviance_unit(y, mu)

Unit deviance: 2[-log(y/μ) + (y - μ)/μ].

log_likelihood(y, mu, weights, phi=1.0)

Gamma log-likelihood. Shape k = 1/φ.

Binomial

Binomial (Bernoulli) distribution. V(mu) = mu * (1 - mu).

For use with binary y in {0, 1}. This is a Bernoulli GLM (n_trials=1); sample_weight is case/frequency weight, not binomial trials.

variance(mu)

V(μ) = μ(1 − μ).

variance_derivative(mu)

V'(μ) = 1 − 2μ.

variance_second_derivative(mu)

V''(μ) = -2. Wood (2011) Appendix D.

deviance_unit(y, mu)

Bernoulli unit deviance: 2[y log(y/μ) + (1-y) log((1-y)/(1-μ))].

log_likelihood(y, mu, weights, phi=1.0)

Bernoulli log-likelihood.

NegativeBinomial

Negative binomial (NB2) family with overdispersion controlled by theta.

Parameters:

Name Type Description Default
theta float or 'auto'

Overdispersion parameter (>0). Larger theta = less overdispersion. As theta -> inf, approaches Poisson. Pass "auto" to estimate theta via profile likelihood during fit().

required

variance(mu)

V(μ) = μ + μ²/θ.

variance_derivative(mu)

V'(μ) = 1 + 2μ/θ.

variance_second_derivative(mu)

V''(μ) = 2/θ. Wood (2011) Appendix D.

deviance_unit(y, mu)

NB2 unit deviance.

log_likelihood(y, mu, weights, phi=1.0)

NB2 log-likelihood: Σ w[log Γ(y+θ) - log Γ(θ) - log Γ(y+1) + θ log(θ/(μ+θ)) + y log(μ/(μ+θ))].

Tweedie

Tweedie distribution. V(mu) = mu^p, with p in (1, 2).

Parameters:

Name Type Description Default
p float

Power parameter. Must be in (1, 2). p → 1 approaches Poisson, p → 2 approaches Gamma.

required

variance(mu)

V(μ) = μᵖ.

variance_derivative(mu)

V'(μ) = p·μᵖ⁻¹.

variance_second_derivative(mu)

V''(μ) = p(p-1)·μᵖ⁻². Wood (2011) Appendix D.

deviance_unit(y, mu)

Tweedie unit deviance evaluated without close-mean cancellation.

log_likelihood(y, mu, weights, phi=1.0)

Tweedie log-likelihood via exact Wright-Bessel evaluation.