Using R, I am attempting to fit data for 3 stock indices using 3 Archimedean copulas, Frank, Gumbel or Clayton. What are their parameters?

In class, we were taught to fit a t copula. Its parameters come from getting the correlation matrix (see last two lines of codes below).

This, this and this don't seem to help, I think. In the examples, there are some numbers plugged in to the copulas, but I don't really see how to determine the numbers to use? Help please?














t.cop=tCopula(c(0.12,0.08,0.005), dim=3,dispstr="un",df.fixed=F)

  • 1
    $\begingroup$ When you say "what are their parameters?" what do you want to know about them? Have you looked at the vignette for the package? $\endgroup$ – Glen_b -Reinstate Monica Oct 16 '14 at 5:31
  • 1
    $\begingroup$ You've basically only repeated what you already said. If I explain what I think you want, I will no doubt largely repeat information you've already read. Sometimes copulas might be estimated by ML, or by equating sample and population Kendall's tau (a method-of-moments-like estimator), or in a number of other ways. The special structure of Archimedean copulas means there's a large number of ways to estimate their parameters. This paper gives Kendall's $\tau$ in terms of $\theta$ for these cases, so you could back out $\hat\theta$ (see table 2), ... $\endgroup$ – Glen_b -Reinstate Monica Oct 16 '14 at 5:47
  • 1
    $\begingroup$ ... and describes ML for them as well. Some of that information is also in the vignette I mentioned before (which is why I asked if you'd read it). The parameters all represent strength of association in some sense, but they don't necessarily correspond directly to some naturally interpretable sample quantity. $\endgroup$ – Glen_b -Reinstate Monica Oct 16 '14 at 5:48
  • 1
    $\begingroup$ The theta's correspond directly the the parameters of the functions. For example, (if I have this right), the Clayton copula has the form $C_\theta(u,v)=\max\left([u^{-\theta}+v^{-\theta}-1]^{-1/\theta},0\right)$. Table 2 in the paper I linked to gives Kendall's tau as $\tau = \frac{\theta}{\theta+2}$. So if you used Kendall's tau to estimate $\theta$ in the Clayton, you would equate $\frac{\hat{\theta}}{\hat{\theta}+2}$ with the sample Kendall tau, $\hat{\tau}$ and solve for $\hat{\theta}$. $\endgroup$ – Glen_b -Reinstate Monica Oct 16 '14 at 6:31
  • 1
    $\begingroup$ (Error fixed) To my recollection, the bivariate copulas have one parameter. When you say three parameters, I assume you mean you have three variables? Then you need to use the properties of the Archimedean generator to build up a trivariate copula. There's a number of ways to construct things that can make specification/estimation of Archimedean copulas relatively simple. [But in any case, the Kendall tau(/method-of-moments-like) approach is also one of many - if you read the things I pointed to, or even just my earlier comments, you'll have seen that already. You don't have to use that one.] $\endgroup$ – Glen_b -Reinstate Monica Oct 16 '14 at 21:55

If you are asking for the parameters, you might not have seen the table in the section "Archimedean copulas" in the wikipedia entry on copulas (taken from Nelsen's introductory book). There, you will find the parameter spaces for a few Archimedean copulas including Frank, Gumbel and Clayton. You will realize that they are quite different and are not easy interpretable values such as the correlation matrix used for the t or Gaussian copula families. In the first place, they are just some arbitrary parameters - nothing more. In some cases, 1-1 relationships between a copula's parameter and Kendall's tau or Spearman's rho exist allowing for a re-parameterisation into an easier interpretable parameter space.

A limitation of higher (d>2) dimensional Archimedean copulas is that they still only have a single parameter that determines all dependencies in the d-dimensional data set. Hence they lack flexibility compared to t and Gaussian copulas that would e.g. take 3 correlation values for d=3. Nevertheless, the Archimedean copulas might in some cases still provide a better fit.

When it comes to estimation, as pointed out in other replies to your question, maximum likelihood estimation is the most frequently used approach. You will find an implementation of different estimation techniques bundled in the fitCopula function of the copula package in R. Take a look at the help page (?fitCopula) and try a few of the presented examples, this should enable you to use it for your own data set.

If you managed to get single family fits for your data set but are not yet satisfied (or just curious), I recommend to take a look at vine copulas (introduced as pair-copula construction and implemented in the VineCopula R package). Vine copulas allow to mix arbitrary bivariate copulas following a regular vine to build multivariate copulas.

| cite | improve this answer | |

In general, you can fit any copula by maximizing the likelihood of its density:

  1. Compute empirical marginals: $$\hat{F}_i(x_{it})=\dfrac{\#x_i\leq x_{it}}{T},\qquad t = 1...T,\,\,i = 1...n$$
  2. Copula ML: $$\max_{\theta_c\in\Theta_c} \,\, l(\theta_c)=\sum_{t = 1}^{T}\ln \, c(\theta_c|\hat{F}_1(x_{1t}),\dots,\hat{F}_n(x_{nt}))$$

$\theta_c$ is the Copula parameter set you want to estimate.

| cite | improve this answer | |
  • $\begingroup$ thanks but my goal is not to fit copulas by writing. I want to use R. I got the data of the stock indices...now what? For t copula all I have to do is type cor(uni.dat) and then plug in t.cop=tCopula(c(0.12,0.08,0.005), dim=3,dispstr="un",df.fixed=F)...so what I'm wondering is, what are the "0.12,0.08,0.005" I have to plug in if I want to fit Gumbel, Frank or Clayton? Wait, I think the answer is somewhere else here. Hahaha. But yeah that's what I meant to ask. Sorry if I caused any confusion $\endgroup$ – BCLC Oct 16 '14 at 12:43

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.