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'
|
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.
Gaussian
¶
Gaussian distribution. V(mu) = 1.
Gamma
¶
Gamma distribution. V(mu) = mu^2.
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.
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 |
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.