pyuncertainnumber.characterisation.stats¶
Attributes¶
Functions¶
|
parametric estimator to fit a distribution from data |
|
a decorator to transform a sps.dist into Distribution objects |
|
a first attempt to Maximum likelihood estimation for Bernoulli distribution which accepts both precise and imprecise data; |
|
|
|
from given moments, return a beta distribution |
|
|
|
|
|
|
|
single parameter pattern exponential distribution constructor |
|
from given moments, return an exponential distribution |
|
|
|
|
|
from given moments, return a gamma distribution |
|
|
|
|
|
|
|
|
|
from given moments, return a gumbel distribution |
|
|
|
Method of Moments estimator for Lognormal(μ, σ^2). |
|
Method of Moments estimator for Lognormal(μ, σ^2). |
|
|
|
|
|
|
|
|
|
from given moments, return a normal distribution |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
single parameter pattern rayleigh distribution constructor |
|
from given moments, return a rayleigh distribution |
|
|
|
|
|
# TODO to check |
|
|
a standalone caller for exponential distribution with interval data (not in use yet) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
parse the moments input to a standard form for dist construction |
Module Contents¶
- pyuncertainnumber.characterisation.stats.fit(method: str, family: str, data: numpy.ndarray) pyuncertainnumber.UncertainNumber¶
parametric estimator to fit a distribution from data
- Parameters:
method (str) – method of fitting, e.g., {‘mle’ or ‘mom’} ‘entropy’, ‘pert’, ‘fermi’, ‘bayesian’
family (str) – distribution family to be fitted
data (np.ndarray) – data to be fitted
- Returns:
UncertainNumber object
Example
>>> # precise data >>> pun.fit('mle', 'norm', np.random.normal(0, 1, 100)) >>> # imprecise data >>> precise_sample = sps.expon(scale=1/0.4).rvs(15) >>> imprecise_data = pba.I(lo = precise_sample - 1.4, hi=precise_sample + 1.4) >>> pun.fit('mom', family='exponential', data=imprecise_data)
See also
pyuncertainnumber.pba.KS_bounds(): a non-parametric charactearisation method using Kolmogorov-Smirnov bounds
- pyuncertainnumber.characterisation.stats.makedist(shape: str)¶
a decorator to transform a sps.dist into Distribution objects
- pyuncertainnumber.characterisation.stats.MMbernoulli(x)¶
a first attempt to Maximum likelihood estimation for Bernoulli distribution which accepts both precise and imprecise data;
#! the example of singleparam pattern #! to change, add the ‘interval_measurement’ decorator .. note:
the attempt is successful per se, but not accommodating to the top-level calling signature yet. - precise data returns precise distrubution - imprecise data need to be in Interval type to return a pbox - interval data can return either a precise distribution or a pbox
- pyuncertainnumber.characterisation.stats.MMbeta(x: numpy.ndarray)¶
- pyuncertainnumber.characterisation.stats.mm_beta(mean, std)¶
from given moments, return a beta distribution
- pyuncertainnumber.characterisation.stats.MMbetabinomial(n: int, x)¶
- pyuncertainnumber.characterisation.stats.MMbinomial(x, n: int)¶
- Parameters:
n (-) – number of trials
- pyuncertainnumber.characterisation.stats.MMchisquared(x)¶
- pyuncertainnumber.characterisation.stats.MMexponential(x)¶
- pyuncertainnumber.characterisation.stats.universal_exponential(mean)¶
single parameter pattern exponential distribution constructor
Note
mean can be a precise number or an interval; Exponential is parameterised by scale, which is the inverse of the rate parameter (lambda).
- pyuncertainnumber.characterisation.stats.mm_exponential(mean)¶
from given moments, return an exponential distribution
Note
This constructor is parameterised by scale, which is the inverse of the rate parameter (lambda).
- pyuncertainnumber.characterisation.stats.MMF(x)¶
- pyuncertainnumber.characterisation.stats.MMgamma(x)¶
- pyuncertainnumber.characterisation.stats.mm_gamma(mean, std=None)¶
from given moments, return a gamma distribution
- pyuncertainnumber.characterisation.stats.MMgeometric(x)¶
- pyuncertainnumber.characterisation.stats.MMgeometric(x)¶
- pyuncertainnumber.characterisation.stats.MMpascal(x)¶
- pyuncertainnumber.characterisation.stats.MMgumbel(x)¶
- pyuncertainnumber.characterisation.stats.mm_gumbel(mean, std)¶
from given moments, return a gumbel distribution
- pyuncertainnumber.characterisation.stats.MMextremevalue(x)¶
- pyuncertainnumber.characterisation.stats.MMlognormal(x)¶
- pyuncertainnumber.characterisation.stats.lognormal_mom_estimator(data=None, sample_mean=None, sample_variance=None)¶
Method of Moments estimator for Lognormal(μ, σ^2).
- Parameters:
data (array-like, optional) – Raw data sample. If provided, mean and variance are computed from it.
sample_mean (float, optional) – Precomputed sample mean (ignored if data is provided).
sample_variance (float, optional) – Precomputed sample variance (ignored if data is provided).
- Returns:
mu_hat (float) – Estimated mean of the underlying normal distribution.
sigma2_hat (float) – Estimated variance of the underlying normal distribution.
- pyuncertainnumber.characterisation.stats.mm_lognormal(mean: float, std: float)¶
Method of Moments estimator for Lognormal(μ, σ^2).
- args
- mean (float):
Sample mean of the data (m1).
- std (float):
Sample standard deviation of the data (s).
- returns
- mu_hat (float):
Estimated mean of the underlying normal distribution.
- sigma2_hat (float):
Estimated variance of the underlying normal distribution.
- pyuncertainnumber.characterisation.stats.MMlaplace(x)¶
- pyuncertainnumber.characterisation.stats.MMdoubleexponential(x)¶
- pyuncertainnumber.characterisation.stats.MMlogistic(x)¶
- pyuncertainnumber.characterisation.stats.MMloguniform(x)¶
- pyuncertainnumber.characterisation.stats.MMnormal(x)¶
- pyuncertainnumber.characterisation.stats.mm_normal(mean, std)¶
from given moments, return a normal distribution
- pyuncertainnumber.characterisation.stats.MMgaussian(x)¶
- pyuncertainnumber.characterisation.stats.MMpareto(x)¶
- pyuncertainnumber.characterisation.stats.MMpoisson(x)¶
- pyuncertainnumber.characterisation.stats.MMpowerfunction(x)¶
- pyuncertainnumber.characterisation.stats.MMt(x)¶
- pyuncertainnumber.characterisation.stats.MMstudent(x)¶
- pyuncertainnumber.characterisation.stats.MMuniform(x)¶
- pyuncertainnumber.characterisation.stats.MMrectangular(x)¶
- pyuncertainnumber.characterisation.stats.MMtriangular(x, iters=100, dives=10)¶
- pyuncertainnumber.characterisation.stats.MMrayleigh(x)¶
- pyuncertainnumber.characterisation.stats.universal_rayleigh(mean)¶
single parameter pattern rayleigh distribution constructor
Note
mean can be a precise number or an interval;
- pyuncertainnumber.characterisation.stats.mm_rayleigh(mean)¶
from given moments, return a rayleigh distribution
- pyuncertainnumber.characterisation.stats.named_mom_methods¶
- pyuncertainnumber.characterisation.stats.MLbernoulli(x)¶
- pyuncertainnumber.characterisation.stats.MLbeta(x)¶
- pyuncertainnumber.characterisation.stats.MLbetabinomial(x)¶
- pyuncertainnumber.characterisation.stats.MLbinomial(x)¶
# TODO to check #! no fitting func for scipy discrete distributions
- pyuncertainnumber.characterisation.stats.MLchisquared(x)¶
- pyuncertainnumber.characterisation.stats.MLexponential(x)¶
a standalone caller for exponential distribution with interval data (not in use yet)
- pyuncertainnumber.characterisation.stats.MLF(x)¶
- pyuncertainnumber.characterisation.stats.MLgamma(x)¶
- pyuncertainnumber.characterisation.stats.MLgammaexponential(x)¶
- pyuncertainnumber.characterisation.stats.MLgeometric(x)¶
- pyuncertainnumber.characterisation.stats.MLgumbel(x)¶
- pyuncertainnumber.characterisation.stats.MLlaplace(x)¶
- pyuncertainnumber.characterisation.stats.MLlogistic(x)¶
- pyuncertainnumber.characterisation.stats.MLlognormal(x)¶
- pyuncertainnumber.characterisation.stats.MLloguniform(x)¶
- pyuncertainnumber.characterisation.stats.MLnegativebinomial(x)¶
- pyuncertainnumber.characterisation.stats.MLnormal(x)¶
- pyuncertainnumber.characterisation.stats.MLpareto(x)¶
- pyuncertainnumber.characterisation.stats.MLpoisson(x)¶
- pyuncertainnumber.characterisation.stats.MLpowerfunction(x)¶
- pyuncertainnumber.characterisation.stats.MLrayleigh(x)¶
- pyuncertainnumber.characterisation.stats.MLstudent(x)¶
- pyuncertainnumber.characterisation.stats.MLtriangular(x)¶
- pyuncertainnumber.characterisation.stats.MLuniform(x)¶
- pyuncertainnumber.characterisation.stats.named_mle_methods¶
- pyuncertainnumber.characterisation.stats.sMLbernoulli(x)¶
- pyuncertainnumber.characterisation.stats.sMLnormal(x)¶
- pyuncertainnumber.characterisation.stats.sMLgaussian(x)¶
- pyuncertainnumber.characterisation.stats.sMLexponential(x)¶
- pyuncertainnumber.characterisation.stats.sMLpoisson(x)¶
- pyuncertainnumber.characterisation.stats.sMLgeometric(x)¶
- pyuncertainnumber.characterisation.stats.sMLgumbel(x)¶
- pyuncertainnumber.characterisation.stats.sMLpascal(x)¶
- pyuncertainnumber.characterisation.stats.sMLuniform(x)¶
- pyuncertainnumber.characterisation.stats.sMLrectangular(x)¶
- pyuncertainnumber.characterisation.stats.sMLpareto(x)¶
- pyuncertainnumber.characterisation.stats.sMLlaplace(x)¶
- pyuncertainnumber.characterisation.stats.sMLdoubleexponential(x)¶
- pyuncertainnumber.characterisation.stats.sMLlognormal2(x)¶
- pyuncertainnumber.characterisation.stats.sMLlognormal(x)¶
- pyuncertainnumber.characterisation.stats.sMLloguniform(x)¶
- pyuncertainnumber.characterisation.stats.sMLweibull(x, shapeinterval=None)¶
- pyuncertainnumber.characterisation.stats.sMLgamma(data)¶
- pyuncertainnumber.characterisation.stats.named_smle_methods¶
- pyuncertainnumber.characterisation.stats.MEminmax(min, max)¶
- pyuncertainnumber.characterisation.stats.MEminmaxmean(min, max, mean)¶
- pyuncertainnumber.characterisation.stats.MEmeansd(mean, sd)¶
- pyuncertainnumber.characterisation.stats.MEminmean(min, mean)¶
- pyuncertainnumber.characterisation.stats.MEdiscretemean(x, mu, steps=10, iterations=50)¶
- pyuncertainnumber.characterisation.stats.MEquantiles(v, p)¶
- pyuncertainnumber.characterisation.stats.MEdiscreteminmax(min, max)¶
- pyuncertainnumber.characterisation.stats.MEmeanvar(mean, var)¶
- pyuncertainnumber.characterisation.stats.MEminmaxmeansd(min, max, mean, sd)¶
- pyuncertainnumber.characterisation.stats.MEmmms(min, max, mean, sd)¶
- pyuncertainnumber.characterisation.stats.MEminmaxmeanvar(min, max, mean, var)¶
- pyuncertainnumber.characterisation.stats.antweiler(x)¶
- pyuncertainnumber.characterisation.stats.betapert(min, max, mode)¶
- pyuncertainnumber.characterisation.stats.mnr(n, many=10000)¶
- pyuncertainnumber.characterisation.stats.fermilnorm(x1, x2, n=None, pr=0.9)¶
- pyuncertainnumber.characterisation.stats.ferminorm(x1, x2, n=None, pr=0.9)¶
- pyuncertainnumber.characterisation.stats.approxksD95(n)¶
- pyuncertainnumber.characterisation.stats.ks(x, conf=0.95, min=None, max=None)¶
- pyuncertainnumber.characterisation.stats.ferminormconfband(x1, x2, n, pr=0.9, conf=0.95, bOt=0.001, tOp=0.999)¶
- pyuncertainnumber.characterisation.stats.fermilnormconfband(x1, x2, n, pr=0.9, conf=0.95, bOt=0.001, tOp=0.999)¶
- pyuncertainnumber.characterisation.stats.parse_moments(family: str, mean: numbers.Number | pyuncertainnumber.pba.intervals.Interval, std: numbers.Number = None, var: numbers.Number = None, **kwargs)¶
parse the moments input to a standard form for dist construction
- Parameters:
family (str) – distribution family
mean (Number | Interval) – mean value, which could be either precise value or an Interval object. Python list is not supported.
std (Number) – standard deviation
var (Number) – variance
Example
>>> parse_moments(family='normal', mean=3., std=1.)
Note
Only accept up to 2nd moment for now. Interval mean is supported due to single parameter construction. Combined mean and std intervals are not supported as they are deemed NP hard question.