Мне было интересно, возможно ли генерировать коррелированные случайные биномиальные переменные, следуя подходу линейного преобразования?
Ниже я попробовал что-то простое в R, и оно дает некоторую корреляцию. Но мне было интересно, есть ли принципиальный способ сделать это?
X1 = rbinom(1e4, 6, .5) ; X2 = rbinom(1e4, 6, .5) ; X3 = rbinom(1e4, 6, .5) ; a = .5
Y1 = X1 + (a*X2) ; Y2 = X2 + (a*X3) ## Y1 and Y2 are supposed to be correlated
cor(Y1, Y2)
copula
, которое помогает генерировать зависимые переменные с фиксированными полями.Ответы:
Биномиальные переменные обычно создаются путем суммирования независимых переменных Бернулли. Давайте посмотрим, можем ли мы начать с пары коррелированных переменных Бернулли и сделать то же самое.(X,Y)
Предположим, что - переменная Бернулли (то есть и ), а - переменная Бернулли . Чтобы определить их совместное распределение, нам нужно указать все четыре комбинации результатов. Написав мы можем легко вычислить остальное из аксиом вероятности:( p ) Pr ( X = 1 ) = p Pr ( X = 0 ) = 1 - p Y ( q ) Pr ( ( X , Y ) = ( 0 , 0 ) ) = a , Pr ( ( X , Y ) = ( 1 , 0 ) ) = 1 - qX (p) Pr(X=1)=p Pr(X=0)=1−p Y (q)
Включение этого в формулу для коэффициента корреляции и ее решение даетa = ( 1 - p ) ( 1 - q ) + ρ √ρ
При условии, что все четыре вероятности неотрицательны, это даст действительное совместное распределение - и это решение параметризует все двумерные распределения Бернулли. (Когда , существует решение для всех математически значимых корреляций между и ) Когда мы суммируем из этих переменных, корреляция остается той же - но теперь предельные распределения являются биномиальными и Бином , по желанию.- 1 1 n ( n , p ) ( n , q )p=q −1 1 n (n,p) (n,q)
пример
Пусть , , , и мы бы хотели, чтобы корреляция была . Решение - (а другие вероятности составляют около , и ). Вот сюжет из реализаций от совместного распространения:р = 1 / 3 д = 3 / 4 ρ = - 4 / 5 ( 1 ) = 0,00336735 0,247 0,663 0,087 1000n=10 p=1/3 q=3/4 ρ=−4/5 (1) a=0.00336735 0.247 0.663 0.087 1000
Красные линии обозначают средние значения выборки, а пунктирная линия - линия регрессии. Все они близки к их предполагаемым значениям. Точки были случайно выбиты на этом изображении для устранения перекрытий: в конце концов, биномиальные распределения дают только целые значения, поэтому будет большое количество переполнений.
Один из способов генерирования этих переменных - выборка раз из с выбранными вероятностями, а затем преобразование каждого в , каждого в , каждого в и каждый в . Суммируйте результаты (как векторы), чтобы получить одну реализацию .n {1,2,3,4} 1 (0,0) 2 (1,0) 3 (0,1) 4 (1,1) (X,Y)
Код
Вот
R
реализация.источник