Distribution Parameter Reference¶
This guide documents the parameter naming conventions used across all distribution classes in quActuary.
Important
As of version 0.2.0, all distributions use loc
for location parameters (not location
or threshold
).
This was standardized to ensure consistency across the API.
Overview¶
quActuary uses consistent parameter naming conventions across its distribution classes:
Location parameter: Always use
loc
Scale parameter: Always use
scale
Shape parameters: Vary by distribution type but follow statistical conventions
Parameter Naming by Distribution Type¶
Frequency Distributions¶
Distribution |
Parameters |
---|---|
Binomial |
|
DeterministicFrequency |
|
DiscreteUniformFrequency |
|
EmpiricalFrequency |
|
Geometric |
|
Hypergeometric |
|
MixedFrequency |
|
NegativeBinomial |
|
PanjerABk |
|
Poisson |
|
TriangularFrequency |
|
Severity Distributions¶
Distribution |
Parameters |
---|---|
Beta |
|
ChiSquared |
|
ConstantSeverity |
|
ContinuousUniformSeverity |
|
DiscretizedSeverity |
|
EmpiricalSeverity |
|
Exponential |
|
Gamma |
|
InverseGamma |
|
InverseGaussian |
|
InverseWeibull |
|
Lognormal |
|
MixedSeverity |
|
Pareto |
|
StudentsT |
|
TriangularSeverity |
|
Weibull |
|
Compound Distributions¶
All compound distributions use the same parameter structure:
frequency
: A frequency distribution instanceseverity
: A severity distribution instance
Mixed Poisson Distributions¶
Distribution |
Parameters |
---|---|
PoissonGammaMixture |
|
PoissonInverseGaussianMixture |
|
HierarchicalPoissonMixture |
|
TimeVaryingPoissonMixture |
|
Zero-Inflated Distributions¶
All zero-inflated distributions use:
frequency
: Base frequency distributionseverity
: Base severity distributionzero_prob
: Probability of zero claims
Migration Guide¶
If you’re updating from an older version, here are the key parameter changes:
# Old (pre-0.2.0)
lognormal = Lognormal(shape=1.5, location=0.0, scale=1.0) # WRONG
pareto = Pareto(b=2.0, threshold=1000.0, scale=1.0) # WRONG
# New (0.2.0+)
lognormal = Lognormal(shape=1.5, loc=0.0, scale=1.0) # CORRECT
pareto = Pareto(b=2.0, loc=1000.0, scale=1.0) # CORRECT
Best Practices¶
Always use keyword arguments when creating distributions to avoid confusion:
# Good dist = Gamma(shape=2.0, loc=0.0, scale=1.0) # Avoid dist = Gamma(2.0, 0.0, 1.0)
Check parameter bounds - some distributions have restrictions:
# Pareto requires loc > 0 (minimum value) pareto = Pareto(b=2.0, loc=1000.0, scale=1.0) # loc must be positive # Beta requires 0 <= x <= 1 after transformation beta = Beta(a=2.0, b=3.0, loc=0.0, scale=1.0)
Use consistent units across frequency and severity when creating compounds:
freq = Poisson(mu=10) # 10 claims per period sev = Lognormal(shape=1.0, loc=0.0, scale=1000) # severity in dollars compound = CompoundPoisson(frequency=freq, severity=sev)
Examples¶
Creating Common Distributions¶
from quactuary.distributions import (
Poisson, NegativeBinomial,
Lognormal, Pareto, Gamma,
CompoundPoisson
)
# Frequency distributions
poisson_freq = Poisson(mu=5.0)
negbin_freq = NegativeBinomial(r=10, p=0.3)
# Severity distributions
lognormal_sev = Lognormal(shape=1.5, loc=0.0, scale=1000.0)
pareto_sev = Pareto(b=2.0, loc=1000.0, scale=1.0)
gamma_sev = Gamma(shape=2.0, loc=0.0, scale=500.0)
# Compound distribution
compound = CompoundPoisson(
frequency=poisson_freq,
severity=lognormal_sev
)
Working with Zero-Inflated Models¶
from quactuary.distributions import ZeroInflatedCompound
# 20% chance of zero claims
zi_compound = ZeroInflatedCompound(
frequency=Poisson(mu=5.0),
severity=Gamma(shape=2.0, scale=1000.0),
zero_prob=0.2
)
See Also¶
quactuary.distributions package - Full API documentation
Testing Best Practices - Testing with stochastic distributions
Optimization Best Practices - Best practices for using distributions