为了提高经济领域统计数据的预测精度,代数多项式预测模型的建模 方法应运而生.该方法使用代数多项式模型拟合给定的经济统计数据,并使用递推最小二乘法(RLS)对多项式拟合模型的加权系数进行递推计算以获得最优模型 参数,然后通过获得的最优多项式模型计算未来预测数据.文章以实际统计的经济数据为例进行了仿真计算,研究结果表明,该方法不仅能实现统计数据的高精度拟 合,而且具有很好的预测能力,在经济领域具有广阔的应用前景.
clc,clear,close all warning off % 消除警告 N = 1000; % 信号观测长度 a1 = 0.99; % 一阶AR参数 sigma = 0.0731; % 加性白噪声方差 for kk =1:100 v = sqrt(sigma)*randn(N,1); % 产生v(n)加性白噪声 u0 = [0]; % 初始数据 num = 1; % 分子系数 den = [1,a1]; % 分母系数 Zi = filtic(num,den,u0); % 滤波器的初始条件 un = filter(num,den,v,Zi); % 产生样本序列u(n), N x 1 x trials % figure,stem(un),title('随机信号');grid on; % 产生期望响应信号和观测数据矩阵 n0 = 1; % 虚实现n0步线性预测 M = 2; % 滤波器阶数 b = un(n0+1:N); % 预测的期望响应 L = length(b); un1 = [zeros(M-1,1)',un']; % 扩展数据 A = zeros(M,L); for k=1:L A(:,k) = un1(M-1+k : -1 : k); % 构建观测数据矩阵 end % 应用RLS算法进行迭代寻优计算最优权向量 delta = 0.004; % 调整参数 lamda = 0.98; % 遗忘因子 w = zeros(M,L+1); epsilon = zeros(L,1); P1 = eye(M)/delta; % RLS迭代算法过程 for k=1:L PIn = P1 * A(:,k); denok = lamda + A(:,k)'*PIn; kn = PIn/denok; epsilon(k) = b(k)-w(:,k)'*A(:,k); w(:,k+1) = w(:,k) + kn*conj(epsilon(k)); P1 = P1/lamda - kn*A(:,k)'*P1/lamda; end w1(kk,:) = w(1,:); w2(kk,:) = w(2,:); MSE = abs(epsilon).^2; MSE_P(kk) = mean(MSE); end W1 = mean(w1); % 取平均值 W2 = mean(w2); % 取平均值 figure,plot(1:kk,MSE_P,'r','linewidth',2),title('平均MSE');grid on; figure,plot(1:length(W1),W1,'r','linewidth',2),title('平均MSE');hold on; plot(1:length(W2),W2,'b','linewidth',2),title('权值');hold on; grid on;legend('\alpha1=0','\alpha2=-1')
[1]曾湘宇. (2014). 基于rls算法的多项式预测模型及其应用研究. 经济数学, 31(1), 85-89.