[R] Generate random numbers with nested Archimedean Copula

Kellner ralf.kellner at wiso.uni-erlangen.de
Thu Jul 12 11:36:23 CEST 2012

Hi everybody,

I try to simulate random numbers from a trivariate nested Archimedean
copula. My aim is to correlate two processes with, e.g. theta2, as the so
called child pair and then to correlate these two processes with a third one
with theta1 (parent). This "figure" tries to capture what I am explaining


                     theta2               x1

            x2                  x3

I try to follow McNeil (2006)


with R as the programming language. My code so far is as follows:

n = 10000

tau1 = 0.60
theta1 = (2*tau1)/(1-tau1)

tau2 = 0.80
theta2 = (2*tau2)/(1-tau2)

V1 = rgamma(n, 1/theta1,1)

V2 = rgamma(n, 1/theta2,1)

u1 = runif(n)
u2 = runif(n)
u3 = runif(n)

u = cbind(u2,u3)

#Create bivariate child copula
u.inner = (1-log(u)/V2)^(-1/theta2)

#Child inner generator
u.inner2 =exp(V1 - V1*(1 + (-log(u.inner)/V1))^(theta1/theta2))

#Create parent copula
u.c = cbind(u1,u.inner2)
u.ch = 1/((-log(u.c)/V1) + 1)^(1/theta1)

Kendall's tau between u2,u3 should equal 0.60 and 0.80 among u1,u2 and

My results are 0.60 between u2,u3 but unfortunately 0.87 among u1,u2 and

Does anyone see my mistake or can anyone give me a hint how to create the
nested copula?

Thanks in advance!!! 

View this message in context: http://r.789695.n4.nabble.com/Generate-random-numbers-with-nested-Archimedean-Copula-tp4636276.html
Sent from the R help mailing list archive at Nabble.com.

More information about the R-help mailing list