【发布时间】:2021-06-22 07:06:31
【问题描述】:
我想从(截断)正态分布(高斯)中选取 50 个样本,范围为 15-85,均值 = 35,sd = 30。为了重现性:
num = 50 # number of samples
rng = c(15, 85) # the range to pick the samples from
mu = 35 # mean
std = 30 # standard deviation
以下代码给出了 50 个样本:
rnorm(n = num, mean = mu, sd = std)
但是,我希望这些数字严格在 15-85 之间。我怎样才能做到这一点?
更新:有些人在评论部分提出了很好的观点,认为这个问题无法解决,因为这将不再是高斯分布。我在原始帖子中添加了 TRUNCATED 这个词,这样它更有意义(截断正态分布)。
【问题讨论】:
-
如果限制从正态分布采样的数据的范围,无论范围相对于均值和 sd 有多宽,它都不再是正态分布。您提出的问题没有解决方案。
-
library('MCMCglmm')rtnorm(n = 50, mean = mu, sd = std, lower = 15, upper = 85)可以帮到你吗?
标签: r random gaussian normal-distribution