我正在尝试使用MATLAB的Dynamic Copula Toolbox v 3.0。但是,无论尝试什么,我都会不断遇到有关数据类型和下标的错误(已经尝试使用单元格和表而不是数据集)
我已经有我的PIT(先前估计)。到目前为止,我必须遵循以下代码:
aex = uniforms('AEX'); aex = aex(:,2);
mbi = uniforms('MBI10'); mbi = mbi(:,2);
uniforms
是一个containers.Map()
对象,具有每日日志返回和日期作为table
类对象。为了仅保留PIT值并摆脱时间戳记日期,我使用aex=aex(:,2)
和mbi=mbi(:,2)
。 AEX和MBI是两个股市指数
以下各行将它们转换为dataset
数组,因为该文档似乎使用了dataset
data = dataset();
data(:,1) = table2dataset(aex);
data(:,2) = table2dataset(mbi);
(https://nl.mathworks.com/matlabcentral/fileexchange/29303-dynamic-copula-toolbox-3-0)
但是,当我按照文档中的建议运行spec = modelspec(data)
并选择Copula-> Clayton-> Static时,会发生以下错误:
spec = modelspec(data)
Error using dataset/subsrefParens (line 9)
Dataset array subscripts must be two-dimensional.
Error in dataset/subsref (line 69)
[varargout{1:nargout}] = subsrefParens(a,s);
Error in corr (line 192)
complexdata = ~(isreal(x) || all(imag(x(:))==0));
Error in modelspec (line 153)
xxx = corr(data,'type','Kendall');
两个PIT索引向量的长度相同,而nDims(data)
为2692x2
我们非常感谢您的帮助!