Біноміальні змінні зазвичай створюються шляхом підсумовування незалежних змінних Бернуллі. Подивимось, чи можемо ми почати з пари корельованих змінних Бернуллі і зробити те саме.( 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 - qХ( р )Пр ( X= 1 ) = рПр ( X= 0 ) = 1 - рY( q)
Пр ( ( X, Y) = ( 0 , 0 ) ) = a ,
Пр ( ( X, Y) = ( 1 , 0 ) ) = 1 - q- а ,Пр ( ( X, Y) = ( 0 , 1 ) ) = 1 - p - a ,Пр ( ( X, Y) = ( 1 , 1 ) ) = a + p + q- 1.
Підключення цього до формули для коефіцієнта кореляції і розв’язування даєa = ( 1 - p ) ( 1 - q ) + ρ √ρ
a = ( 1 - p ) ( 1 - q) + ρ p q( 1 - р ) ( 1 - q))-------------√.(1)
За умови, що всі чотири ймовірності є негативними, це дасть дійсний спільний розподіл - і це рішення параметризує всі біваріантні розподіли Бернуллі. (Коли , існує рішення для всіх математично значущих кореляцій між і ) Коли ми підсумовуємо цих змінних, кореляція залишається такою ж, - але тепер граничні розподіли є двочленними і Біноміал , за бажанням.- 1 1 n ( n , p ) ( n , q )p = q- 11н( п , р )( n , q)
Приклад
Нехай , , , і ми хотіли б, щоб кореляція була . Рішення для дорівнює (а інші ймовірності - приблизно , та ). Ось сюжет з реалізацій від спільного розподілу:р = 1 / 3 д = 3 / 4 ρ = - 4 / 5 ( 1 ) = 0,00336735 0,247 0,663 0,087 тисячіn = 10р = 1 / 3q= 3 / 4ρ = - 4 / 5( 1 )a = 0,003367350,2470,6630,0871000
Червоні лінії позначають засоби вибірки, а пунктир - лінія регресії. Всі вони близькі за призначенням. На цьому зображенні випадково розхитуються точки, щоб вирішити перекриття: зрештою, біноміальні розподіли дають лише цілісні значення, тому буде велика кількість перенапруг.
Один із способів генерування цих змінних - вибірка разів з з обраними ймовірностями, а потім перетворення кожного у , кожного у , кожного в , і кожен в . Підсумуйте результати (як вектори), щоб отримати одну реалізацію .{ 1 , 2 , 3 , 4 } 1 ( 0 , 0 ) 2 ( 1 , 0 ) 3 ( 0 , 1 ) 4 ( 1 , 1 ) ( X , Y )н{ 1 , 2 , 3 , 4 }1( 0 , 0 )2( 1 , 0 )3( 0 , 1 )4( 1 , 1 )( X, Y)
Код
Ось R
реалізація.
#
# Compute Pr(0,0) from rho, p=Pr(X=1), and q=Pr(Y=1).
#
a <- function(rho, p, q) {
rho * sqrt(p*q*(1-p)*(1-q)) + (1-p)*(1-q)
}
#
# Specify the parameters.
#
n <- 10
p <- 1/3
q <- 3/4
rho <- -4/5
#
# Compute the four probabilities for the joint distribution.
#
a.0 <- a(rho, p, q)
prob <- c(`(0,0)`=a.0, `(1,0)`=1-q-a.0, `(0,1)`=1-p-a.0, `(1,1)`=a.0+p+q-1)
if (min(prob) < 0) {
print(prob)
stop("Error: a probability is negative.")
}
#
# Illustrate generation of correlated Binomial variables.
#
set.seed(17)
n.sim <- 1000
u <- sample.int(4, n.sim * n, replace=TRUE, prob=prob)
y <- floor((u-1)/2)
x <- 1 - u %% 2
x <- colSums(matrix(x, nrow=n)) # Sum in groups of `n`
y <- colSums(matrix(y, nrow=n)) # Sum in groups of `n`
#
# Plot the empirical bivariate distribution.
#
plot(x+rnorm(length(x), sd=1/8), y+rnorm(length(y), sd=1/8),
pch=19, cex=1/2, col="#00000010",
xlab="X", ylab="Y",
main=paste("Correlation is", signif(cor(x,y), 3)))
abline(v=mean(x), h=mean(y), col="Red")
abline(lm(y ~ x), lwd=2, lty=3)