如何使用 Julia 中不同数组给出的形状值从伽马分布中采样数组?

How to sample array from gamma distribution with shape values given by different array in Julia?

在 Julia 中,我有一个形状值数组,我想对一个数组进行采样,该数组的值是根据我的形状数组的相应形状元素进行伽马分布的。我想要的是:

    shapes = [1.1, 0.5, 10]  
    scale = 1  
    x = SampleGammaWithDifferentShapes(shapes,scale)

其中x[1]是从形状为shapes[1]的伽马分布中采样的,x[2]是从形状为shape[2]的伽马分布中采样的,依此类推.

是否有允许您在一行中执行此操作的内置函数,或者我是否必须为此定义自己的函数?这似乎应该是一个内置函数。

地图函数对此很有用。

using Random, Distributions

shapes = [1.1, 0.5, 10]  
scale = 1
n_samples = 1
x = map(x -> rand(Gamma(x,scale), n_samples)[1], shapes)

仅通过数组广播任何函数的可能性使得无需添加函数的特殊数组版本。你能为 1 值做到吗?那就广播吧。

using Distributions

shapes = [1.1, 0.5, 10.]
scale = 1
x = rand.(Gamma.(shapes, scale))