AR(3)模型递推最小二参数估计的MATLAB实现

博客介绍了AR模型中部分参数的含义,如e代表白噪声序列,lamda代表遗忘因子,sita和fai为估值参数,还提及了ee和taoe,但未明确其含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%-----AR(3)--------
clear;
clc;
close all;
N=1000;                             %步长
rand('seed',10);                    %改变种子改变数据
a=-[ -1.2000    0.2900   -0.0180];  %poly([0.1 0.2 0.9])
e=0.6*randn(1,N+1);                 %白噪声序列
y(1)=e(1);                          %初值y(1),y(2),y(3)
y(2)=a(1)*y(1)+e(2);
y(3)=a(1)*y(2)+a(2)*y(1)+e(3);

for t=4:N+1
    y(t)=a(1)*y(t-1)+a(2)*y(t-2)+a(3)*y(t-3)+e(t);%AR(3)的RLS算法实现
end

n=3;
lamda=1;%遗忘因子
sita(:,3)=zeros(n,1);%初值,均为0
P(:,:,3)=10^5*eye(n);%P的初值,选取足够大的单位阵

for t=3:N
    fai(:,t+1)=[y(t) y(t-1) y(t-2)]';%最小二乘格式的fai(t)的表达式
     %参数估值
    sita(:,t+1)=sita(:,t)+P(:,:,t)*fai(:,t+1)/(lamda+fai(:,t+1)'*P(:,:,t)*fai(:,t+1))*...
        [y(t+1)-fai(:,t+1)'*sita(:,t)];
    P(:,:,t+1)=1/lamda*(P(:,:,t)-P(:,:,t)*fai(:,t+1)/(lamda+fai(:,t+1)'*P(:,:,t)*fai(:,t+1))*...
        fai(:,t+1)'*P(:,:,t));
end

ee(1)=y(1);
taoe(1)=ee(1)^2;%y(0)的初值为0
for t=2:N
    %对噪声方差的估计
    ee(t)=y(t)-fai(:,t)'*sita(:,t-1);
    taoe(t)=taoe(t-1)+1/t*[ee(t)^2-taoe(t-1)];
end
   

t=1:N;
subplot(2,2,1);
plot(t,sita(1,t),'r');
line([0,N],[a(1),a(1)])
subplot(2,2,2);
plot(t,sita(2,t),'r');
line([0,N],[a(2),a(2)])
subplot(2,2,3);
plot(t,sita(3,t),'r');
line([0,N],[a(3),a(3)])
subplot(2,2,4);
plot(t,taoe,'r');
line([0,N],[0.36,0.36])

其中,e代表\varepsilon \left ( t \right ),为白噪声序列

lamda代表\lambda,为遗忘因子

sita代表\theta,估值参数之一

fai代表\varphi,为估值参数之一

ee代表\hat{\varepsilon }\left ( t \right )

taoe代表\hat{\sigma _{\varepsilon }}^{2}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值