繁体   English   中英

在特殊条件下生成正态分布的概率

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM