正常copula拟合中的“freeParam”错误[R]

时间:2016-12-18 14:20:39

标签: r model-fitting

我正在使用R版本3.3.2和包copula版本0.999-15来评估正常copula对我的数据的拟合。我的数据和代码是:

数据: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')

运行代码后,我收到以下错误:

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

我不知道这里发生了什么。克莱顿和Gumbel的配件非常好。在网上搜索类似的错误,我一无所获。阅读文档(https://www.rdocumentation.org/packages/copula/versions/0.999-15/topics/fitCopula?)以了解ellipCopula的某些特异性,我找到了posDef的特定选项,但它根本没有返回任何解决方案。

1 个答案:

答案 0 :(得分:0)

老问题,但我找到了,所以将分享我的解决方案。

尝试运行以下命令,这是一个最小的工作示例:

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

对我来说,如果我打开R并逐行输入行,这可以正常工作,但如果我作为带有Rscript的脚本运行则会失败。解决方案是您还需要library(methods)

由于某些原因,这适用于copula v0.999-v14,但被v0.999-v16打破了。唉。