创建一个新的概率分布 R
Create a new probability distribution R
我想在 R 中创建一个新的概率密度函数,如下所示:
P{X=x} = p
P{X=/=x} 服从具有一些参数 lambda 但已归一化 s.t 的泊松分布。所有概率的总和等于 (1-p)
我怎样才能让 R 将其识别为新的概率分布并让它创建所有相应的函数 (r, d, p, q)?
您实质上是在创建狄拉克分布和离散泊松分布的混合 class。 distr
包确实允许对分布进行符号操作,它允许定义 Dirac
、各种 Discrete
-classed 函数,包括 Pois
,以及相同与UnivarMixingDistribution
-class.
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()
方法来实现 function/class 定义:
> 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 中创建一个新的概率密度函数,如下所示:
P{X=x} = p
P{X=/=x} 服从具有一些参数 lambda 但已归一化 s.t 的泊松分布。所有概率的总和等于 (1-p)
我怎样才能让 R 将其识别为新的概率分布并让它创建所有相应的函数 (r, d, p, q)?
您实质上是在创建狄拉克分布和离散泊松分布的混合 class。 distr
包确实允许对分布进行符号操作,它允许定义 Dirac
、各种 Discrete
-classed 函数,包括 Pois
,以及相同与UnivarMixingDistribution
-class.
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()
方法来实现 function/class 定义:
> 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 模型的链接和错误结构定义了函数列表。