Предположим, у меня есть двумерное дискретное распределение, то есть таблица значений вероятности P (X = i, Y = j) для i = 1, ... n и j = 1, ... m. Как мне сгенерировать случайную выборку (X_k, Y_k), k = 1, ... N из такого распределения? Может быть, есть готовая функция R вроде:
sample(100,prob=biprob)
где бипроб 2-х мерная матрица?
Один из интуитивно понятных способов отбора проб заключается в следующем. Предположим, у нас есть data.frame
dt=data.frame(X=x,Y=y,P=pij)
Откуда х и у
expand.grid(x=1:n,y=1:m)
и pij - это P (X = i, Y = j).
Затем мы получаем наш образец (Xs, Ys) размера N следующим образом:
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 () для имитации «двумерности». Интуитивно я должен получить что-то похожее на то, что мне нужно. Я не уверен, что это правильный путь. Отсюда и вопрос :)
Другой способ - использовать выборку Гиббса, предельные распределения легко вычислить.
Я попробовал поискать в Google, но на самом деле ничего не вышло.