Hampir setiap kopula bivariat akan menghasilkan sepasang varian acak normal dengan beberapa korelasi nol (beberapa akan memberikan nol tetapi mereka adalah kasus khusus). Sebagian besar (hampir semua) dari mereka akan menghasilkan jumlah yang tidak normal.
Dalam beberapa keluarga kopula, korelasi Spearman (populasi) yang diinginkan dapat dihasilkan; kesulitannya hanya dalam menemukan korelasi Pearson untuk margin normal; itu bisa dilakukan secara prinsip, tetapi aljabar mungkin cukup rumit secara umum. [Namun, jika Anda memiliki korelasi populasi Spearman, korelasi Pearson - setidaknya untuk margin ekor ringan seperti Gaussian - mungkin tidak terlalu jauh dari itu dalam banyak kasus.]
Semua kecuali dua contoh pertama dalam plot kardinal harus memberikan jumlah yang tidak normal.
Beberapa contoh - dua yang pertama keduanya berasal dari keluarga kopula yang sama dengan yang kelima dari contoh distribusi bivariat kardinal, yang ketiga adalah degenerasi.
Contoh 1:
Clayton copula ( )θ = - 0.7
Di sini jumlahnya sangat jelas memuncak dan cukup condong ke kanan
Contoh 2:
Clayton copula ( )θ=2
Di sini jumlahnya sedikit miring. Kalau-kalau itu tidak terlalu jelas bagi semua orang, di sini saya membalik distribusi (yaitu kita memiliki histogram dalam warna ungu pucat) dan melapisinya sehingga kita dapat melihat asimetri lebih jelas:−(x+y)
X∗=−XY∗=−Y
Di sisi lain jika kita hanya meniadakan salah satunya, kita akan mengubah hubungan antara kekuatan skewness dengan tanda korelasinya (tetapi bukan arahnya).
Layak juga bermain-main dengan beberapa kopula berbeda untuk mengetahui apa yang bisa terjadi dengan distribusi bivariat dan margin normal.
Margin Gaussian dengan t-kopula dapat dicoba dengan, tanpa perlu khawatir banyak tentang detail kopula (menghasilkan dari t bivariat berkorelasi, yang mudah, kemudian mentransformasikannya ke margin seragam melalui probabilitas integral transformasi, kemudian mentransformasikan margin seragam ke Gaussian melalui invers cdf normal). Ini akan memiliki jumlah non-normal-tetapi-simetris. Jadi, bahkan jika Anda tidak memiliki paket kopula yang bagus, Anda masih dapat melakukan beberapa hal dengan cukup mudah (misalnya jika saya mencoba untuk menunjukkan contoh dengan cepat di Excel, saya mungkin akan mulai dengan t-kopula).
-
Contoh 3 : (ini lebih seperti apa yang seharusnya saya mulai dengan awalnya)
UV=U0≤U<12V=32−U12≤U≤1UVX=Φ−1(U),Y=Φ−1(V)X+Y
Dalam hal ini korelasi di antara mereka adalah sekitar 0,66.
XY
U(12−c,12+c)c[0,12]V
Beberapa kode:
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")))
Contoh kedua:
#--
# 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))
Kode untuk contoh ketiga:
#--
# Example 3:
u <- runif(10000)
v <- ifelse(u<.5,u,1.5-u)
x <- qnorm(u)
y <- qnorm(v)
hist(x+y,n=100)