欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

时间序列预测

程序员文章站 2022-04-10 23:46:09
...
 与马尔科夫链预测互补,至少有2个点需要信息的传递,ARMA模型,周期模型,季节模型等

ARMA模型的全称是自回归移动平均(auto regression moving average)模型,它是目前最常用的拟合平稳序列的模型,它又可细分为AR模型(auto regression model)、MA模型(moving average model)和ARMA模型(auto regression moving average model)三大类。
例 税收作为*财政收入的主要来源,是地方*实行宏观调控、保证地区经济稳定增长的重要因素。各级*每年均需预测来年的税收收入以安排财政预算。什么方法能够帮助地方*有效地预测税收收入?下表是某地历年税收数据(单位:亿元)
时间序列预测

解决上面问题源代码:基于MATLAB2014a编程
clc, clear
a=[15.2  15.9   18.7    22.4    26.9    28.3    30.5  33.8   40.4   50.7    58      66.7    81.2    83.4];
m=input('请输入需要预测的个数:');
ahat=a;
for i=1:m   %m=需要预测值的数量
    fprintf('现在开始预测第%d个值。',i);
    a=ahat;
    a=a'; a=a(:); a=a'; %把原始数据按照时间顺序展开成一个行向量
    Rt=tiedrank(a);  %求原始时间序列的秩28.3
    n=length(a); t=1:n; 
    Qs=1-6/(n*(n^2-1))*sum((t-Rt).^2)   %计算Qs的值
    T=Qs*sqrt(n-2)/sqrt(1-Qs^2)   %计算T统计量的值
    t_0=tinv(0.975,n-2)     %计算上alpha/2分位数
作下列假设检验
 :序列 平稳;
 :序列 非平稳(存在上升或者下降趋势)。
Daniel检验方法:对于显著水平 ,由时间序列 计算 , 的Spearman秩相关系数Qs,若 >t_0,则拒绝 ,认为序列非平稳。并且Qs>0时,认为序列由上升趋势;Qs<0时,认为序列有下降趋势。又当  t_0时,接受 ,可以认为 是平稳序列。
本题中, ,上alpha/2的值t_0=2.1788,所以 >t_0,故认为序列是非平稳的;因为Qs>0,所以序列有上升趋势。为了构造平稳序列,对于 作一阶差分运算 ,得到序列 。从时间序列 散点图来看,时间序列是平稳的。
 if(T>t_0)
        b=diff(a);   %求原始时间序列的一阶差分
        c=ar(b,2,'ls');  %利用最小二乘法估计模型的参数
        bhat=predict(c,b') %求原始数据的预测值,第二个参数必须为列向量
        bhat(end+1)=forecast(c,b',1); %计算1个预测值,第二个参数必须为列向量
        fprintf('第%d个值预测后的全部数据ahat:',i);
        ahat=[a(1), a+bhat']  %求原始数据的预测值,并计算t=15的预测值
        delta=abs((ahat(1:end-1)-a)./a)  %计算原始数据预测的相对误差
    else
        c=ar(a,2,'ls');  %利用最小二乘法估计模型的参数
        bhat=predict(c,a')  %求原始数据的预测值,第二个参数必须为列向量
        bhat(end+1)=forecast(c,a',1); %计算1个预测值,第二个参数必须为列向量
        fprintf('第%d个值预测后的全部数据ahat:',i);
        ahat=bhat'%求原始数据的预测值,并计算t=15的预测值
        delta=abs((ahat(1:end-1)-a)./a)  %计算原始数据预测的相对误差
    end
end

时间序列预测
注:在使用该程序时,只需要把矩阵a换成自己的数据就行。
SPSS进行时间序列预测:
1、把数据输入到SPSS中;
时间序列预测
2、定义日期和时间;
时间序列预测
3、选择日期:选择“年”,第一个个案是:选择2000,然后点击“确定”;
时间序列预测
时间序列预测
4、转换→创建时间序列
时间序列预测
5、把“税收”移到“变量”里,“名称”默认即可,“函数”中选择“平滑”,然后点击“确定”,即可得到预测结果;
时间序列预测
时间序列预测
为了和用MATLAB求解的结果作比较,这里也求出了其相对应的相对误差:
时间序列预测

相关标签: 预测