import openturns as ot from matplotlib import pyplot as plt from openturns.viewer import View ot.RandomGenerator.SetSeed(0) factory = ot.BetaFactory() ref = factory.build() dimension = ref.getDimension() if dimension <= 2: sample = ref.getSample(50) distribution = factory.build(sample) if dimension == 1: distribution.setDescription(['$t$']) pdf_graph = distribution.drawPDF(256) cloud = ot.Cloud(sample, ot.NumericalSample(sample.getSize(), 1)) cloud.setColor('blue') cloud.setPointStyle('fcircle') pdf_graph.add(cloud) fig = plt.figure(figsize=(10, 4)) plt.suptitle(str(distribution)) pdf_axis = fig.add_subplot(111) View(pdf_graph, figure=fig, axes=[pdf_axis], add_legend=False) else: sample = ref.getSample(500) distribution.setDescription(['$t_0$', '$t_1$']) pdf_graph = distribution.drawPDF([256] * 2) cloud = ot.Cloud(sample) cloud.setColor('red') cloud.setPointStyle('fcircle') pdf_graph.add(cloud) fig = plt.figure(figsize=(10, 4)) plt.suptitle(str(distribution))
continuousSampleCollection[i] = continuousDistributionCollection[ i].getSample(size) continuousSampleCollection[i].setName( continuousDistributionCollection[i].getName()) sampleCollection[i] = continuousSampleCollection[i] for i in range(discreteDistributionNumber): discreteSampleCollection[i] = discreteDistributionCollection[i].getSample( size) discreteSampleCollection[i].setName( discreteDistributionCollection[i].getName()) sampleCollection[continuousDistributionNumber + i] = discreteSampleCollection[i] factoryCollection = ot.DistributionFactoryCollection(3) factoryCollection[0] = ot.UniformFactory() factoryCollection[1] = ot.BetaFactory() factoryCollection[2] = ot.NormalFactory() aSample = ot.Uniform(-1.5, 2.5).getSample(size) model, best_bic = ot.FittingTest.BestModelBIC(aSample, factoryCollection) print("best model BIC=", repr(model)) model, best_result = ot.FittingTest.BestModelKolmogorov( aSample, factoryCollection) print("best model Kolmogorov=", repr(model)) # BIC adequation resultBIC = ot.SquareMatrix(distributionNumber) for i in range(distributionNumber): for j in range(distributionNumber): value = ot.FittingTest.BIC(sampleCollection[i], distributionCollection[j], 0) resultBIC[i, j] = value
print("Q90_SS = ",Q90_SS) print("") print("Q99_SS = ",Q99_SS) print("") mean_sample = sample_Y.computeMean()[0] standardDeviation_sample = np.sqrt(sample_Y.computeCovariance()[0,0]) # for i in range(N-1): # print(format(str('{0:.3f}'.format(asample_Y[i])))) ################ ### Loi Beta ### ################ fittedRes = ot.BetaFactory().buildEstimator(sample_YF) Beta = fittedRes.getDistribution() Beta_PDF = Beta.drawPDF(-10.,55.,251) Beta_PDF.setLegends('PC meta-modele : '+str(N)+' realisations') Beta_draw = Beta_PDF.getDrawable(0) Beta_draw.setLegend('PC meta-modele : '+str(N)+' realisations') viewer.View(Beta_draw) Mean_Beta = Beta.getMean() Q90_Beta = Beta.computeQuantile(0.90) Q99_Beta = Beta.computeQuantile(0.99) print("") print("Mean_Beta = ",Mean_Beta) print("") print("Q90_Beta = ",Q90_Beta)
from matplotlib import pylab as plt ot.Log.Show(ot.Log.NONE) # %% # Create a sample from a continuous distribution distribution = ot.Beta(2.0, 2.0, 0.0, 1.) sample = distribution.getSample(1000) graph = ot.UserDefined(sample).drawCDF() view = viewer.View(graph) # %% # **1. Specify the model only** # %% # Create the list of distribution estimators factories = [ot.BetaFactory(), ot.TriangularFactory()] # %% # Rank the continuous models by the Lilliefors p-values: estimated_distribution, test_result = ot.FittingTest.BestModelLilliefors( sample, factories) test_result # %% # Rank the continuous models wrt the BIC criteria (no test result): ot.FittingTest.BestModelBIC(sample, factories) # %% # Rank the continuous models wrt the AIC criteria (no test result) ot.FittingTest.BestModelAIC(sample, factories)
print(sample_X) asample_Y = np.array(sample_Y).flatten() asample_YF = (asample_Y-F0)*100/F0 mean_sample = sample_Y.computeMean()[0] standardDeviation_sample = np.sqrt(sample_Y.computeCovariance()[0,0]) # for i in range(N-1): # print(format(str('{0:.3f}'.format(asample_Y[i])))) ################ ### Loi Beta ### ################ fittedRes = ot.BetaFactory().buildEstimator(sample_YF) Beta = fittedRes.getDistribution() Beta_PDF = Beta.drawPDF(-10.,55.,251) Beta_PDF.setLegends('PC meta-modele : '+str(N)+' realisations') Beta_draw = Beta_PDF.getDrawable(0) Beta_draw.setLegend('PC meta-modele : '+str(N)+' realisations') viewer.View(Beta_draw) Mean_Beta = Beta.getMean() Q90_Beta = Beta.computeQuantile(0.90) Q99_Beta = Beta.computeQuantile(0.99) print("") print("Mean_Beta = ",Mean_Beta) print("") print("Q90_Beta = ",Q90_Beta)