Hemen hemen her iki değişkenli kopula, bazı sıfır olmayan korelasyonlarla bir çift normal rasgele değişken üretecektir (bazıları sıfır verecektir, ancak bunlar özel durumlardır). Çoğu (neredeyse hepsi) normal olmayan bir miktar üretecektir.
Bazı kopula ailelerinde arzu edilen herhangi bir (popülasyon) Spearman korelasyonu üretilebilir; zorluk sadece normal marjlar için Pearson korelasyonunu bulmaktır; prensip olarak yapılabilir, ancak cebir genel olarak oldukça karmaşık olabilir. [Ancak, nüfus Spearman korelasyonunuz varsa, Pearson korelasyonu - en azından Gaussian gibi hafif kuyruklu marjlar için - çoğu durumda bundan çok uzak olmayabilir.]
Kardinal planındaki ilk iki örnek hariç tümü normal olmayan toplamlar vermelidir.
Bazı örnekler - ilk ikisi, kardinalin örnek iki değişkenli dağılımlarının beşinci ile aynı kopula ailesinden, üçüncüsü dejenere.
Örnek 1:
θ = - 0.7
Burada toplam çok belirgin bir şekilde zirve yapıyor ve oldukça güçlü bir çarpıklık
Örnek 2:
θ=2
−(x+y)
X∗=−XY∗=−Y
Öte yandan, bunlardan sadece birini reddedersek, çarpıklığın gücü ile korelasyonun işareti arasındaki ilişkiyi değiştirirdik (fakat yönü değil).
İki değişkenli dağılım ve normal marjlarla neler olabileceğini anlamak için birkaç farklı kopula ile oynamaya değer.
Bir t-kopula ile Gauss marjları, kopulaların detayları hakkında çok fazla endişe duymadan denenebilir (kolay olan korelasyonlu iki değişkenli t'den üretin, sonra olasılık integral dönüşümü ile tekdüze marjlara dönüştürün, ardından tekdüze marjları Gaussian'a dönüştürün. ters normal cdf). Normal olmayan ama simetrik bir toplamı olacaktır. Bu nedenle, güzel kopula paketleriniz olmasa bile, bazı şeyleri oldukça kolay bir şekilde yapabilirsiniz (örneğin, Excel'de şık bir şekilde örnek göstermeye çalışsaydım, muhtemelen t-kopula ile başlardım).
-
Örnek 3 : (Bu başlangıçta başlamam gereken şey gibi)
Standart bir üniforma dayanan bir kopula düşününUV=U0≤U<12V=32−U12≤U≤1UVX=Φ−1(U),Y=Φ−1(V)X+Y
Bu durumda aralarındaki korelasyon yaklaşık 0.66'dır.
XY
U(12−c,12+c)c[0,12]V
Bazı kodlar:
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")))
İkinci örnek:
#--
# 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))
Üçüncü örneğin kodu:
#--
# Example 3:
u <- runif(10000)
v <- ifelse(u<.5,u,1.5-u)
x <- qnorm(u)
y <- qnorm(v)
hist(x+y,n=100)