簡體   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