【发布时间】:2022-07-14 21:25:54
【问题描述】:
当我尝试对不同的 copula 进行 AIC 测试时,R 不断给我这个错误消息。
Error in optim(start, logL, lower = lower, upper = upper, method = optim.method, :
non-finite value supplied by optim
但在我的代码中,我没有使用函数 optim 并且有些给出了其他警告。
Warning in fitCopula.ml(copula, u = data, method = method, start = start, : possible convergence problem: optim() gave code=52
错误消息给出了 NA 结果,而警告消息给出了似乎在正确轨道上的数字。
这是我的代码。
AIC.result <- function(EC,copulafunction){
AIC<- matrix(nrow=length(colnames(EC)),ncol=length(colnames(EC)),byrow=T)
for (i in 1:length(colnames(EC))) {
for (j in 1:length(colnames(EC))) {
if(i==j){
AIC[i,j] <-1
}else{
u <- pobs(as.matrix(EC[,i]))
v <- pobs(as.matrix(EC[,j]))
fit<- fitCopula(copulafunction, cbind(u,v),method="ml")
AIC[i,j] <-AIC(fit)
}
}
}
mean((AIC-length(colnames(EC)))/2)
}
EC是不同国家的回报,copulafunction是不同类型的copula。 Clayton copula 和旋转的 Clayton copula 给出了错误信息,而其余的则给出了警告信息。就我而言,最奇怪的是,EC 包含 7 个国家,而且运行顺利。当我向有 6 个国家的 DC 申请时,错误和警告来了。有人知道为什么吗?
【问题讨论】:
-
嗨,欢迎来到 SO。您需要提供更多细节以增加获得有用答案的机会。 (i) 指明 (
library(package)) 运行该功能所需的所有包; (ii) 描述(dput( )或str( ))数据。
标签: r