时间序列分析试验报告 下载本文

内容发布更新时间 : 2024/5/7 18:36:30星期一 下面是文章的全部内容请认真阅读。

时间序列分析实验报告(一)

时间序列是按时间次序排列的随机变量序列,任何时间序列经过合理的函数变换后都可以被认为实 验 是由三个部分叠加而成,这三个部分别是趋势项部分、周期项部分和随机噪声项部分,从时间序列中目 把这三个部分分解出来是时间序列分析的首要任务。本实验目的学习时间序列的分解方法。 的 实 验 内 容 下面的表7.1.1中的数据是某城市1991~1996年中每个季度的民用煤消耗量(单位:吨)。数据图形由图1.1.2给出。 表7.1.1 某城市居民季度用煤消耗量 (单位:吨) 年份 1991 1992 1993 1994 1995 1996 季平均 1季度 6878.4 6815.4 6634.4 7130.2 7413.5 7476.5 7058.1 2季度 5343.7 5532.6 5658.5 5532.6 5863.1 5965.5 5649.3 3季度 4847.9 4745.6 4674.8 4989.6 4997.4 5202.1 4909.6 4季度 6421.9 6406.2 6445.5 6642.3 6776.1 6894.1 6597.7 年平均 5873.0 5875.0 5853.3 6073.7 6262.6 6384.5 (1)由表8.1.1中每年每季的数据计算年平均值与季平均值,并绘出1991~1996年中每个季度的数据的散点图。 (2)用回归直线趋势法对序列进行分解。 (3)若1997年四季的数据分别为:7720.5 5973.3 5304.4 7075.1,运用(2)对1997年数据作预测并分析误差。 (1)首先做理论准备。每个时间序列,或经过适当的函数变换的时间序列,都可以分解成三个部分的实 叠加 验 Xt?Tt?St?Rt,t?1,2,?, (1) 步 骤 其中?Tt?是趋势项,?St?是季节项,?Rt?是随机项。 然后,利用MATLAB软件,编写程序进行计算,即 A=[6878.4 5343.7 4847.9 6421.9 6815.4 5532.6 4745.6 6406.2 6634.4 5658.5 4674.8 6445.5 7130.2 5532.6 4989.6 6642.3 7413.5 5863.1 4997.4 6776.1 7476.5 5965.5 5202.1 6894.1 ]; A1=mean(A) %计算季平均值 B=A'; A2=mean(B) %计算年平均值 plot(B(:),'+-') %画出每个季度的散点图 则得: 季平均值为:7058.1 5649.3 4909.6 6597.7 年平均值为:5873.0 5875.0 5853.3 6073.7 6262.5 6384.5 每个季度的数据的散点图: 75007000650060005500500045000510152025 图1 城市居民季度用煤消耗量散点图 (2)分解回归直线趋势。由于数据有缓慢的上升趋势,可以试用回归直线表示趋势项,这时认为(xt,t)满足一元线性回归模型 xt?a?bt??t,t?1,2,?,24 在Matlab命令窗口中继续输入下列命令: polyfit(1:24,B(:)',1) 输出: ans = 1.0e+003 * 0.0219 5.7801 ??21.9, ??5780所以得: a.1,b这时,趋势项?Tt?的估计值是回归直线: ??5780T.1?21.9t, t?后得到的数据基本只含有季节项和随机项了。 利用原始数据?xt?减去趋势项的估计Tt分解季节项:用第k季度的平均值作为季节项S(k),1?k?4的估计。如果用xj,k,Tj,k分别表示第j年第k个季度的数据和趋势项,则时刻(j,k)的时间次序指标为k?4(j?1). 5161??)??(x?S(k)??(xj,k?T1?k?4 j,kk?4j?TK?4j),6j?16j?0??在Matlab命令窗口中继续输入下列命令: dx=B(:)'-(5780.1+21.9*(1:24)) C=[dx(:,1:4);dx(:,5:8);dx(:,9:12);dx(:,13:16);dx(:,17:20);dx(:,21:24)]; s=mean(C) %季节项估计 则得 s = 1.0e+003 * 1.0371 -0.3936 -1.1552 0.5110 即季节项估计为 ?(1)?1037?(2)??393.6,S?(3)??1155?(4)?511.0 S.1,S.2,S?}后得到的数据就是随机?}和季节项的估计{S分解随机项:利用原始数据{Xt}减去趋势项的估计{Ttt?,1?t?24. ??x?T??S项的估计Rtttt在Matlab命令窗口中继续输入下列命令: for j=1:6 for k=1:4 St(k+4*(j-1))=s(k); %求季节项值St end end Rt=dx-St; %求随机项估计 plot(1:24,St,'*-',1:24,Rt,'<-') %画出季节项和随机项图形 150010005000-500-1000-15000510152025 图2 季节项和随机项散点图 预测:为得到1997年的预报值,可以利用公式 ?(24?k24)?T?(k),k?1,2,3,4, ?(24?k)?SS?(24?k24)是用例中的24个观测数据对第24?k个数据的预测值,利用MATLAB编这里,S写命令: for i=25:28 m=5780.1+21.9*(i)+s(i-24) %计算1997年四个季度的预测值 end