#! /usr/bin/env python from __future__ import print_function import openturns as ot ot.PlatformInfo.SetNumericalPrecision(3) distribution = ot.Beta(2.3, 2.2, -1.0, 1.0) print('distribution=', distribution) sample = distribution.getSample(1000) factory = ot.MaximumLikelihoodFactory(ot.Beta()) inf_distribution = factory.build(sample) print('estimated distribution=', inf_distribution) # set (a,b) out of (r, t, a, b) factory.setKnownParameter([-1.0, 1.0], [2, 3]) inf_distribution = factory.build(sample) print('estimated distribution with bounds=', inf_distribution) factory = ot.MaximumLikelihoodFactory(ot.Exponential()) factory.setKnownParameter([0.1], [1]) print(factory.build()) print(factory.build([3, 0]))
bounds = ot.Interval(lowerBound, upperBound, finiteLowerBound, finiteUpperBound) # %% # Create the starting point of the research: # # - for :math:`\mu` : the first point, # - for :math:`\sigma` : a value evaluated from the two first points. mu0 = sample[0][0] sigma0 = m.sqrt((sample[1][0] - sample[0][0]) * (sample[1][0] - sample[0][0])) startingPoint = [mu0, sigma0] # %% # Create the estimator from a parametric PDF. pdf = ot.Normal() factory = ot.MaximumLikelihoodFactory(pdf) factory.setOptimizationBounds(bounds) # %% # Set the starting point via the solver. solver = factory.getOptimizationAlgorithm() solver.setStartingPoint(startingPoint) factory.setOptimizationAlgorithm(solver) # %% # Estimate the parametric model. distribution = factory.build(sample) str(distribution) # %% # Retrieve the estimated parameters.
#! /usr/bin/env python from __future__ import print_function import openturns as ot ot.PlatformInfo.SetNumericalPrecision(3) distribution = ot.Normal() sample = distribution.getSample(1000) factory = ot.MaximumLikelihoodFactory(distribution) distribution = factory.build(sample) print(distribution)
#! /usr/bin/env python from __future__ import print_function import openturns as ot ot.PlatformInfo.SetNumericalPrecision(3) inner_factory = ot.NormalFactory() sample = inner_factory.build().getSample(1000) factory = ot.MaximumLikelihoodFactory(inner_factory) distribution = factory.build(sample) print(distribution)
#! /usr/bin/env python from __future__ import print_function import openturns as ot ot.PlatformInfo.SetNumericalPrecision(3) distribution = ot.Beta(2.3, 2.2, -1.0, 1.0) print('distribution=', distribution) sample = distribution.getSample(1000) factory = ot.MaximumLikelihoodFactory(ot.Beta()) inf_distribution = factory.build(sample) print('estimated distribution=', inf_distribution) # set (a,b) out of (r, t, a, b) factory.setKnownParameter([-1.0, 1.0], [2, 3]) inf_distribution = factory.build(sample) print('estimated distribution with bounds=', inf_distribution)