【问题标题】:Estimate model order of an autoregressive (AR) model估计自回归 (AR) 模型的模型阶数
【发布时间】:2017-05-16 16:26:41
【问题描述】:

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

如何估计此模型顺序以预测拟合的正确性?我知道很少有像AIC,BIC,GIC 这样的标准可以用来估计模型顺序,但在matlab中找不到如何使用它们。任何人都可以帮忙吗?我的输入时间信号是一个[700 129] 矩阵。

非常感谢!

【问题讨论】:

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


    【解决方案1】:

    如果您的信号可靠平滑,您可能只需查看每次试验的自相关函数,然后选择设置顺序作为 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);
    

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2020-10-14
      相关资源
      最近更新 更多