r - 创建新的概率分布 R

标签 r probability probability-density

我想在 R 中创建一个新的概率密度函数,如下所示:

P{X=x} = p

P{X=/=x} 遵循具有某些参数 lambda 但已归一化 s.t 的泊松分布。所有概率之和等于 (1-p)

如何让 R 将其识别为新的概率分布并让它创建所有相应的函数(r、d、p、q)?

最佳答案

您实质上是在创建狄拉克分布和离散泊松分布的混合类。 distr 包确实允许对分布进行符号操作,并且它允许定义 Dirac、各种 Discrete 类函数,包括 Pois >,以及与 UnivarMishingDistribution 类的混合。

require(distr)
 x=5;lambda=4; p=0.3
 mylist <- UnivarMixingDistribution(Pois(4), Dirac(x) ,
           mixCoeff=c(p, 1-p))
 plot(mylist)
#NULL

您应该查看完整的包文档,因为它为以此方式定义的发行版提供了 [rdpq]* 方法。

enter image description here

以下是如何使用 p()r() 方法来定义函数/类:

> p(mylist)(4)
[1] 0.1886511
> p(mylist)(5)
[1] 0.9355392
> p(mylist)(0:10)
 [1] 0.005494692 0.027473460 0.071430997 0.130041046 0.188651095
 [6] 0.935539186 0.966797878 0.984659989 0.993591044 0.997560401
[11] 0.999148145
> r(mylist, 10)
Error in r(mylist, 10) : unused argument (10)
> r(mylist)( 10)
 [1] 5 2 5 5 5 5 5 3 5 5

您还可以在 ?family 找到有用的信息,其中为 R 模型的链接和错误结构定义了函数列表。

关于r - 创建新的概率分布 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380539/

相关文章:

java - 生成概率树然后对结果进行排序的时间高效实现

sorting - 在某些条件下快速排序中分区中的最小部分?

r - 在 R 中按间隔组织的数据的连续分布

根据出现概率用非 NA 值替换数据框中列中的 NA 值

r - 在R中将因子转换为时间

python - 条件概率 - Python

python - 如何使用可变宽度高斯在 python 中执行卷积?

r - 组不互斥时类似于 group_by 的功能

ggplot 和 png 的 rmarkdown 错误

java - Java中从最小到最大的排序列表