R 有一个负二项式函数,可以用mu
而不是概率参数化(例如,浮点数 >= 0 和 <=1)。我正在尝试复制此发行版:
rnbinom(1000,size=0.3,mu=15)
Run Code Online (Sandbox Code Playgroud)
在 Python 中。据我所知,Numpy 的负二项式函数只允许概率。另外,我不清楚size
Numpy 中的参数是什么。
以下是您传递给的参数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 函数的size
和prob
参数。的第三个参数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)