[英]Generate probabilities of a normal distribution under special condition
在我的工作中,我需要使用正态分布来生成概率,这些概率之和小于或等于1,这意味着:
生成P1,P2,..,Pt
其中P1+P2+..+Pt <= 1
我想用R
做到这一点,但我不知道该怎么做。
您确定要问什么吗?
x <- rnorm(100)
Fn <- ecdf(x)
#plot(Fn)
Fn(max(x))
> Fn(max(x))
[1] 1
如果我理解正确。 如果要从4个正常随机变量生成4个概率,则可以执行
x <- rnorm(4)
p <- exp(x)/sum(exp(x))
all(p<1) == TRUE
sum(p) == 1
如果您想要一个小于或等于1的总和,则可以进行转换(不知道如何使其漂亮)。
x <- rnorm(4)
p <- exp(x)/sum(exp(x))
b<-numeric(4)
b[1]<-p[1]
b[2]<-p[2]-p[1]*p[2]
b[3]<-p[3]-p[2]*p[3]+p[1]*p[2]*p[3]
b[4]<-p[4]-p[3]*p[4]+p[2]*p[3]*p[4]-p[1]*p[2]*p[3]*p[4]
all(b<1) == TRUE
sum(b) <= 1
尽管我担心此方法可能会有偏差。 现在, p
的总和为1。如果有一种方法可以使每个p
为0-1(所以总和可能为0-4)会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.