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