我正在尝试使用MATLAB的pmcov()
函数来计算700 ms长的离散时间信号的功率谱密度估计值(PSD),采样频率为1000 Hz。此函数需要用于生成PSD估计的自回归模型的模型顺序。
如何估算此模型顺序以预测拟合的正确性?我知道有一些标准,例如AIC
,BIC
,GIC
可用于估算模型顺序,但无法找到如何在matlab中使用它们。有人可以帮忙吗?我的输入时间信号是[700 129]
矩阵。
非常感谢!
答案 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);