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

时间:2014-05-22 13:01:14

标签: r normal-distribution

在我的工作中,我需要使用正态分布来生成概率,其中这些概率的总和小于或等于1,这意味着:

生成P1,P2,..,Pt其中P1+P2+..+Pt <= 1 我想用R做到这一点,但我不确切知道该怎么做。

2 个答案:

答案 0 :(得分:0)

你确定要问的是什么吗?

x <- rnorm(100)
Fn <- ecdf(x)
#plot(Fn)
Fn(max(x))
> Fn(max(x))
[1] 1

答案 1 :(得分:0)

如果我理解正确的话。如果要从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),那就更好了。