Quase qualquer cópula bivariada produzirá um par de variáveis aleatórias normais com alguma correlação diferente de zero (algumas darão zero, mas são casos especiais). A maioria (quase todos) produzirá uma soma não normal.
Em algumas famílias de cópulas, qualquer correlação de Spearman desejada (população) pode ser produzida; a dificuldade é apenas encontrar a correlação de Pearson para margens normais; é factível em princípio, mas a álgebra pode ser bastante complicada em geral. [No entanto, se você tiver a correlação de Spearman da população, a correlação de Pearson - pelo menos para margens de cauda leve como o gaussiano - pode não estar muito longe disso em muitos casos.]
Todos os dois primeiros exemplos do enredo do cardeal, com exceção dos dois primeiros, devem fornecer somas não normais.
Alguns exemplos - os dois primeiros são da mesma família de cópulas que o quinto exemplo de distribuição bivariada do cardeal, o terceiro é degenerado.
Exemplo 1:
Cópula de Clayton ( )θ = - 0,7
Aqui a soma tem um pico muito distinto e uma inclinação bastante forte
Exemplo 2:
Cópula de Clayton ( )θ = 2
Aqui a soma é levemente inclinada. Caso isso não seja muito óbvio para todos, aqui eu virei a distribuição (ou seja, temos um histograma de em roxo claro) e sobrepondo-o para que possamos ver a assimetria mais claramente:- ( x + y)
X∗= - XY∗= - Y
Por outro lado, se negarmos um deles, mudaríamos a associação entre a força da assimetria com o sinal da correlação (mas não a direção da mesma).
Também vale a pena brincar com algumas cópulas diferentes para entender o que pode acontecer com a distribuição bivariada e as margens normais.
As margens gaussianas com uma cópula t podem ser experimentadas, sem se preocupar muito com detalhes de cópulas (gerar a partir de bivariada correlacionada t, o que é fácil, depois transforme em margens uniformes por meio da transformação integral de probabilidade, depois transforme margens uniformes em gaussiano via cdf normal inverso). Ele terá uma soma não normal, mas simétrica. Portanto, mesmo se você não tiver bons pacotes de copula, ainda poderá fazer algumas coisas com bastante facilidade (por exemplo, se eu estivesse tentando mostrar um exemplo rapidamente no Excel, provavelmente começaria com o t-copula).
-
Exemplo 3 : (é mais parecido com o que eu deveria ter começado inicialmente)
vocêV= U0 ≤ U< 12V= 32- U1 12≤ U≤ 1vocêVX= Φ- 1( U) , Y= Φ- 1( V)X+ Y
Nesse caso, a correlação entre eles é de cerca de 0,66.
XY
você( 12- c , 12+ c )c[ 0 , 12]V
Algum código:
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")))
O segundo exemplo:
#--
# 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))
Código para o terceiro exemplo:
#--
# Example 3:
u <- runif(10000)
v <- ifelse(u<.5,u,1.5-u)
x <- qnorm(u)
y <- qnorm(v)
hist(x+y,n=100)