r-从定义范围为[min,max]的泊松分布中生成随机数



我想从泊松分布中抽取100个随机数,平均值为0.5,范围从0到10。

使用rpois(n = 100, lambda = 0.50)函数,我可以从泊松分布中获得随机数,但我无法指定最小值/最大值。

有什么办法在R中做到这一点吗?

更多的上下文:在数据集中,我的因变量具有上面提到的属性(平均值、最小值、最大值(,我想用我因变量的模拟数据来估计一些模型。

编辑:我的因变量(除了观察值之外,我还想模拟随机数(既没有被截断,也没有被删截。然而,我应该注意到,它的标准偏差是1,即方差不等于0.5的平均值。

谢谢!

您要采样的项目数量有限,只需使概率遵循泊松并采样

沿线

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))