估计自回归(AR)模型的模型顺序

时间:2017-05-16 16:26:42

标签: matlab signal-processing autoregressive-models spectral-density

我正在尝试使用MATLAB的pmcov()函数来计算700 ms长的离散时间信号的功率谱密度估计值(PSD),采样频率为1000 Hz。此函数需要用于生成PSD估计的自回归模型的模型顺序。

如何估算此模型顺序以预测拟合的正确性?我知道有一些标准,例如AICBICGIC可用于估算模型顺序,但无法找到如何在matlab中使用它们。有人可以帮忙吗?我的输入时间信号是[700 129]矩阵。

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您的信号可靠地平滑,您可能只需查看每个试验的自相关函数,并选择将订单设置为ACF开始衰减时的滞后。

autocorr(Y);

如果你想获得更多的定量拟合(这可能比眼球和129个信号更容易)。您可以安装AR模型

您要做的第一件事就是选择您要评估的订单范围(我会查看ACF的几个信号并选择ACF中相对没有信号的订单)。

bounds = 1:12; % Order bounds

现在,您将遍历每个订单的可能性并计算AIC,BIC。较低的值==更适合。

for p = bounds
   myModel = arima(p,0,0);      % no moving average (I'm not sure about no MA...)
   for sig_ind = 1:size(sig_mat,2)
        % Get the log likelihoods
        [~,~,LL(p,sig_ind)]= estimate(myModel,sig_mat(:,sig_ind));
    end
end
for sig_ind = 1:size(sig_mat,2)
    [aic(sig_ind,:),bic(sig_ind,:)] = aicbic(LL(:,sig_ind),bounds,size(sig_mat,1));
end

所以现在你想要选择最低的BIC分数。 在这种情况下,如果你愿意,我会使用信号的平均值 真的小心我会看看分布并选择一个低点 中位数,分布紧张。您也可以使用AIC进行评估。

[~,order_ind] = min(mean(bic,1));
order = bound(order_ind);