Error in `freeParam` in fitting of normal copula [R]

182 views Asked by At

I am using R version 3.3.2 and the package copula version 0.999-15 to evaluate the fitting of the normal copula to my data. My data and code are:

Data: https://www.dropbox.com/s/tdg8bfzmy4nd1dd/jumps.dat?dl=0

library(copula)
data <- read.csv(file="jumps.dat", head=F, sep="")

cop_model <- ellipCopula("normal", dim = 2)
m <- pobs(as.matrix(data))
fitCopula(cop_model, m, method = 'mpl')

After I run the code I receive the following error:

Error in `freeParam<-`(`*tmp*`, value = estimate) : the length of 'value' is not equal to the number of free parameters
Calls: fitCopula ... fitCopula.ml -> fitCopStart -> fitCopula.icor ->      freeParam<-
Execution halted

I have no idea what is happening here. The fitting for Clayton and Gumbel is pretty fine. Searching for similar errors in the web, I have found nothing. Reading the documentation (https://www.rdocumentation.org/packages/copula/versions/0.999-15/topics/fitCopula?) for some specificity for ellipCopula, I have found an specific option for posDef, but it did not returns any solution at all.

1

There are 1 answers

0
cag51 On

Old question, but I found this, so will share my solution.

Try to run the following, this is a minimum working example:

library(copula)
print("-----------")
mycop <- ellipCopula("normal", dim=4)
data <- matrix(runif(400), nrow=4)
fitCopula(mycop, t(data))
print("-----------")

For me, this works fine if I open R and type in the lines one by one, but fails if I run as a script with Rscript. The solution is that you need library(methods) as well.

For some reason this worked with copula v0.999-v14, but was broken by v0.999-v16. Alas.