การสร้างตัวแปรสุ่มที่มีความสัมพันธ์แบบทวินาม


21

ฉันสงสัยว่ามันอาจจะเป็นไปได้ที่จะสร้างตัวแปรทวินามแบบสหสัมพันธ์โดยใช้วิธีการแปลงเชิงเส้นหรือไม่?

ด้านล่างฉันลองทำอะไรง่ายๆใน 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)

2
Y1และY2อาจมีความสัมพันธ์ แต่พวกเขาจะไม่เป็นแบบทวินามอีกต่อไป ตัวอย่างX1=X2=1แล้วY1=1.5ดังนั้นYiไม่สามารถเป็นตัวแปรสุ่มแบบทวินามได้ ฉันอยากจะแนะนำให้คุณดูการกระจาย Multinomial
knrumsey - Reinstate Monica

1
คำตอบสั้น ๆ สำหรับคำถามคือการค้นหาคำหลักcopulaซึ่งช่วยในการสร้างตัวแปรตามที่มีระยะขอบคงที่
ซีอาน

คำตอบ:


32

ตัวแปรทวินามมักจะถูกสร้างขึ้นโดยการรวมตัวแปร Bernoulli ที่เป็นอิสระ ลองดูว่าเราสามารถเริ่มต้นด้วยตัวแปร Bernoulli ที่มีความสัมพันธ์และทำสิ่งเดียวกันได้หรือไม่(X,Y)

สมมติว่าเป็นตัวแปรBernoulli ( p ) (นั่นคือPr ( X = 1 ) = pและPr ( X = 0 ) = 1 - p ) และYเป็นตัวแปรBernoulli ( q ) ในการตรึงการกระจายของข้อต่อเราจำเป็นต้องระบุผลลัพธ์ทั้งสี่แบบผสมกัน การเขียนPr ( ( X , Y ) = ( 0 , 0 ) ) =X(p)Pr(X=1)=pPr(X=0)=1pY(q)เราสามารถหาส่วนที่เหลือจากสัจพจน์ของความน่าจะเป็นได้อย่างง่ายดาย: Pr ( ( X , Y ) = ( 1 , 0 ) ) = 1 - q - a ,

Pr((X,Y)=(0,0))=a,
Pr((X,Y)=(1,0))=1qa,Pr((X,Y)=(0,1))=1pa,Pr((X,Y)=(1,1))=a+p+q1

เสียบนี้ลงในสูตรสำหรับค่าสัมประสิทธิ์สหสัมพันธ์และการแก้ให้= ( 1 - P ) ( 1 - Q ) + ρ ρ

(1)a=(1-พี)(1-Q)+ρพีQ(1-พี)(1-Q).

หากความน่าจะเป็นทั้งสี่นั้นไม่เป็นเชิงลบสิ่งนี้จะให้การแจกแจงร่วมที่ถูกต้อง - และวิธีการแก้ปัญหานี้ทำให้พารามิเตอร์การแจกแจงเบอร์นูเลียแบบไบวารี่ทั้งหมด (เมื่อมีวิธีการแก้ปัญหาสำหรับความสัมพันธ์ทางคณิตศาสตร์ที่มีความหมายทั้งหมดระหว่าง- 1และ1 ) เมื่อเรารวมnของตัวแปรเหล่านี้ความสัมพันธ์ยังคงเหมือนเดิม - แต่ตอนนี้การแจกแจงเล็กน้อยเป็นแบบทวินาม( n , p )และ ทวินาม( n , q )ตามที่ต้องการพี=Q-11n(n,พี)(n,Q)

ตัวอย่าง

n=10พี=1/3Q=3/4ρ=-4/5(1)a=0.003367350.2470.6630.0871000

scatterplot

เส้นสีแดงหมายถึงค่าเฉลี่ยของตัวอย่างและเส้นประคือเส้นถดถอย พวกเขาทั้งหมดใกล้เคียงกับค่าที่ตั้งใจไว้ จุดต่าง ๆ ถูกสุ่มในภาพนี้เพื่อแก้ไขการเหลื่อมซ้อน: หลังจากทั้งหมดการแจกแจงแบบทวินามจะสร้างค่าที่สำคัญเท่านั้นดังนั้นจะมีจำนวนมากของการ overplotting

n{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)

สามารถขยายวิธีนี้เพื่อสร้างตัวแปรไบนารีจำนวนเท่าใด? - เพื่อให้พอดีกับเมทริกซ์สหสัมพันธ์ที่กำหนด (หรือใกล้สุดเพื่อให้พอดีกับมัน)?
ttnphns

1
2kk2kk1nnn

นี่เป็นผลลัพธ์ที่ดี เพียงแค่เลือกประโยคแรกของคุณเล็กน้อย เพื่อให้ได้ทวินามจากตัวแปร Bernoulli อิสระพวกเขาไม่จำเป็นต้องมี p เหมือนกันหรือไม่ สิ่งนี้ไม่มีผลกับสิ่งที่คุณทำเพราะมันเป็นเพียงแรงจูงใจให้คุณเข้าใกล้
Michael R. Chernick

1
pXqY

@whuber วิธีการที่ดี! คุณช่วยกรุณาแจ้งให้เราทราบหากมีกระดาษใดที่ฉันสามารถอ้างถึง?
T Nick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.