MATLAB 中 ARMA 估计的残差

Residuals from ARMA estimation in MATLAB

我正在尝试使用 MFE 工具箱中的函数 armaxfilter,但出现错误:

>> parameters = armaxfilter(y,1,1,1); ??? Error: File: armaxfilter.m Line: 477 Column: 21 Expression or statement is incorrect--possibly unbalanced (, {, or [.

显然我的代码是正确的,从帮助中的一个例子可以看出: 例子: 要拟合标准 ARMA(1,1),请使用

parameters = armaxfilter(y,1,1,1)

知道哪里出了问题吗? 无论如何,我的目标是从时间序列的 ARMA 模型估计中获取残差,关于替代方法的建议也会有所帮助。

如错误信息所述,问题出在armaxfilter.m。您应该打开该文件并查看在指定行写入了哪些代码。我相信您会在其中看到错误。

查看代码(来自 here),问题可能出在波形符输出上。如果您使用的是不支持 ~ 的旧版本 MATLAB,您可能会遇到您提到的错误。

有一种简单的方法可以检查这一点。在命令行尝试:

[~,idx] = min(1:10)

如果这导致错误,您使用的 MATLAB 版本不支持 ~。如果您想使用该特定代码,则必须升级您的 MATLAB,或者编辑所有文件,以便波浪号示例被某种虚拟变量替换,例如:

[garbage,idx] = min(1:10)