【问题标题】:Continuous and discrete variables with OpenTURNS使用 OpenTURNS 的连续和离散变量
【发布时间】:2020-04-04 23:21:40
【问题描述】:

如何使用 OpenTURNS 创建包含连续和离散随机变量的实验设计?

我知道我们可以做到:

X0 = ot.Normal()
X1 = ot.Normal()
distribution  = ot.ComposedDistribution([X0,X1])

但这只会创建一个连续的联合分布,我可以从中进行采样。但是如何创建连续变量和离散变量的联合分布呢?那我可以从中取样吗?

【问题讨论】:

    标签: python random statistics uncertainty openturns


    【解决方案1】:

    实际上,一般来说,OpenTURNS 在连续分布和离散分布之间并没有太大区别。所以,一旦我们创建了一个Distribution,我们所要做的就是使用getSample 方法来获得一个简单的蒙特卡罗样本。以下示例表明,我们可以通过创建 LHS 实验设计进一步推动这一想法。

    为了创建分布的第一个边际,我们选择单变量离散分布。其中许多,如BernoulliGeometric 发行版,都在库中实现。在此示例中,我们选择了 UserDefined 分布,它为值 -2、-1、1 和 2 分配相等的权重。 然后我们首先使用getSample 方法创建蒙特卡洛实验,然后使用MonteCarloExperiment 方法。可以基于此分布生成任何其他类型的实验设计,这就是我们最终展示如何创建 LHS(拉丁超立方体)实验的原因。

    import openturns as ot
    sample = ot.Sample([-2., -1., 1., 2.],1)
    X0 = ot.UserDefined(sample)
    X1 = ot.Normal()
    distribution = ot.ComposedDistribution([X0,X1])
    # Monte-Carlo experiment, simplest version
    sample = distribution.getSample(10)
    print(sample)
    # Monte-Carlo experiment
    size = 100
    experiment = ot.MonteCarloExperiment(distribution, size)
    sample = experiment.generate()
    

    以下脚本生成相关图形。

    graph = ot.Graph("MonteCarloExperiment", "x0", "x1", True, "")
    cloud = ot.Cloud(sample, "blue", "fsquare", "")
    graph.add(cloud)
    graph
    

    之前的脚本打印:

        [ v0         X0         ]
    0 : [  2         -0.0612243 ]
    1 : [  1          0.789099  ]
    2 : [ -1          0.583868  ]
    3 : [ -1          1.33198   ]
    4 : [ -2         -0.934389  ]
    5 : [  2          0.559401  ]
    6 : [ -1          0.860048  ]
    7 : [  1         -0.822009  ]
    8 : [  2         -0.548796  ]
    9 : [ -1          1.46505   ]
    

    并生成以下图形:

    在同一分布上创建 LHS 很简单。

    size = 100
    experiment = ot.LHSExperiment(distribution, size)
    sample = experiment.generate()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2018-05-16
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多