For a project, I wish to draw from multivariate skew normal copulas. Initially I thought my approach was correct, but now I believe it's highly unlikely that it's correct.

I've read up about the potential cause of my problem, but am still not too sure how to resolve it. Here was my initial code for the bivariate copula samples:

sampskew2d <- function(n, rho, a)
    {       samp <- rmsn(n, xi=c(0,0), Omega=matrix(c(1,rho,rho,1),nrow=2), alpha=a)
            skewcopsamples <- as.data.frame(samp)
            skewcopsamples[,1] <- psn(skewcopsamples[,1] ,xi=0, omega=1, alpha=a[1])
            skewcopsamples[,2] <- psn(skewcopsamples[,2] ,xi=0, omega=1, alpha=a[2])

As initially I thought that I could just provide a correlation coefficient $\rho$, skewness parameters $\alpha_1,\alpha_2$ and then taking applying the marginal CDFs with respective skewness parameters $\alpha_1,\alpha_2$. An example for $\rho=0.7,\alpha_1=2,\alpha_2=-2$ gives the following plot: Scatterplot of sampskew2d(10000, 0.7, c(-2,2))

However, I realized since it's a copula, the marginals should be uniformly distributed in $(0,1)$, right? So I tried plotting the histograms of both marginals, and did not look uniform at all. Histogram of first marginal, not looking uniform

I read this might have to do with the implementation of the parametrisation, but am not sure how I should resolve this. Any help would be appreciated!

  • $\begingroup$ Please include the library() calls for the package(s) you use. $\endgroup$ – Stéphane Laurent Jun 28 '19 at 12:05
  • $\begingroup$ Apologies, I have added the corresponding library now. $\endgroup$ – PLY Jun 29 '19 at 0:47
  • $\begingroup$ 1) You are right that your histogram proves the function does not meet the definition of a copula and correct to expect a flat histogram. 2) Why did you use a correlation parameter $\rho = 2$? Correlation coefficients are usually between -1 and +1. 3) you seem to be assuming (when you use psn) that the marginal distribution of a multivariate skew normal distribution is again skew normal; but that seems not to be the case according to this paper. $\endgroup$ – olooney Jun 29 '19 at 1:25
  • $\begingroup$ @olooney 2) I accidentally wrote down $\rho=2$, but I really meant to write $\rho=0.7$. I will edit that. 3) I have indeed read that paper and a few others. However if I read correctly, according to Azzalini and Capitanio (2014, p. 130) , it states that the SN family is closed under marginalisation. $\endgroup$ – PLY Jun 30 '19 at 12:39
  • $\begingroup$ Did you find how to sampling from a skew normal copula? $\endgroup$ – Ga13 Sep 30 '20 at 14:44

As my reputation does not allow me to write a comment, I write this as an answer.

This article "Maximum likelihood estimation of skew t-copula" has a very nice and complete R code for skew t-copula which may help you to understand your problem with skew normal copula (I think they are somehow close to each other if the degree of freedom is large!). So, have a look and see if it is helpful. here is the link

  • 1
    $\begingroup$ Thank you! I will look into this. $\endgroup$ – PLY Jun 30 '19 at 12:42
  • $\begingroup$ @PLY I am happy to help :) $\endgroup$ – Mary Jul 1 '19 at 7:41

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.