【发布时间】:2014-06-09 11:15:21
【问题描述】:
与大多数物理问题一样,我的案例有边界,因此我想根据截断的高斯分布生成(使用 R)随机数。
这个想法是这些数字的平均值不应该取决于边界。 我已经找到了 truncnorm 包,但它不能胜任:
例如,这里是平均值为 0.1 和宽度为 0.1 的高斯的情况,但被限制在 0 和 1 之间:
install.packages("truncnorm")
library(truncnorm)
vec=rtruncnorm(n=100000,a=0,b=1,mean=0.1,sd=0.1)
hist(vec,breaks=100)
mean(vec)
[1] 0.1289061
如您所见,最终平均值不是作为输入给出的平均值,通过使用标准 rnorm 函数并对结果进行子集化,我可以得到相同的结果。
我不想重新发明轮子,所以欢迎任何关于进一步包装的想法或建议!谢谢!
【问题讨论】:
-
您创建了一组随机数字。是什么让您相信一个随机生成的向量将与您认为它应该具有完全相同的平均值?另外,您正在不对称地截断,预计均值偏斜。宽度称为标准差(参见维基百科这是什么意思)。
标签: r random gaussian truncated