如何在 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 时它就在那里。如果您已经定义了 r
和 theta
,只需调用 dnbinom
dnbinom(x, size=r, prob=theta)
查看帮助?dnbinom
当有代码已经调试并且每天由大量知识渊博的用户测试(例如,许多研究统计学家使用它)时,不要浪费时间调试自己的代码 - 他们当然应该发现任何东西,但现在非常罕见的问题。它也可能比您编写的在数值上更稳定并且更有效地实现。
我想在处理另一个计算时将概率质量函数定义(实现)到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 时它就在那里。如果您已经定义了 r
和 theta
,只需调用 dnbinom
dnbinom(x, size=r, prob=theta)
查看帮助?dnbinom
当有代码已经调试并且每天由大量知识渊博的用户测试(例如,许多研究统计学家使用它)时,不要浪费时间调试自己的代码 - 他们当然应该发现任何东西,但现在非常罕见的问题。它也可能比您编写的在数值上更稳定并且更有效地实现。