เกือบทุก ๆ bivariate จะสร้างคู่ของตัวแปรสุ่มปกติที่มีความสัมพันธ์ที่ไม่ใช่ศูนย์ (บางคนจะให้เป็นศูนย์ แต่มันก็เป็นกรณีพิเศษ) ส่วนใหญ่ (เกือบทั้งหมด) จะสร้างผลรวมที่ไม่ปกติ
ในบางครอบครัว copula ต้องการ (ประชากร) สหสัมพันธ์สเปียร์แมนสามารถผลิต; ความยากลำบากในการค้นหาความสัมพันธ์ของเพียร์สันสำหรับระยะขอบปกติเท่านั้น เป็นไปได้ในหลักการ แต่พีชคณิตอาจจะค่อนข้างซับซ้อนโดยทั่วไป [อย่างไรก็ตามหากคุณมีความสัมพันธ์ของประชากรสเปียร์แมนความสัมพันธ์ของเพียร์สัน - อย่างน้อยสำหรับระยะขอบเทลด์แบบเบาเช่นเกาส์เซียน - อาจไม่ไกลจากในหลาย ๆ กรณี]
ทั้งหมด แต่ตัวอย่างสองตัวอย่างแรกในพล็อตของพระคาร์ดินัลควรให้ผลรวมที่ไม่ปกติ
บางตัวอย่าง - สองอันแรกนั้นมาจากตระกูลโคคูล่าเดียวกันกับลำดับที่ห้าของการแจกแจงตัวอย่างแบบ bivariate ตัวอย่างที่สามคือความเสื่อม
ตัวอย่างที่ 1:
θ = - 0.7
ที่นี่ผลรวมนั้นแหลมมากอย่างชัดเจนและเอียงค่อนข้างถูก
ตัวอย่างที่ 2:
θ=2
−(x+y)
X∗=−XY∗=−Y
ในทางกลับกันถ้าเราเพียงแค่ลบล้างหนึ่งในนั้นเราจะเปลี่ยนความสัมพันธ์ระหว่างความแข็งแกร่งของความเบ้กับเครื่องหมายของความสัมพันธ์ (แต่ไม่ใช่ทิศทางของมัน)
มันคุ้มค่าที่จะได้เล่นกับ copulas ที่แตกต่างกันสองสามอย่างเพื่อรับรู้ว่าอะไรจะเกิดขึ้นกับการกระจายตัวแบบไบวาริเอทและระยะขอบปกติ
ส่วนต่างของ Gaussian กับ t-copula สามารถทดลองได้โดยไม่ต้องกังวลกับรายละเอียดของ copulas (สร้างจากความสัมพันธ์ bivariate t ซึ่งง่ายจากนั้นเปลี่ยนเป็นระยะขอบสม่ำเสมอผ่านการแปลงความน่าจะเป็นแบบอินทิกรัล c ผกผันปกติ) มันจะมีผลรวมที่ไม่ปกติ แต่สมมาตร ดังนั้นแม้ว่าคุณจะไม่มี copula-แพ็คเกจที่ดีคุณยังสามารถทำบางสิ่งบางอย่างได้อย่างง่ายดาย (เช่นถ้าฉันพยายามแสดงตัวอย่างที่น่าสนใจใน Excel ฉันอาจเริ่มด้วย t-copula)
-
ตัวอย่างที่ 3 : (นี่เป็นสิ่งที่ฉันควรเริ่มต้นด้วย)
UV=U0≤U<12V=32−U12≤U≤1UVX=Φ−1(U),Y=Φ−1(V)X+Y
ในกรณีนี้ความสัมพันธ์ระหว่างพวกเขาประมาณ 0.66
XY
U(12−c,12+c)c[0,12]V
บางรหัส:
library("copula")
par(mfrow=c(2,2))
# Example 1
U <- rCopula(100000, claytonCopula(-.7))
x <- qnorm(U[,1])
y <- qnorm(U[,2])
cor(x,y)
hist(x,n=100)
hist(y,n=100)
xysum <- rowSums(qnorm(U))
hist(xysum,n=100,main="Histogram of x+y")
plot(x,y,cex=.6,
col=rgb(0,100,0,70,maxColorValue=255),
main="Bivariate distribution")
text(-3,-1.2,"cor = -0.68")
text(-2.5,-2.8,expression(paste("Clayton: ",theta," = -0.7")))
ตัวอย่างที่สอง:
#--
# Example 2:
U <- rCopula(100000, claytonCopula(2))
x <- qnorm(U[,1])
y <- qnorm(U[,2])
cor(x,y)
hist(x,n=100)
hist(y,n=100)
xysum <- rowSums(qnorm(U))
hist(xysum,n=100,main="Histogram of x+y")
plot(x,y,cex=.6,
col=rgb(0,100,0,70,maxColorValue=255),
main="Bivariate distribution")
text(3,-2.5,"cor = 0.68")
text(2.5,-3.6,expression(paste("Clayton: ",theta," = 2")))
#
par(mfrow=c(1,1))
รหัสสำหรับตัวอย่างที่สาม:
#--
# Example 3:
u <- runif(10000)
v <- ifelse(u<.5,u,1.5-u)
x <- qnorm(u)
y <- qnorm(v)
hist(x+y,n=100)