Zastanawiałem się, czy możliwe jest wygenerowanie skorelowanych losowych zmiennych dwumianowych po zastosowaniu transformacji liniowej?
Poniżej wypróbowałem coś prostego w R i daje to pewną korelację. Ale zastanawiałem się, czy istnieje jakiś zasadny sposób, aby to zrobić?
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
, które pomaga w generowaniu zmiennych zależnych o ustalonych marginesach.Odpowiedzi:
Zmienne dwumianowe są zwykle tworzone przez zsumowanie niezależnych zmiennych Bernoulliego. Zobaczmy, czy możemy zacząć od pary skorelowanych zmiennych Bernoulliego i zrobić to samo.( X, Y)
Załóżmy, że jest zmienną Bernoulliego (to znaczy a ), a jest zmienną Bernoulliego . Aby określić ich wspólną dystrybucję, musimy określić wszystkie cztery kombinacje wyników. Pisząc możemy łatwo ustalić resztę z aksjomatów prawdopodobieństwa:( 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)
Podłączenie tego do wzoru dla współczynnika korelacji i rozwiązanie dajea = ( 1 - p ) ( 1 - q ) + ρ √ρ
Pod warunkiem, że wszystkie cztery prawdopodobieństwa nie są ujemne, da to prawidłowy wspólny rozkład - a to rozwiązanie parametryzuje wszystkie dwuwymiarowe rozkłady Bernoulliego. (Gdy , istnieje rozwiązanie dla wszystkich matematycznie znaczących korelacji między a ) Gdy sumujemy tych zmiennych, korelacja pozostaje taka sama - ale teraz rozkłady brzeżne są dwumianowe i Dwumianowy , zgodnie z potrzebami.p = q - 1 1 n ( n , p ) ( n , q)
Przykład
Niech , , , i chcielibyśmy, aby korelacja wynosiła . Rozwiązaniem dla jest (a inne prawdopodobieństwa wynoszą około , i ). Oto wykres realizacji ze wspólnej dystrybucji:n = 10 p = 1 / 3 q= 3 / 4 ρ = - 4 / 5 ( 1 ) a = 0,00336735 0,247 0,663 0,087 1000
Czerwone linie wskazują średnie próbki, a linia przerywana to linia regresji. Wszystkie są zbliżone do zamierzonych wartości. Punkty zostały przypadkowo roztrzęsione na tym obrazie, aby rozwiązać nakładanie się: w końcu rozkłady dwumianowe produkują tylko wartości całkowite, więc będzie bardzo dużo wykreślania.
Jednym ze sposobów generowania tych zmiennych jest próbkowanie razy z z wybranymi prawdopodobieństwami, a następnie przeliczanie każdego na , każdego na , każde na i każdy na . Zsumuj wyniki (jako wektory), aby uzyskać jedną realizację .n { 1 , 2 , 3 , 4 } 1 ( 0 , 0 ) 2) ( 1 , 0 ) 3) ( 0 , 1 ) 4 ( 1 , 1 ) ( X, Y)
Kod
Oto
R
implementacja.źródło