3
$\begingroup$

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?


library(copula)

dat=read.csv("index.csv")

hk=dat$Hangseng

jp=dat$Nikkei

cn=dat$SSE

new.dat=data.frame(hk,jp,cn)

new.ts=ts(new.dat)
plot(new.ts)
ret=diff(log(new.ts))
plot(ret)

uni=pobs(ret)

uni

uni.dat=data.frame(uni)

uni.dat

plot(uni.dat)

cor(uni.dat)

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

$\endgroup$
16
  • 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
    Oct 16, 2014 at 5:31
  • 2
    $\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
    Oct 16, 2014 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
    Oct 16, 2014 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
    Oct 16, 2014 at 6:31
  • 2
    $\begingroup$ Ah; according to this paper on using the package, the copula package only offers maximum pseudo-likelihood (mpl) estimation for d>2. If you wanted anything else you'd have to do it by hand. (I was thinking about using something like vine copulas, which you build from bivariate copulas and for which you could use the Kendall approach) $\endgroup$
    – Glen_b
    Oct 16, 2014 at 23:52

2 Answers 2

3
$\begingroup$

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.

$\endgroup$
1
$\begingroup$

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.

$\endgroup$
1
  • $\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, 2014 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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