Amostra aleatória de determinada distribuição discreta bivariada
Suponha que eu tenha uma distribuição discreta bivariada, ou seja, uma tabela de valores de probabilidade P (X = i, Y = j), para i = 1, ... nej = 1, ... m. Como faço para gerar uma amostra aleatória (X_k, Y_k), k = 1, ... N a partir dessa distribuição? Talvez exista uma função R pronta como:
sample(100,prob=biprob)
onde biprob é matriz bidimensional?
Uma maneira intuitiva de provar é a seguinte. Suponha que tenhamos um data.frame
dt=data.frame(X=x,Y=y,P=pij)
De onde vêm x e y
expand.grid(x=1:n,y=1:m)
e pij são os P (X = i, Y = j).
Em seguida, obtemos nossa amostra (Xs, Ys) do tamanho N, da seguinte maneira:
set.seed(1000)
Xs <- sample(dt$X,size=N,prob=dt$P)
set.seed(1000)
Ys <- sample(dt$Y,size=N,prob=dt$P)
Eu uso set.seed () para simular a "bivariateness". Intuitivamente, devo obter algo semelhante ao que preciso. Não tenho certeza de que esta seja a maneira correta. Daí a pergunta :)
Outra maneira é usar a amostragem de Gibbs; distribuições marginais são fáceis de calcular.
Tentei pesquisar no Google, mas nada realmente relevante surgiu.