You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R dnbinom与Python nbinom.pmf结果不一致,参数转换存疑

R与Scipy负二项分布PMF参数转换错误排查
  • 核心问题:你用的参数转换公式完全错误,才导致结果不一致。
  • 先明确两者的参数定义逻辑:
    • R的dnbinom(k, size=r, mu=μ):size是负二项分布的形状参数(离散度),mu是分布均值,背后对应的单次成功概率为p_R = r/(r+μ),概率质量函数基于「获得r次成功前的失败次数为k」定义。
    • Scipy的nbinom.pmf(k, n, p):n直接对应R的size(即形状参数r),p是单次成功概率,分布均值公式为n*(1-p)/p,和R的mu等价。
  • 正确的转换公式:
    • Scipy的n = R的size
    • Scipy的p = R的size / (R的size + R的mu)
  • 用你的例子验证:
    • R参数:size=0.463965,mu=15
    • 转换后Scipy参数:n=0.463965,p=0.463965/(0.463965+15)≈0.03
    • 执行scipy.stats.nbinom.pmf(3, 0.463965, 0.03),结果会和R的dnbinom(3, mu=15, size=0.463965)一致(约0.05)
  • 错误原因:
    • 你错误地将Scipy的n设为1/size,混淆了不同教材里的参数化方式(R和Scipy均直接使用原始形状参数r,而非其倒数);同时p的推导公式完全错误,正确的p需要从均值等价的等式反推得出,不是1/(1+size*mu)。

内容的提问来源于stack exchange,提问作者Pacific Bird

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 17:10:15