【发布时间】:2019-05-16 15:25:05
【问题描述】:
我从截断的正态分布中抽取随机数。截断的正态分布在从左侧截断后的 0 处应该具有均值 100 和标准差 60。 我计算了一个算法来计算截断之前正态分布的平均值和 sd(mean_old 和 sd_old)。 函数 vtruncnorm 给了我 60^2 的(想要的)方差。但是,当我从分布中抽取随机变量时,标准差约为 96。 我不明白为什么随机变量的 sd 与 60 的计算不同。
我尝试增加抽奖次数 - 仍然导致 sd 约为 96。
require(truncnorm)
mean_old = -5425.078
sd_old = 745.7254
val = rtruncnorm(10000, a=0, mean = mean_old, sd = sd_old)
sd(val)
sqrt(vtruncnorm( a=0, mean = mean_old, sd = sd_old))
【问题讨论】:
-
你确定这是你想要的吗?您基本上是在要求高斯分布的尾部——超过 7 sigma 的右尾部!在非截断高斯中找到超过 6 sigma 的值的概率是十亿分之一
-
谢谢,我知道了。但是,我需要这个来进行计算。
-
如果我没记错研究生,使用重要性抽样来有效地从高斯的尾部绘制是非常容易的。 This source looks promising,但是如果你搜索“高斯的重要性采样尾巴”还有很多其他的。
标签: r random distribution normal-distribution