假設我有一個二元離散分佈,即對於i = 1,...,n和j = 1的概率值表P(X = i,Y = j)。 ..m。如何從這樣的分佈生成一個隨機樣本(X_k,Y_k),k = 1,... N?也許有一個現成的R功能,如:給定二元離散分佈的隨機樣本
sample(100,prob=biprob)
其中biprob是2維矩陣?
一個直觀的方法是採樣如下。假設我們有一個data.frame
dt=data.frame(X=x,Y=y,P=pij)
其中X和Y來自
expand.grid(x=1:n,y=1:m)
和伊斯蘭聖戰是P(X = I,Y = j)的。
然後我們得到我們的樣本大小爲N,通過以下方式(XS,YS):
set.seed(1000)
Xs <- sample(dt$X,size=N,prob=dt$P)
set.seed(1000)
Ys <- sample(dt$Y,size=N,prob=dt$P)
我用set.seed()來模擬 「bivariateness」。直覺上我應該得到類似於我需要的東西。我不確定這是否正確。因此,這個問題:)
另一種方法是使用吉布斯抽樣,邊際分佈很容易計算。
我嘗試了谷歌搜索,但沒有真正相關出現。
再仔細讀這篇文章,這是相同的解決方案,我建議。採樣行可能比組合rmultinom和哪個更清晰。關鍵是要認識到行和列只是符號。 – Tristan
是符號是關鍵。二元離散分佈與單變量離散分佈相同,符號改變。我選擇Anika的答案是正確的,但僅僅因爲代碼更簡單:) Tristan給出了更好的理論解釋。 – mpiktas
+1爲好例子 – andi