繁体   English   中英

来自未知概率分布的样本

[英]Sample from an unknown probability distribution

我有一个~100k长度的向量,值在0到1之间,表示在地理位置的栖息地适应性。 虽然有些值非常小,但其中很多都是0.9等,所以总和远大于1。

我想生成1000个随机的位置样本,每个样本的长度为6(无替换),选择位置的概率由该位置处的向量值加权。

下面的虚拟数据。 有任何想法吗?

mylocs = letters[1:10]
myprobs = c(0.1,NA,0.01,0.2,0.6,NA,0.001,0.03,0.9,NA)
mydata = data.frame(mylocs,myprobs)

我对你的问题有点困惑,所以这里有两个可能的答案。

如果您想要抽样1000组六个值,其中组可以共享值,那么:

locs = letters[1:15]
probs = c(0.1,NA,0.01,0.2,0.6,NA,0.001,0.03,0.9,NA, 0.1, 0.1, 0.1, 0.1, 0.1)
mydata = data.frame(locs,probs)

d = na.omit(mydata)
replicate(1000, sample(d$locs, size=6, prob=d$probs, replace=F))

如果组不应该共享值,那么只需:

## Change the "2" to 1000 in the real data set
s = sample(d$locs, size=6*2, prob=d$probs, replace=F)
matrix(s, ncol=6)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM