如何在 R 中定义概率质量函数

How to define probability mass function in R

我想在处理另一个计算时将概率质量函数定义(实现)到R环境中。由于没有太多的 R 经验,我不知道如何将带有这些参数的方程式转换为代码(已经尝试到处搜索)。感谢帮助。 [![此方程给出的概率质量函数][1]][1]

这可以通过Beta distribution

来表达

你的表达式 = BetaPDF(r, x) t (1-t) / x

P <- function(x, theta) {
    shape1 <- 2
    shape2 <- x
    dbeta(theta, shape1, shape2)*theta*(1.0-theta)/x
}

请检查数学,另请参阅 here

更新

或表示为更高倍数的Beta PDF

你的表达式 = BetaPDF(r+1, x+1) r /((r+x+1)*(r+x))

它已经是 R 中内置的 pmf - 当您安装 R 时它就在那里。如果您已经定义了 rtheta,只需调用 dnbinom

dnbinom(x, size=r, prob=theta)

查看帮助?dnbinom

当有代码已经调试并且每天由大量知识渊博的用户测试(例如,许多研究统计学家使用它)时,不要浪费时间调试自己的代码 - 他们当然应该发现任何东西,但现在非常罕见的问题。它也可能比您编写的在数值上更稳定并且更有效地实现。