从定义范围 [min, max] 的泊松分布生成随机数
Generate random numbers from a Poisson distribution with defined range [min, max]
我想从均值为 0.5 的泊松分布中抽取 100 个随机数,范围从 0 到 10。
使用 rpois(n = 100, lambda = 0.50)
函数,我可以从泊松分布中获取随机数,但我无法指定 min/max 值。
在 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))
我想从均值为 0.5 的泊松分布中抽取 100 个随机数,范围从 0 到 10。
使用 rpois(n = 100, lambda = 0.50)
函数,我可以从泊松分布中获取随机数,但我无法指定 min/max 值。
在 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))