该模型表示为,
v是零均值的加性高斯白噪声。y = filter(.)命令用于对上述方程进行建模,从而创建 FIR 滤波器或移动平均 (MA) 模型。MA 模型的阶数为p=3。
所以,是 100 个元素的向量。我正在生成方差噪声0.1我想使用 LASSO 估计稀疏通道系数。由于有p通道系数,我应该得到p估计。
根据 LASSO 方程,||rx - y||_2^2 + lambda * ||r||_1我正在估计稀疏系数,r。由于真正的系数数组包含p元素,我应该得到p估计的元素。我不太确定这是否是可行的方法。我还没有找到任何关于 LASSO 应用于单变量时间序列模型(如 ARMA)的示例。我不知道如何使用适当的算法估计稀疏系数,需要帮助。
方程的第一部分:是一个最小二乘公式,我可以使用最小二乘法求解。为了实现 LS,我必须根据回归量来安排输入。但是,如果系数,是稀疏的,那么我应该使用 LASSO 方法。我尝试过使用 Matlab 的 LASSO 函数。对于 LASSO,我重新排列了输入数据就回归量而言,但我不知道这是否是正确的方法。
我需要帮助。有没有办法在 LS 中包含稀疏项?
请在下面找到使用 Matlab 函数的 LASSO 代码。作为一个玩具示例,我只是假设模型顺序为滞后 3,但我知道 LASSO 可以有效地应用于大型模型。我可以测试滞后 > 3 的大阶 MA 模型。
% Code for LASSO estimation technique for
%MA system, L = 3 is the order,
%Generate input
x = -5:.1:5;
r = [1 0.0 0.0];% L elements of the channel coefficients
%Data preparation into regressors
X1 = [ ones(length(x),1) x' x']; %first column treated as all ones since x_1=1
y = filter(r,1,x); % Generate the MA model
[r_hat_lasso, FitInfo] = lasso(X1, y, 'alpha', 1, 'Lambda', 1, 'Standardize', 1);
输出 :
返回的估计是r_hat_lasso = 0, 0.657002829714982, 0
问:这与实际相差很大r。这是错的吗?