生成相关样本与连系动词:问题/错误通过使用“copulafit”

16个视图(30天)
大家好,
我需要生成样品的实际测量数据对教学一种无监督的机器学习算法。灵感来自于文档中的例子( :页面的链接的文档 我想通过这样做 copulafit
在以下代码中,变量 是一个m×n矩阵( m:样品,大小:231和n:不同指标的分布、大小:16 )。这些231 measurementsets我想产生2500(变量“nSample”)和样品从属的16个不同的分布。
错误信息:
通过执行代码,在命令行中显示有以下错误:“错误copulafit(第125行)[lowerBnd upperBnd] = bracket1D (profileFun lowerBnd 5);%的上层,搜索提升从5
错误SimulatingDependentRandomVariablesUsingCopulas3(13号线)(ρ,ν)= copulafit (t, u,‘法’,‘ApproximateML’)”
我的代码:
% %显示数据集的分布
plotmatrix(条)
% %转换数据的接合部规模(单位平方)使用一个内核累积分布函数的估计量。
i = 1:尺寸(2条)
u (:, i) = ksdensity(条(:,我),条(:,我)“函数”,“提供”);
结束
% plotmatrix (u,“方向”、“了”)
% %适合“t”连系动词。
(ρ,ν)= copulafit (“t”u“方法”,“ApproximateML”)
% %生成一个随机样本的接合部。
r = copularnd (“t”ρ,ν,1000);
u1 = r (: 1);
v1 = r (:, 2);
scatterhist (u1, v1,“方向”,“出”)
包含(“u”)
ylabel (“v”)
集(get (gca),“孩子”),“标记”,“。”)
% %将随机样本回到原始数据的规模。
x1 = ksdensity (x, u1,“函数”,“icdf”);
日元= ksdensity (y, v1,“函数”,“icdf”);
scatterhist (x1, y1,“方向”,“出”)
集(get (gca),“孩子”),“标记”,“。”)
我很感激你的帮助和支持,非常感谢。万博1manbetx
乔纳斯
2的评论
rowJoe
rowJoe 2015年7月27日
编辑:rowJoe 2015年7月27日
嗨,汤姆,
非常感谢你的评论。这是错误信息:
错误使用copulafit / approxProfileNLL_t(第290行)
估计的ρrank-deficient。你可能有数据太少,或强大的变量之间的依赖关系。
错误在copulafit > bracket1D(第489行)oldnll = nllFun(绑定);
错误在copulafit(第125行)
[lowerBnd, upperBnd] = bracket1D (profileFun lowerBnd 5);%的上层,搜索提升从5
错误在SimulatingDependentRandomVariablesUsingCopulas3(14)行
(ρ,ν)= copulafit (“t”u“方法”,“ApproximateML”)
另外,我附加文件”exampleData。垫条“包含矩阵的一个例子。

登录置评。

答案(1)

舒如提Sapre
舒如提Sapre 2015年7月29日
编辑:舒如提Sapre 2015年7月29日
嗨,乔纳斯,
我明白,你是收到一个错误在使用“copulafit”功能与你的数据。
这个错误是由于共线性的输入数据;在这种情况下,由于存在重复的列。矩阵的秩(14)小于列数的矩阵(16)。
可以观察到这些奇异点通过计算矩阵的特征值,使用以下命令:“条”
> > [V D] = eig (corr(条)
> >特征值=诊断接头(D)
> >特征值(找到(abs(特征值< 10 ^ (-16))))
你可以观察到有一些特征值小于10 ^ -16;的上下文中有效机零样本协方差/相关矩阵。因此,基于线性代数精度和机器,一些列的“条”被视为一个线性组合的其他的人。
修改矩阵,使其秩等于列数/指标变量可以帮助解决你的问题。
希望这可以帮助!
舒如提

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!