Let C be a Gaussian or Student copula and F1,...,Fd the empirical margins.


I know how to draw from C and get $(u_1,...,u_d)$

Imagine that I know $u_1$ and $u_2$. I was wondering how I can sample from C conditional on $u_1$ and $u_2$. I don't expect a closed form formula as I have no expression for F1,...,Fd but how would you 'numerically' generate a serie of conditional draws from C?

I have found the following code in R :


However, I tried it with a gaussian copula and assumed I knew $u_1$ and $u_2$ :

normal <- normalCopula(c(0.8, 0.8, 0.8), dim = 3, dispstr = "un")
u1 <- 0.8
u2 <- 0.1
draws <- cCopula(cbind(u1, u2, runif(10000)), copula = normal, inverse = TRUE)

plot(density(qnorm(draws[,3]))) # it's a normal, OK

The last line displays a normal, which is OK for a gaussian copula and gaussian marginals. However, in the conditional draws, the second value is always equal to 0.4619 instead of 0.1 as I would expect. That is why I plan to write my own fuction but I'm not sure where I should start.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.