新2体育登陆网址 新2体育登陆网址 新2体育登陆网址

时间序列分析

人写得真好。. . .

依次

时间序列预测技术通过处理自身的时间序列来研究预测目标的变化趋势。一个时间序列可以分解为:

(一)长期趋势变化。它是指时间序列在一定方向上继续上升或下降,或停留在一定水平的趋势,它反映了客观事物变化的主要趋势。

(2) 季节性变化。

(3) 周期性变化。通常是指非季节性因素引起的周期超过一年的波动和类似的波形波动。

(4) 不规则的变化。通常分为突变和随机变化。

移动平均线

移动平均法是根据时间序列数据的逐渐过渡,依次计算包含一定数量项目的时间序列平均值,以反映长期趋势的方法。当时间序列的值受周期性变化和不规则变化的影响而波动较大,且不易显示发展趋势时,可采用移动平均法消除这些因素的影响,分析预测该系列的长期趋势。

简单移动平均法只适用于短期预测,预测目标的发展趋势变化不大。如果目标的发展趋势有其他变​​化,使用简单移动平均法会产生较大的预测偏差和滞后。

img

【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-gLU1kprL-1617109063596)(C:\Users\Administrator\AppData\Roaming\Typora\typora -user-images\ image-20210330192218920.png)]

clc,clear 
y=[533.8  574.6  606.9  649.8   705.1  772.0  816.4  892.7  963.9  1015.1  1102.7]; m=length(y);   
 n=[4,5];   %n 为移动平均的项数 
for i=1:length(n)    
 %由于 n 的取值不同,yhat 的长度不一致,下面使用了细胞数组    
    for j=1:m-n(i)+1         
        yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);     
    end    
    y12(i)=yhat{i}(end);     
    s(i)=sqrt(mean((y(n(i)+1:m)-yhat{i}(1:end-1)).^2)); 
end 
y12,s 

加权移动平均线

在简单的移动平均公式中,每个周期的数据在平均中起着相同的作用。但是,每个时期的数据都包含不同数量的信息,最近的数据包含对未来状况的更多信心。因此,将各个时期的数据一视同仁是不合理的。应考虑各时期数据的重要性,对近期数据给予更大的权重。这就是加权移动平均法的基本思想。

img

【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-nyzRHXCH-1617109063598)(C:\Users\Administrator\AppData\Roaming\Typora\typora -user-images\ image-20210330192446726.png)]

y=[6.35 6.20    6.22    6.66    7.15    7.89    8.72    8.94    9.28    9.8]; 
w=[1/6;2/6;3/6]; 
m=length(y);n=3; 
for i=1:m-n+1     
    yhat(i)=y(i:i+n-1)*w; 
end 
yhat 
err=abs(y(n+1:m)-yhat(1:end-1))./y(n+1:m)  # 计算各年的相对误差 %
T_err=1-sum(yhat(1:end-1))/sum(y(n+1:m)) # 总的平均相对误差
y1989=yhat(end)/(1-T_err) # 修正预测值

**近期数据权重大,长期数据权重小。**至于大小,需要根据预报员对序列的理解和分析来确定。

趋势移动平均线

简单移动平均法和加权移动平均法可以在时间序列没有明显趋势变化的情况下准确反映实际情况。但是,当时间序列呈现线性增加或减少趋势时,将使用简单移动平均法和加权移动平均法来预测滞后偏差。因此,需要加以纠正。修正的方法是做二次移动平均,利用移动平均滞后偏差定律建立线性趋势预测模型。这是趋势移动平均法。

img

【外链图片传输失败,源站可能有防盗链机制预测未来趋势的模型,建议保存图片直接上传(img-WKg4jqMl-1617109063602)(C:\Users\Administrator\AppData\Roaming\Typora\typora -用户图像\图像-20210330193501616.png)]

【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-x0AYBAHL-1617109063606)(C:\Users\Administrator\AppData\Roaming\Typora\ Typora-用户图像\ image-20210330193529864.png)]

clc,clear 
load y.txt   %把原始数据保存在纯文本文件 y.txt 中 
m1=length(y);    
n=6;   %n 为移动平均的项数 
for i=1:m1-n+1     
    yhat1(i)=sum(y(i:i+n-1))/n; 
end 
yhat1 
m2=length(yhat1); 
for i=1:m2-n+1    
    yhat2(i)=sum(yhat1(i:i+n-1))/n; 
end 
yhat2   
plot(1:21,y,'*') 
a21=2*yhat1(end)-yhat2(end) 
b21=2*(yhat1(end)-yhat2(end))/(n-1) 
y1986=a21+b21 
y1987=a21+2*b21 

指数平滑

将每个时段的观测值按时间顺序加权平均作为预测值。指数平滑满足这一要求,并具有简单的递归形式。

一次指数平滑

img

img

img

img

【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-2QYO60v0-1617109063608)(C:\Users\Administrator\AppData\Roaming\Typora\typora -user-images\ image-20210330195646744.png)]

clc,clear 
load dianqi.txt   %原始数据以列向量的方式存放在纯文本文件中 
yt=dianqi;
n=length(yt); 
alpha=[0.2 0.5 0.8];
m=length(alpha); 
yhat(1,1:m)=(yt(1)+yt(2))/2; 
for i=2:n     
    yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:); 
end 
yhat 
err=sqrt(mean((repmat(yt,1,m)-yhat).^2)) 
xlswrite('dianqi.xls',yhat) 
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:) 

二次指数平滑

img

clc,clear 
load fadian.txt   %原始数据以列向量的方式存放在纯文本文件中 
yt=fadian; 
n=length(yt); 
alpha=0.3; 
st1(1)=yt(1); 
st2(1)=yt(1); 
for i=2:n     
    st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);    
    st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1); 
end 
xlswrite('fadian.xls',[st1',st2']) 
a=2*st1-st2 b=alpha/(1-alpha)*(st1-st2) 
yhat=a+b; 
xlswrite('fadian.xls',yhat','Sheet1','C2') 
str=char(['C',int2str(n+2)]); 
xlswrite('fadian.xls',a(n)+2*b(n),'Sheet1',str) 

三重指数平滑

img

img

clc,clear 
load touzi.txt   %原始数据以列向量的方式存放在纯文本文件中 
yt=touzi; 
n=length(yt); 
alpha=0.3; 
st1_0=mean(yt(1:3)); 
st2_0=st1_0;
st3_0=st1_0; 
st1(1)=alpha*yt(1)+(1-alpha)*st1_0; 
st2(1)=alpha*st1(1)+(1-alpha)*st2_0; 
st3(1)=alpha*st2(1)+(1-alpha)*st3_0; 
for i=2:n     
    st1(i)=alpha*yt(i)+(1-alpha)*st1(i-1);     
    st2(i)=alpha*st1(i)+(1-alpha)*st2(i-1);     
    st3(i)=alpha*st2(i)+(1-alpha)*st3(i-1); 
end 
xlswrite('touzi.xls',[st1',st2',st3']) 
st1=[st1_0,st1];
st2=[st2_0,st2];
st3=[st3_0,st3]; 
a=3*st1-3*st2+st3; 
b=0.5*alpha/(1-alpha)^2*((6-5*alpha)*st1-2*(5-4*alpha)*st2+(4-3*alpha)*st3); c=0.5*alpha^2/(1-alpha)^2*(st1-2*st2+st3); 
yhat=a+b+c; 
xlswrite('touzi.xls',yhat','Sheet1','D1') 
plot(1:n,yt,'*',1:n,yhat(1:n),'O') 
legend('实际值','预测值',2) 
xishu=[c(n+1),b(n+1),a(n+1)]; 
yhat1990=polyval(xishu,2)

指数平滑预测模型从时间 t 开始,整合历史序列信息来预测未来。选择合适的加权系数α是提高预测精度的关键环节。根据实际经验,α的取值范围一般为0.1~0.3。α值越大,权重系数序列衰减越快,所以实际上α的值起到了控制历史数据参与平均数的作用。α 值越大意味着使用的数据越少。因此,可以得出一些选择α值的基本准则。

序列趋势稳定,预测偏差是随机因素造成的。取值小,缩小修正范围,使预测模型能包含更多的历史数据信息。如果预测目标的潜在趋势发生了系统性变化,则α的值应该更大。这样,可以通过对新数据的信息进行偏置预测未来趋势的模型,对原模型进行大幅度修正,从而使预测模型适应预测目标的新变化。

指数平滑递推公式需要确定初值S_0^1 S_0^2 S_0^3。

微分指数平滑

当时间序列的变化呈线性趋势时,由于数据不符合模型要求,一次性指数平滑法会出现滞后偏差。因此,我们也可以从数据变换的角度考虑改进措施,即在使用指数平滑法之前对数据做一些技术处理,使其适合一阶指数平滑模型,然后在技术上做输出后面的结果。返回处理将其恢复为原始变量的形式。差分法是一种改变数据变化趋势的简便方法。下面我们讨论如何使用差分方法来改进指数平滑。

一阶差分指数平滑

img

指数平滑值实际上是加权平均值。因此,使用序列中逐周期增量(指数平滑值)的加权平均值加上当前值的实际数量来预测下一周期比仅使用一次指数平滑方法更合理。使用变量先前值的加权平均值作为下一周期的预测。. 因此,预测值始终围绕实际值波动,从根本上解决了一次性指数平滑法得到的结果在存在线性增长趋势时总是滞后于实际值的问题。

img

α=0.4,微分指数平滑值为 (26)

二阶差分指数平滑模型

img

差分法和指数平滑法的联合应用不仅可以克服一次性指数平滑法的滞后偏差,而且可以显着改善初始值问题。因为数据是差分处理的,所以得到的新序列基本是平稳的。此时,新系列第一期的初值不会对未来的预测值产生太大影响。其次,它扩大了指数平滑法的应用范围,使得一些需要用线性趋势模型处理的情况可以用这种组合模型代替。但由于指数平滑法中权重系数α的选择问题,以及只能逐期预测的问题,

自适应滤波

它也可以通过对时间序列的历史观测值进行某种加权平均来预测。它需要找到一组“好”的权重。方法是先用给定的一组权重计算一个预测值,然后再计算预测值。误差,然后根据预测误差调整权重以减小误差。重复此过程,直到找到将误差降至最低的“良好”权重集。因为这个调整权重的过程与通信工程中的传输噪声滤波过程非常接近,所以称为自适应滤波。

img

img

img

clc,clear 
yt=0.1:0.1:1; 
m=length(yt); 
k=0.9; N=2; Terr=10000; 
w=ones(1,N)/N; 
while abs(Terr)>0.00001     
    Terr=[];     
    for j=N+1:m-1         
        yhat(j)=w*yt(j-1:-1:j-N)';         
        err=yt(j)-yhat(j);         
        Terr=[Terr,abs(err)];         
        w=w+2*k*err*yt(j-1:-1:j-N);     
    end     
    Terr=max(Terr); 
end 
w, yhat 

开始调整权重时,首先确定权重个数N和学习常数k。一般来说,当时间序列的观测值随季节变化时,N应取季节长度的值。例如,当序列以一年为周期进行季节性变化时,如果数据是月度,则取 N=12。如果季节是季度,则取 N=4。如果时间序列没有明显的周期性变化,可以用自相关系数法确定,即取N为自相关系数高的滞后期。

k的值一般可以设置为1/N,也可以用不同的k值计算确定可以使S更小的k值。

img

自适应滤波方法有两个明显的优点:一是技术比较简单,可以根据预测意图选择权重和学习常数的个数来控制预测。它也可以由计算机自动选择。二是利用所有历史数据寻找最佳加权系数,随着数据轨迹的变化不断更新权重,从而不断改进预测。

趋势外推预测法

趋势外推法是一种比较常用的预测方法,它根据事物的历史和当前数据,寻求事物的发展规律,从而推断事物的未来状态。使用趋势外推进行预测主要包括六个阶段:

(a) 选择要预测的参数;(b) 收集必要的数据;(c) 使用数据拟合曲线;

(d) 趋势推断;(e) 预测说明;(f) 研究预测结果以做出决策的可能性。

趋势外推常用的典型数学模型有:指数曲线、修正指数曲线、增长曲线、包络曲线等。

指数曲线法

一般来说,技术的进步和生产的增长在新时期达到饱和之前,遵循指数曲线增长的规律,所以指数曲线可以用来预测事物的发展。

img

img

使固定

任何事物的发展都有一定的限度。例如,某款畅销产品在其市场占有率初期呈指数增长,但随着产品销量的增加,产品总销量已接近社会饱和。这时,预测模型应该改用修正的指数曲线。

img

三和声

img

img

img

img

function chanliang 
clc,clear 
global a b k 
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 
yt=xsh; n=length(yt);m=n/3 
cf=diff(yt); 
for i=1:n-2     
    bzh(i)=cf(i+1)/cf(i); 
end 
range=minmax(bzh) 
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) 
b=((s3-s2)/(s2-s1))^(1/m) a=(s2-s1)*(b-1)/(b*(b^m-1)^2) 
k=(s1-a*b*(b^m-1)/(b-1))/m 
y=yuce(1:18) 
%************************************ 
%定义预测函数 
%************************************ 
function 
y=yuce(t) 
global a b k 
y=k+a*b.^t;  

康珀兹曲线

img

img

img

function chanliang2 
clc,clear 
global a b k 
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 
yt=log(xsh); n=length(yt);m=n/3; 
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) 
b=((s3-s2)/(s2-s1))^(1/m) 
a=(s2-s1)*(b-1)/(b*(b^m-1)^2) 
k=(s1-a*b*(b^m-1)/(b-1))/m a=exp(a) 
k=exp(k) 
y=yuce(1:18) 
%************************************ %定义预测函数 %************************************ function y=yuce(t); 
global a b k 
y=k*a.^(b.^t); 

逻辑曲线(增长曲线)

它在发育期突然加速,然后在成熟期减速,形成S形曲线,这就是著名的Logistic曲线(成长曲线)

img

img

function chanliang3 
clc,clear 
global a b k 
load xsh.txt %原始数据存放在纯文本文件 xsh.txt 中 
yt=1./xsh; n=length(yt);m=n/3; 
s1=sum(yt(1:m)), s2=sum(yt(m+1:2*m)), s3=sum(yt(2*m+1:end)) 
b=((s3-s2)/(s2-s1))^(1/m) 
a=(s2-s1)*(b-1)/(b*(b^m-1)^2) 
k=(s1-a*b*(b^m-1)/(b-1))/m 
y=yuce(1:18) 
%************************************ %定义预测函数 %************************************ function y=yuce(t); 
global a b k 
y=1./(k+a*b.^t);

img

当有多条趋势线可供选择时,应选择小S的趋势线。

平稳时间序列模型

序列的统计特性不随时间变化,即均值和协方差不随时间变化。

自回归模型称为 AR 模型,移动平均模型称为 MA 模型。

自动回归移动平均模型(Auto Regressive Moving Average Model)简称为ARMA模型。

X(t) 是一个零均值(即居中)平稳序列。

通用自回归模型 AR(n) 白噪声序列

img

img

使X_t消除以下依赖,将其转化为独立的序列a_t。拟合AR(n)模型就是让序列X_t独立。

移动平均模型 MA(m)

img

移动平均法预测明天的气温Xt,可以等于过去5天气温的加权和[25,26,27,28,29],权重W=[0.4,0.25,0.2,0.1,0.05] ,则 Xt = 250.4 + 260.25 +270.2+ 280.1+ 29*0.05 ;移动平均模型求当前时间t的课堂学习效率Xt;它的模型逻辑是Xt和之前的不是线性相关的,和过去的扰动是线性相关的,比如t-1时间窗外的传输有很多噪音,t-2老师讲个笑话等等. 这些都是独立的干扰。

自回归移动平均模型 ARMA

img

在时间序列的时域分析中,线性差分方程是极其有效的工具。事实上,任何 ARMA 模型都是线性差分方程。

AR(1)系统的格林函数

格林函数是描述系统内存干扰程度的函数。

img

img

后移运算符

img

由于格林函数是差分方程解的系数函数,格林函数的含义可以概括如下:

img

ARMA(2,1) 系统的格林函数的隐式

img

img

img

时间序列建模的基本步骤

img

img

img