0

我有一个真实值样本,其中包含离散随机变量的独立实现,我想创建适合该数据的分布。

sample = [2.0, 2.0, 1.0, 1.0, 2.0, 3.0, 1.0, 2.0, 2.0, 1.0]

分布似乎是为此目的而UserDefined设计的,但需要计算每个点的权重,具体取决于其在样本中的频率:

import openturns as ot
distribution = ot.UserDefined(points, weights)

但是我们必须先计算pointsweights。为此,我使用 Numpyunique函数计算了点和权重。但是,这听起来像是类的限制UserDefined。我怎样才能更简单地做到这一点?

4

1 回答 1

0

该类通过估计样本中的和来UserDefinedFactory创建分布。该方法将样本作为输入并返回适合数据的对象。UserDefinedpointsweightsbuildot.UserDefined

import openturns as ot
sample = ot.Sample([[2.0], [2.0], [1.0], [1.0], [2.0], [3.0], [1.0], [2.0], [2.0], [1.0]])
factory = ot.UserDefinedFactory()
distribution = factory.build(sample)
于 2020-04-29T20:39:39.860 回答