【发布时间】:2011-01-17 21:39:29
【问题描述】:
假设我有一个二元离散分布,即概率值表 P(X=i,Y=j),对于 i=1,...n 和 j=1,...m。如何从这种分布中生成随机样本 (X_k,Y_k), k=1,...N?也许有一个现成的 R 函数,例如:
sample(100,prob=biprob)
biprob 是二维矩阵在哪里?
一种直观的采样方式如下。假设我们有一个 data.frame
dt=data.frame(X=x,Y=y,P=pij)
x 和 y 来自哪里
expand.grid(x=1:n,y=1:m)
和 pij 是 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() 来模拟“二元性”。直觉上我应该得到类似于我需要的东西。我不确定这是正确的方法。因此问题:)
另一种方法是使用吉布斯抽样,边际分布很容易计算。
我尝试使用谷歌搜索,但没有找到真正相关的内容。
【问题讨论】:
标签: r statistics