我会尝试iterate 来回答,但由于讨论的分支如此之多,我更喜欢直接访问这种格式。不管是什么意思,这是一个建设性的过程,因为这个论坛的目的是......
之前的一些“澄清”:
EstSpec.Q after 和 before 运行命令 vgxvarx 的输出协方差非常相似。因此,命令正在输出他对自身的期待。
作为输出协方差 - 或 Q 参数的任何其他含义 - 几乎永远不会成为要使用的参数的“掩码”,即一个单位或一个稀疏的零一矩阵输入参数-。如果您可以将其分配为对角线乘以某个标量,则单变量标量是不同的历史。很明显,这是一个协方差,就像在其他 MATLAB 命令中一样。
因此:
(2) 对于此类基本参数,是否有我找不到的 Matlab 参考文档?
不,Matlab 通常不会对“非流行”命令进行进一步解释。是的,在某种程度上,这是“不受欢迎的”,所以如果这个问题的答案是否定的,我不会留下深刻的印象。
当然,博士的方法是检查提供的参考文献,在这种情况下,那些在doc vartovec下提供。我不知道在哪里可以找到没有订购书籍寻找合适的图书馆或在五分钟内寻找整个互联网......
因此,晦涩难懂的方法总是更好...通过执行edit vgxvarx 检查函数的代码。检查注释部分% Step 7 - Solve for parameters(第 515 行,Matlab R2014b)。通过函数mvregress 可以计算Q 矩阵。至此,我们俩都知道了,这是核心功能。
这个mvregress函数(第62行,Matlab R2014b)接收一个名为Covar0的输入参数,它被描述为*D-by-D matrix to be used as the initial estimate for SIGMA*。
这个前提导致 (1) 的答案。
(1) Q 到底是什么?
MATLAB 代码有几十个开关——既作为选项又是自动触发的——所以我实际上不确定你对哪种算法感兴趣,或者根据你的数据,哪些算法实际上是“触发的”:) .请阅读上一个答案,并在mvregress函数上放置一个调试点:
Covar=Covar+CovAdj; %Line 433, Matlab R2014b
和/或在:
Covar = (Covar + Resid'*Resid) / Count; % Line 439, Matlab R2014b
因此,Q 的确切含义,如 mvregress 帮助所示,将是“用于估计输出协方差矩阵的初始矩阵强>”。平均值只是通过平均Counts...
但是,对于提供的数据,制作:
Spec.Q=[1 0.1;0.1 1];
然后运行vgxvarx,参数Covar 从未被初始化!
对于所提出的不幸情况,这导致了一个简单的“未使用参数”。
(3) 如果不是噪声源的协方差矩阵,如何实际向模型提供实际的噪声源协方差?
我已经浪费了大量的工时试图从预建的Matlab 命令中收集正确的信息。因此,我在这里的建议是坚持系统识别的概念,并且我会相信以下替代方案之一:
继续相信,并在mvregress函数内部进行挖掘和调试,并检查EstMethods中是否有一些 -i.e. cwls ecm mvn 在第 195 行下 - 导致正确填充 Covar0 参数,
坚持使用vgxvarx 命令,但不使用Q 参数,然后对角化|对数据进行适当的归一化,以便让算法将数据识别为同分布的高斯噪声,
发送vgxvarx 到地狱,并使用arx。我不确定vgxvarx 目前的稳定性,但我很确定arx 在这方面应该更“稳定”...
祝你好运,
hypfco.
编辑
一个巨大而全面的评论,我没有什么要补充的。
- 确实,
vgxvarx 很可能是在 Matlab 数据样本上运行的。因此,结果得到了解释,
- 我尝试使用
vgxvarx 上的Q 参数,但目前没有成功。如果找到任何工作代码,包含它会很有趣,
-
对数据进行噪声变换的实现应该非常简单,形式如下:
Y1=(Y-Y0)*L
用L 左三角cholesky 为Y 的逆计算协方差和Y0 均值,
- 我认为
MA 部分与AR 部分一样重要。除非您有充分的理由,否则您通常不能说您以高斯方式解释了您的数据。
- 从您的最后一条评论开始,我真的建议您使用更好、更成熟的命令来执行
AR、MA、ARMA 和此类风格。我很确定他们会处理 MV 案...
- 再说一次,
Matlab 不要让我对这种行为印象深刻...
干杯...
hypfco