Giả sử tôi có phân bố riêng biệt hai biến, tức là bảng giá trị xác suất P (X = i, Y = j), cho i = 1, ... n và j = 1 ,. ..m. Làm cách nào để tạo một mẫu ngẫu nhiên (X_k, Y_k), k = 1, ... N từ phân phối như vậy? Có thể có một hàm R sẵn sàng như:Mẫu ngẫu nhiên từ phân phối riêng biệt bivariate
sample(100,prob=biprob)
trong đó biprob là ma trận 2 chiều?
Một cách trực quan để lấy mẫu là như sau. Giả sử chúng ta có một data.frame
dt=data.frame(X=x,Y=y,P=pij)
Trong đó x và y đến từ
expand.grid(x=1:n,y=1:m)
và pij là P (X = i, Y = j).
Sau đó, chúng tôi nhận mẫu của chúng tôi (Xs, Ys) có kích thước N, theo cách sau:
set.seed(1000)
Xs <- sample(dt$X,size=N,prob=dt$P)
set.seed(1000)
Ys <- sample(dt$Y,size=N,prob=dt$P)
tôi sử dụng set.seed() để mô phỏng "bivariateness". Trực giác tôi sẽ nhận được một cái gì đó tương tự như những gì tôi cần. Tôi không chắc chắn rằng đây là cách chính xác mặc dù. Do đó câu hỏi :)
Một cách khác là sử dụng lấy mẫu Gibbs, phân phối cận biên dễ tính toán.
Tôi đã thử googling, nhưng không có gì thực sự có liên quan đến.
Reading này một lần nữa một cách cẩn thận, điều này là như nhau giải pháp như những gì tôi đề nghị. Các hàng lấy mẫu có lẽ sạch hơn so với kết hợp rmultinom và đó. Điều quan trọng là nhận ra rằng các hàng và cột chỉ là ký hiệu. – Tristan
Có ký hiệu là chìa khóa. Phân phối rời rạc song song cũng giống như phân phối rời rạc đơn biến với ký hiệu thay đổi. Tôi chọn câu trả lời của Anika là câu trả lời đúng, nhưng chỉ vì đoạn mã đơn giản hơn :) Tristan đưa ra giải thích lý thuyết tốt hơn. – mpiktas
+1 cho ví dụ hay – andi