Matlab对自由度的置信区间

时间:2015-05-24 12:56:09

标签: matlab confidence-interval

我想在Matlab中计算置信区间以及我的自由度(DOF)估计。我试图运行以下代码行:

[R, DoF, ciDOF] = copulafit('t', U); % fit the copula

没有“ciDOF”参数的代码行需要1-3个小时才能运行我的数据。我尝试使用“ciDOF”参数多次运行代码,但计算似乎需要很长时间(我在8小时后停止了计算)。没有生成错误消息。

有没有人有过这个论点的经验,并且可以告诉我我应该花多长时间进行计算(我的数据大小是167 * 19)并且我是否正确指定了“ciDOF”参数?

非常感谢您的帮助!

Carolin

1 个答案:

答案 0 :(得分:1)

如果您的数据矩阵U大小为167 x 19,那么您要求的是依赖于19维的copula-fit分布,使您的copula在20维空间中分布有19个因变量。

这几乎肯定是为什么花了这么长时间,因为无论是否是你的意图,你要求MATLAB解决一个最小化问题,即采用19个边际分布并提出19变量联合分布( copula)其中每个边际分布(由167 x 1行向量表示)是均匀的。

这很可能是MATLAB实现的一个限制,它通过许多独立的计算迭代,然后尝试将它们组合在一起以适应联合分布的理想条件。

首先 - 不要侮辱或暗示 - 你一定要检查你是否真的想找到一个19变量的copula。此外,为了以防万一,请确保您的矩阵U以正确的方式定向,因为如果您将其转置,则可能会尝试请求167变量分布的解决方案。

但是,如果这是你实际上要做的事情,那么实际上并没有一种简单的方法来预测需要多长时间或需要多长时间。即使有多个维度,如果您的边缘已经很简单或一致,那么这将大大减少copula计算。但是,真的,没有办法说出来。

虽然这看起来像是一个副作用,但实际上你可能有更好的运气从MATLAB切换到R,特别是如果你有很多多变量数据,你可能会发现R中的功能比MATLAB多得多。 R是免费提供的,并附带图形用户界面(GUI),以防您对命令行编程感到不舒服。

还有更多来源,但这里有一篇关于计算copula-fit的PDF讲座:

http://faculty.washington.edu/ezivot/econ589/copulasPowerpoint.pdf