我试图在 R 中使用 rMvdc 来实现双变量 copula。 我已经拟合了边距并通过
选择了一个copularc_cop <- BiCopSelect(p_cols_buck,p_rows_buck,familyset=NA)
(2) 接下来,我得到这个拟合的参数...:
if (rc_cop$family == 1) {
mycop <- normalCopula(param = rc_cop$par, dim = 2)
}
(... various copulas ...)
if (rc_cop$family == 234) {
mycop <- VC2copula::r270TawnT2Copula(param = c(rc_cop$par,rc_cop$par2))
}
使用边距和连接词,我正在创建:
mycopula <- mvdc(mycop,
margins=c(rows_db,cols_db),
paramMargins=list(rows_param,cols_param))
到这里为止,一切正常。 通过
创建“mycopula”的实现时发生错误sim <- rMvdc(nsim, mycopula)
如果利润率之一恰好是 Beta 分布的
我收到其中一个边距中缺少“shape2”的错误:
Fehler in qbeta(x, mvdc@paramMargins[[i]]) :
Argument "shape2" fehlt (ohne Standardwert)
然而,情况不应该如此。 实际上,shape2 就在那里,其值约为 10.31:
> mycopula
Multivariate Distribution Copula based ("mvdc")
@ copula:
surTawnT2Copula copula, dim. d = 2
Dimension: 2
Parameters:
param1 = 2.4165321
param2 = 0.1400699
@ margins:
[1] "beta" "weibull"
with 2 (not identical) margins; with parameters (@ paramMargins)
List of 2
$ : Named num [1:2] 2.276298 10.308464
..- attr(*, "names")= chr [1:2] "shape1" "shape2"
$ : Named num [1:2] 8.4683497 0.1820915
..- attr(*, "names")= chr [1:2] "shape" "scale"
我猜这是 mvdc 中的数值问题,但我不知道如何解决或规避该问题。 我目前只开始 R 编程,所以很可能答案实际上很简单......