I am trying to estimate the joint distribution of stock returns using the copula package. I have read a couple of papers on copulae, but alas my lack of math knowledge prevents me from understanding beyond the basics if that! I am thinking of estimating the joint distribution using the following steps and have a couple of questions about the process in general:

  1. Download stock prices for two companies
  2. Convert prices to continuous returns
  3. Transform returns to marginal uniform distribution.
    1. How do I do this??
  4. Create the copula object
    1. When creating the Copula object using ellipCopula() or archmCopula(), I need to specifiy the type of copula and the parameters. How do I know which copula to use? And how do I obtain the parameters... I thought the point of fitting a copula to the data was to obtain the estimated parameters, so why do I need to specify here? Am I just providing initial estimates of the parameters which are then corrected in the actual fitting?
  5. Specifiy the bivariate distribution
    1. When specifying the bivariate distribution, I need to specify the margins in mvdc(), since, according to a number of sources, I should convert the data (returns) to uniform distributions, do I specify the margins as 'unif' in the function?
  6. Define the data to be fitted
    1. I am assuming the will be a matrix with 2 columns in this case, each column being the uniforms
  7. Fit the data

As you can see I am very new at this and any help would be greatly appreciated!

  • $\begingroup$ could you please share the s-plus or the R code? I am facing the same problem at the moment... Many thanks in advance! $\endgroup$
    – user8239
    Commented Dec 28, 2011 at 21:46

1 Answer 1


Check out A Short, Comprehensive, Practical Guide to Copulas by Atillio Meucci. The paper provides further references in case you'd like to learn more. Steps #3 and #5 are addressed by this paper.

Step #4 is specific to this particular function which I am not too familiar. Since you have so many questions you'd probably have better success breaking down the problem into related parts. You will be in a better place to frame question #4 after some further background reading. As such you really can't answer the question without going into the background of copulas.

There are parametric and non-parametric methods to estimating copulas. In my view, parametric copulas impose tight restrictions that are not respected by the data (non-stationarity, fat tails, etc.). More recent research on time-varying copulas and Meucci's non-parametric copulas I believe can better cope with these issues.

  • $\begingroup$ Thank you for the response! After rummaging around i have found an S-plus version of what i want to do and am almost finished porting it to R. I do need to understand more about the theories underlying copulae! And thanks for the link $\endgroup$
    – LonelyBear
    Commented Dec 8, 2011 at 11:50
  • $\begingroup$ @LonelyBear Can you please register your account on SO and go back here? This way you will be able to take ownership of your question and be able to comment in its thread. $\endgroup$
    – user88
    Commented Dec 8, 2011 at 13:24
  • $\begingroup$ What a fantastic link you have shared. For those of you wondering, Meucci's "Practical Guide" really is practical. Assumes very little about the reader, doesn't reek of rigor (laugh), and great visualizations too. $\endgroup$
    – JoseOrtiz3
    Commented Nov 17, 2018 at 4:34

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