我想在 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]*
方法。
以下是如何使用 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/