# Fitting a multivariate T Copula to three variables in R

I have three variables with correlation coefficient of respectively 0.3; -0.2 and 0.1. I want to fit a T copula but when I use the fitCopula function it gives me a single value for rho, which leads to a poor fit to the data.

 zCop<-tCopula(dim=3)
set.seed(500)
m <- pobs(as.matrix(cbind(IG, HY,GOV)))
fit <- fitCopula(zCop,m,method='ml')
coef(fit)

rho.1         df
0.06940047 6.30347241


I have tried to fit bivariate copulas for each couple, and in that case the rho is close to the empirical one, but I get very different results for the df which can only be a single parameter.

When I do IG,HY I get the following, which is close to the empirical correlation:

zCop<-tCopula(dim=2)
set.seed(500)
m <- pobs(as.matrix(cbind(IG,HY)))
cor(m, method="spearman")

fit <- fitCopula(zCop,m,method='ml')
coef(fit)
rho.1         df
0.3417333 10.6678394


I wonder whether I could impose the correlation structure and then use the df estimated from the multivariate copula (6.3 here) as down below (weher coef1 is the rho fitted for IG-HY, coef2 for IG-GOV and coef3 for HY-GOV)

u <- rCopula(3965,tCopula(dim=3,c(coef1,coef2,coef3),df=6.3,dispstr='un'))


I wonder whether I could use this:

zCop<-tCopula(dim=3, dispstr = 'un')
set.seed(500)
m <- pobs(as.matrix(cbind(IG, HY,GOV)))
fit <- fitCopula(zCop,m,method='itau.mpl')
coef(fit)

rho.1       rho.2       rho.3          df
0.33823924 -0.19170082  0.07088704 13.89581598

• What is matrix 'm' return? – Nick Aug 14 '19 at 4:32
• matrix M is the matrix created by converting data from IG, HY amd GOV into pseudo observations, see also (stats.stackexchange.com/questions/355085/…) – Sabotar Aug 26 '19 at 15:01