Các biến nhị thức thường được tạo bằng cách tính tổng các biến Bernoulli độc lập. Hãy xem liệu chúng ta có thể bắt đầu với một cặp biến Bernoulli tương quan hay không và làm điều tương tự.(X,Y)
Giả sử là biến Bernoulli (nghĩa là và ) và là biến Bernoulli . Để xác định phân phối chung của họ, chúng ta cần chỉ định tất cả bốn kết hợp kết quả. Viết chúng ta có thể dễ dàng tìm ra phần còn lại từ các tiên đề của xác suất:X(p)Pr(X=1)=pPr(X=0)=1−pY(q)
Pr((X,Y)=(0,0))=a,
Pr((X,Y)=(1,0))=1−q−a,Pr((X,Y)=(0,1))=1−p−a,Pr((X,Y)=(1,1))=a+p+q−1.
Việc đưa công thức này vào công thức cho hệ số tương quan và việc giải sẽ choρ
a=(1−p)(1−q)+ρpq(1−p)(1−q)−−−−−−−−−−−−−√.(1)
Với tất cả bốn xác suất là không âm, điều này sẽ cung cấp phân phối chung hợp lệ - và giải pháp này tham số hóa tất cả các phân phối Bernoulli hai biến. (Khi , có một giải pháp cho tất cả các mối tương quan có ý nghĩa toán học giữa và ) Khi chúng ta tổng của các biến này, mối tương quan vẫn giữ nguyên - nhưng bây giờ các phân phối biên là Binomial và Binomial , như mong muốn.p=q−11n(n,p)(n,q)
Thí dụ
Đặt , , và chúng tôi muốn tương quan là . Giải pháp cho là (và các xác suất khác là khoảng , và ). Dưới đây là một chuỗi hiện thực từ phân phối chung:n=10p=1/3q=3/4ρ=−4/5(1)a=0.003367350.2470.6630.0871000
Các đường màu đỏ chỉ phương tiện của mẫu và đường chấm là đường hồi quy. Họ đều gần với giá trị dự định của họ. Các điểm đã được xáo trộn ngẫu nhiên trong hình ảnh này để giải quyết các phần trùng lặp: xét cho cùng, các phân phối Binomial chỉ tạo ra các giá trị tích phân, do đó sẽ có một lượng lớn quá mức.
Một cách để tạo các biến này là lấy mẫu lần từ với xác suất được chọn và sau đó chuyển đổi từng biến thành , mỗi lần thành , mỗi lần thành , và mỗi thành . Tính tổng các kết quả (dưới dạng vectơ) để có được một nhận thức về .n{1,2,3,4}1(0,0)2(1,0)3(0,1)4(1,1)(X,Y)
Mã
Đây là một R
thực hiện.
#
# 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)