我想从泊松分布中抽取 100 个随机数,均值为 0.5,范围从 0 到 10。
使用 sub2
函数,我可以从泊松分布中获取随机数,但我无法指定最小值/最大值。
在 R 中有没有办法做到这一点?
更多上下文:在数据集中,我的因变量具有上述属性(平均值、最小值、最大值),我想用我的因变量的模拟数据估计一些模型。
编辑:我的因变量(除了观察值之外,我还想模拟随机数)既没有被截断也没有被审查。但是,我要注意它的标准偏差是 1,即方差不等于 0.5 的均值。
谢谢!
答案 0 :(得分:0)
您要抽样的项目数量有限,只需计算遵循泊松和抽样的概率
沿线
l <- 0.5
x <- c(0,1,2,3,4,5,6,7,8,9,10)
p <- rep(0, length(x)) # probabilities
s <- 0.0
for (k in x) {
p[k+1] = l**k * exp(-l) / gamma(k+1)
s <- s + p[k+1]
}
p = p / s # normalization
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))
print(sample(x, 1, replace=TRUE, prob=p))