QuantileMatchingFactory¶
- class QuantileMatchingFactory(*args)¶
- Estimation by matching quantiles. - Implements generic estimation by matching quantiles. - Parameters:
- distributionDistribution
- The distribution defining the parametric model to be adjusted to data. Its parameters define the starting point of the algorithm. 
- probabilitiesincreasing sequence of float in [0, 1]
- The probabilities - corresponding to the quantiles. At most - values can be given. It is possible to provide less than - values if - setKnownParameter()is used
- boundsInterval, optional
- Parameter bounds. The default bounds is an empty interval, which implies that the optimization problem is unbounded. 
 
- distribution
 - Methods - build(*args)- Build the distribution. - buildEstimator(*args)- Build the distribution and the parameter distribution. - buildFromQuantiles(quantiles)- Build from given quantiles. - Accessor to the bootstrap size. - Accessor to the object's name. - Accessor to the known parameters indices. - Accessor to the known parameters values. - getName()- Accessor to the object's name. - Accessor to the solver. - Accessor to the optimization bounds. - Accessor to the probabilities. - hasName()- Test if the object is named. - setBootstrapSize(bootstrapSize)- Accessor to the bootstrap size. - setKnownParameter(*args)- Accessor to the known parameters. - setName(name)- Accessor to the object's name. - setOptimizationAlgorithm(solver)- Accessor to the solver. - setOptimizationBounds(optimizationBounds)- Accessor to the optimization bounds. - setProbabilities(probabilities)- Accessor to the fractiles. - See also - Notes - We consider a parametric model whose cumulative distribution function - is parametrized by - . - Given a set of probabilities - and a set of scalars - , we want to determine - such that - be the quantile of order - of - : - This is useful when some expert is able to specify such quantiles. - When the quantiles - are not known, they can be deduced from a given sample. We denote - the empirical quantiles obtained. In that case, we want to determine - such that - be the quantile of order - of - : - The optimal - is searched as the solution of the optimization problem: - Examples - Fit a distribution with 2 parameters. Hence, two quantiles are used to estimate the parameters. Here, both quantiles are estimated from a given sample. - >>> import openturns as ot >>> ot.RandomGenerator.SetSeed(0) >>> sample = ot.Normal(0.9, 1.7).getSample(10) >>> factory = ot.QuantileMatchingFactory(ot.Normal(), [0.01, 0.99]) >>> inf_distribution = factory.build(sample) >>> print(inf_distribution) Normal(mu = 0.267484, sigma = 1.32218) >>> print(factory.getProbabilities()) [0.01,0.99] - We see that the default value of the - parameter is so that we consider the 1% and 99% percentile ranks. - Use 5% and 95% percentile ranks: - >>> probabilities = [0.05, 0.95] >>> factory = ot.QuantileMatchingFactory(ot.Normal(), probabilities) >>> inf_distribution = factory.build(sample) - We can also make the optimization problem easier by specifying bounds to the parameters: - >>> bounds = ot.Interval([-0.1, 0.0], [1.0, 2.0]) >>> factory = ot.QuantileMatchingFactory(ot.Normal(), probabilities, bounds) >>> inf_distribution = factory.build(sample) - An example with 4 parameters: - >>> # A distribution with 4 parameters >>> distribution = ot.Beta(2.0, 3.0, 4.0, 5.0) >>> sample = distribution.getSample(10) >>> distribution = ot.Beta() >>> factory = ot.QuantileMatchingFactory(distribution, [0.01, 1/3, 2/3, 0.99]) >>> inf_distribution = factory.build(sample) - __init__(*args)¶
 - build(*args)¶
- Build the distribution. - Available usages: - build() - build(sample) - build(param) - Parameters:
- sample2-d sequence of float
- Data. 
- paramsequence of float
- The parameters of the distribution. 
 
- Returns:
- distDistribution
- The estimated distribution. - In the first usage, the default native distribution is built. 
 
- dist
 
 - buildEstimator(*args)¶
- Build the distribution and the parameter distribution. - Parameters:
- sample2-d sequence of float
- Data. 
- parametersDistributionParameters
- Optional, the parametrization. 
 
- Returns:
- resDistDistributionFactoryResult
- The results. 
 
- resDist
 - Notes - According to the way the native parameters of the distribution are estimated, the parameters distribution differs: - Moments method: the asymptotic parameters distribution is normal and estimated by Bootstrap on the initial data; 
- Maximum likelihood method with a regular model: the asymptotic parameters distribution is normal and its covariance matrix is the inverse Fisher information matrix; 
- Other methods: the asymptotic parameters distribution is estimated by Bootstrap on the initial data and kernel fitting (see - KernelSmoothing).
 - If another set of parameters is specified, the native parameters distribution is first estimated and the new distribution is determined from it: - if the native parameters distribution is normal and the transformation regular at the estimated parameters values: the asymptotic parameters distribution is normal and its covariance matrix determined from the inverse Fisher information matrix of the native parameters and the transformation; 
- in the other cases, the asymptotic parameters distribution is estimated by Bootstrap on the initial data and kernel fitting. 
 
 - buildFromQuantiles(quantiles)¶
- Build from given quantiles. - Parameters:
- quantilesincreasing sequence of float
- The quantiles of the distribution, matching the probabilities provided to the constructor. 
 
- Returns:
- distDistribution
- The estimated distribution. 
 
- dist
 
 - getBootstrapSize()¶
- Accessor to the bootstrap size. - Returns:
- sizeint
- Size of the bootstrap. 
 
 
 - getClassName()¶
- Accessor to the object’s name. - Returns:
- class_namestr
- The object class name (object.__class__.__name__). 
 
 
 - getKnownParameterIndices()¶
- Accessor to the known parameters indices. - Returns:
- indicesIndices
- Indices of the known parameters. 
 
- indices
 
 - getKnownParameterValues()¶
- Accessor to the known parameters values. - Returns:
- valuesPoint
- Values of known parameters. 
 
- values
 
 - getName()¶
- Accessor to the object’s name. - Returns:
- namestr
- The name of the object. 
 
 
 - getOptimizationAlgorithm()¶
- Accessor to the solver. - Returns:
- solverOptimizationAlgorithm
- The solver used for numerical optimization of the moments. 
 
- solver
 
 - getOptimizationBounds()¶
- Accessor to the optimization bounds. - Returns:
- boundsInterval
- The bounds used for numerical optimization of the likelihood. 
 
- bounds
 
 - hasName()¶
- Test if the object is named. - Returns:
- hasNamebool
- True if the name is not empty. 
 
 
 - setBootstrapSize(bootstrapSize)¶
- Accessor to the bootstrap size. - Parameters:
- sizeint
- The size of the bootstrap. 
 
 
 - setKnownParameter(*args)¶
- Accessor to the known parameters. - Parameters:
- positionssequence of int
- Indices of known parameters. 
- valuessequence of float
- Values of known parameters. 
 
 - Examples - When a subset of the parameter vector is known, the other parameters only have to be estimated from data. - In the following example, we consider a sample and want to fit a - Betadistribution. We assume that the- and - parameters are known beforehand. In this case, we set the third parameter (at index 2) to -1 and the fourth parameter (at index 3) to 1. - >>> import openturns as ot >>> ot.RandomGenerator.SetSeed(0) >>> distribution = ot.Beta(2.3, 2.2, -1.0, 1.0) >>> sample = distribution.getSample(10) >>> factory = ot.BetaFactory() >>> # set (a,b) out of (r, t, a, b) >>> factory.setKnownParameter([2, 3], [-1.0, 1.0]) >>> inf_distribution = factory.build(sample) 
 - setName(name)¶
- Accessor to the object’s name. - Parameters:
- namestr
- The name of the object. 
 
 
 - setOptimizationAlgorithm(solver)¶
- Accessor to the solver. - Parameters:
- solverOptimizationAlgorithm
- The solver used for numerical optimization of the moments. 
 
- solver
 
 - setOptimizationBounds(optimizationBounds)¶
- Accessor to the optimization bounds. - Parameters:
- boundsInterval
- The bounds used for numerical optimization of the likelihood. 
 
- bounds
 
 - setProbabilities(probabilities)¶
- Accessor to the fractiles. - Parameters:
- probabilitiessequence of float
- The probabilities - . 
 
 
 
 OpenTURNS
      OpenTURNS