用 mu 参数化的 R 的 rnbinom 的 Python 等价物

mea*_*ngs 1 python numpy r

R 有一个负二项式函数,可以用mu而不是概率参数化(例如,浮点数 >= 0 和 <=1)。我正在尝试复制此发行版:

rnbinom(1000,size=0.3,mu=15)
Run Code Online (Sandbox Code Playgroud)

在 Python 中。据我所知Numpy 的负二项式函数只允许概率。另外,我不清楚sizeNumpy 中的参数是什么。

War*_*ser 5

以下是您传递给的参数rnbinom

In [131]: num_samples = 10000

In [132]: size = 0.3

In [133]: mu = 15
Run Code Online (Sandbox Code Playgroud)

正如您链接到的 R 文档中所述,您可以按如下方式计算概率:

In [134]: prob = size/(size + mu)
Run Code Online (Sandbox Code Playgroud)

的前两个参数numpy.random.negative_binomial对应于R 函数的sizeprob参数。的第三个参数negative_binomial是样本数。(小心——numpy 调用这个参数size;它指的是要生成的样本的大小。所有 numpy 随机函数都接受一个size参数。)

In [135]: sample = np.random.negative_binomial(size, prob, num_samples)
Run Code Online (Sandbox Code Playgroud)

样本的平均值应接近 15。

In [136]: sample.mean()
Out[136]: 14.9032
Run Code Online (Sandbox Code Playgroud)