r - 将负二项式参数从 R 转换为 Excel

标签 r excel

我应用了 fitdistrplus 包来拟合经验分布。 事实证明,最好的拟合是带有参数的负二项分布:

size=0.6900788
mu=2.6522087

dnbinom(0:10, mu = 2.6522087, size =0.6900788)
[1] 0.33666338 0.18435650 0.12362301 0.08796440 0.06439416 0.04793144 0.03607044 0.02735574 0.02086667 0.01598815 0.01229390

我现在尝试在 EXCEL 上生成相同的数字,其中需要不同格式的参数:

NEGBINOMDIST(number_f,number_s,probability_s)

我该怎么做呢?有任何想法吗? 非常感谢..

最佳答案

根据Microsoft's documentation ,Excel使用标准的“n次失败之前的绘制次数”定义; fitdistrplus 使用的参数化是 ?dnbinom 中提到的替代方案:

An alternative parametrization (often used in ecology) is by the mean ‘mu’, and ‘size’, the dispersion parameter, where ‘prob’ = ‘size/(size+mu)’. The variance is ‘mu + mu^2/size’ in this parametrization.

因此,如果您想从 musize 返回到 probsize (Excel 的 >probability_snumber_s 分别)您需要

number_s=size
probability_s=size/(size+mu)

muval <- 2.6522087
sizeval <- 0.6900788
(probval <- sizeval/(sizeval+muval))
## [1] 0.206469
all.equal(dnbinom(0:10,mu=muval,size=sizeval),
          dnbinom(0:10,prob=probval,size=sizeval))
## TRUE

但是,您还没有完成,因为(正如 @James 上面所评论的)Excel 只允许 number_s 使用正整数,而上面的估计值为 0.69。您可能需要在 Excel 相关论坛上搜索/询问如何克服此限制...最坏的情况是,因为 Excel 确实有 an implementation of the gamma function ,您可以使用 ?dnbinom

中给出的公式
Gamma(x+n)/(Gamma(n) x!) p^n (1-p)^x 

实现您自己的 NB 计算(此公式允许 n 为非整数值)。最好使用 Excel 中的 GAMMLN 函数来计算对数刻度上标准化常数的分子和分母...如果你幸运的话,有人会帮你省去一些麻烦并已经实现了......

关于r - 将负二项式参数从 R 转换为 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16793198/

相关文章:

r - 如何将带有日期列的 time.series 对象写入 R 中的 excel 文件?

r - 在拥有 `melt` 之前必须先对其进行 `cast` 数据帧吗?

Excel IF 公式验证一个单元格具有数据而另一个单元格具有特定值

vba - 通过 CutePDF Writer 打印所有工作表

excel - 仅将填充了单元格的电子表格保存为 PDF

vba - 运行时错误 '1004' : Unable to get the Combin property of the WorksheetFunction class

javascript - 将 excel 转换为 json 数组时无法解析日期

r - 使用光栅包下载 SRTM 数据?

javascript - 如何在 Shiny 的应用程序加载时触发 JS 脚本

r - 将多列放样到两列并删除 R 中的重复项