某种股票价格的数据的时间序列模型的建立及分析.docx
《某种股票价格的数据的时间序列模型的建立及分析.docx》由会员分享,可在线阅读,更多相关《某种股票价格的数据的时间序列模型的建立及分析.docx(14页珍藏版)》请在冰点文库上搜索。
某种股票价格的数据的时间序列模型的建立及分析
教育部直属国家“211工程”重点建设高校
股票价格模型
——应用时间序列分析期末论文
2013年11月
一、实验目的:
掌握用Box-Jeakins方法及Paudit-Wu方法建模及预测
二、实验内容:
应用数据1前28个数据建模,后8个数据供预测检验。
数据1:
某种股票价格的数据(单位:
元)
t
观测值
t
观测值
t
观测值
t
观测值
1
10.5
10
12.25
19
14.5
28
21.5
2
10.44
11
12.61
20
15.5
29
20.25
3
9.94
12
13.5
21
16.13
30
25.63
4
10.25
13
13.44
22
14.75
31
26.88
5
11
14
12.44
23
11.75
32
27.63
6
9.88
15
13.5
24
15.25
33
23.88
7
10.5
16
15.39
25
17.13
34
26.38
8
12
17
15.75
26
20.5
35
24
9
13.94
18
13.88
27
19
36
24.38
表1
三、数据检验
1、检验并消除数据长期趋势
法一:
图形检验
(1)根据表中数据我们先画出序列图并对序列图进行平稳性分析。
(2)Matlab程序代码
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,
13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,17.13,20.5,19,21.5;]
plot(x)
xlabel('时间t');
ylabel('观测值x');
title('某种股票价格序列图');
(3)得到图
(1)
图
(1)
(4)观察图形,发现数据存在长期向上的趋势。
表示序列是不平稳的。
(5)我们再进一步对数据进行一阶差分,利用Matlab画图。
(6)Matlab程序代码
y=diff(x,1)
plot(y)
xlabel('时间t');
ylabel('一阶差分之后的观测值y');
title('某种股票价格差分之后序列图');
(7)得到图
(2)
图
(2)
(8)根据图
(2)初步判定一阶差分后的序列稳定
法二:
用自相关函数检验
(1)用matlab做出原数据自相关函数的图
(2)Matlab程序代码
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,
13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,
17.13,20.5,19,21.5;];
acf1=autocorr(x,[],2);%计算自相关函数并作图
autocorr(x,[],2)
acf1
(3)得到图(3)
图(3)
(4)观察图形发现,数据是缓慢衰减的,所以序列是不平稳的。
(5)我们再进一步对数据进行一阶差分,利用Matlab画图得到差分后自相关函数图
(6)Matlab程序代码
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,17.13,20.5,19,21.5;];
y=diff(x,1);%一阶差分
acf2=autocorr(y,[],2);%计算自相关函数并画图
autocorr(y,[],2)
acf2
(7)得到图(4)
图(4)
(8)观察图形发现数据是迅速衰减的,所以一阶差分后的序列平稳了。
附、一阶差分之后的数据
见表2
一阶差分之后的数据(单位:
元)
t
y
t
y
t
y
t
y
1
-0.06
8
1.94
15
1.89
22
-3
2
-0.5
9
-1.69
16
0.36
23
3.5
3
0.31
10
0.36
17
-1.87
24
1.88
4
0.75
11
0.89
18
0.62
25
3.37
5
-1.12
12
-0.06
19
1
26
-1.5
6
0.62
13
-1
20
0.63
27
2.5
7
1.5
14
1.06
21
-1.38
表2
2、检验序列的季节性
由图2可已看出,序列没有季节性
四、零均值化数据
(1)利用Matlab软件将序列零均值化
(2)Matlab程序代码为
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,17.13,20.5,19,21.5;];
y=diff(x,1);%一阶差分后的结果
ave=mean(y);%均值
z=y-ave%零均值化后的结果
见表3
零均值化之后的数据(单位:
元)
t
z
t
z
t
z
t
z
1
-0.4674
8
1.5326
15
1.4826
22
-3.4074
2
-0.9074
9
-2.0974
16
-0.0474
23
3.0926
3
-0.0974
10
-0.0474
17
-2.2774
24
1.4726
4
0.3426
11
0.4826
18
0.2126
25
2.9626
5
-1.5274
12
-0.4674
19
0.5926
26
-1.9074
6
0.2126
13
-1.4074
20
0.2226
27
2.0926
7
1.0926
14
0.6526
21
-1.7874
表3
Box-Jenkins方法建模
一、模型类型识别
(1)由平稳时间序列自相关和偏自相关函数的统计特性来初步确定时间序列模型的类型
(2)Matlab程序代码
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,17.13,20.5,19,21.5;];
y=diff(x,1);%一阶差分后的结果
ave=mean(y);%均值
z=y-ave;%零均值化后的结果
acf3=autocorr(z,[],2);%作自相关函数图
pacf3=parcorr(z,[],2);%作偏自相关函数图
autocorr(z,[],2);
acf3
parcorr(z,[],2)
pacf3
form=2:
20;%判断零均值化后的数字的自相关函数截尾性
p=0;
fori=2:
m;
p=p+(acf3(i))^2;
ans=((1/27)*(1+2*p))^(1/2);
end
ans
end
(3)通过运行程序,可以得出零均值化后的数据的自相关和偏自相关函数值,见表4
K
自相关
偏自相关
K
自相关
偏自相关
1
-0.1050
-0.1122
11
-0.0591
-0.6325
2
-0.1884
-0.2210
12
0.1041
-1.3451
3
-0.2861
-0.4811
13
0.0802
7.1281
4
0.3816
0.4757
14
-0.2376
-3.2678
5
-0.0287
-0.3243
15
-0.0391
0
6
-0.3008
-0.9092
16
0.0522
0
7
-0.0805
-0.1765
17
0.2235
0
8
0.1297
-0.4455
18
-0.1520
0
9
0.1380
-0.3835
19
0.0368
0
10
-0.1233
-0.1794
20
0.0227
0
表4
(4)运行程序也得到了
的值
分别为0.1946,0.2012,0.2157,0.2394,0.2396,0.2532,0.2541,0.2566,0.2593,0.2615,0.2619,0.2635,0.2644,0.2722,0.2724,0.2728,0.2795,0.2825,0.2827,0.2827这20个数据
计算|
|≤
i=1,2,3,…,M的比例,这里的M=
≈5(N=27)
当k=4时,比例为80%,达到了68.3%,所以说
在4步截尾。
(5)通过分析偏自相关函数的数据,可以得出结论,
是拖尾的。
(6)这个时候可以初步判定这个模型为MA(4)模型。
二、模型阶数判定
法一:
残差方差图定阶法
(1)利用Eviews软件可以直接求出残差方差,计算6个数据,结果分别如下
图(5)
(2)用Matlab软件画出残差方差图,程序代码为
cf=[1.598,1.515,1.241,1.225,0.893,0.924;];
plot(cf,'-k')
(3)残差方差图为
(图6)
(4)由图可以看出,模型阶数m从1升到5时,残差方差都是减的,模型阶数继续上升时,残差方差开始有所增加,所以可以初步判断合适的模型阶数为5,即为MA(5)模型。
法二:
F检验定阶法
(1)对序列分别拟合1~6阶MA模型,利用Eviews软件求剩余平方和,分别为
图(7)
(2)MA(6)的剩余平方和已超过MA(5)的剩余平方和,因此可以从MA(5)开始考虑模型阶数是否可以降低,对于MA(4)和MA(5)模型,有
F=
=21.319694
(3)如果取显著性水平为
=0.05,查F分布表可得
(1,22)=4.30,显然F>
(1,22),所以在
=0.05的显著性水平下,MA(4)和MA(5)模型有显著差异,模型阶数不能降低,合适的模型阶数为5。
所以该模型为MA(5)模型。
三、模型参数拟合
(1)由上一个步骤可知,MA(5)的模型阶数不能降低,就是为5。
(2)利用Eviews软件,求出模型的参数,结果如下(图8)
图(8)
(3)综上,模型可写为:
四、模型的适应性检验
方法:
相关函数法
(1)利用Eviews软件,求出残差序列的自相关函数,结果如图9
图(9)
(2)图中的AC那一列即为代表
的值
(3)计算公式,数据都满足|
|≤1.96/
,当k=1,2,…,20时。
(4)这时得出结论:
在0.05的显著性水平下接受
=0的假设,认为{
}是独立的,即表示MA(5)模型是适合的。
五、模型预测
(1)利用Eviews软件,根据后八个数据对模型进行预测,得到的预测值如下图
图(10)
(2)利用Matlab软件,对得出来的预测值进行求解零均值化和一阶差分的逆过程,得到最终的预测值,程序的代码为
x=[10.5,10.44,9.94,10.25,11,9.88,10.5,12,13.94,12.25,12.61,13.5,13.44,12.44,
13.5,15.39,15.75,13.88,14.5,15.5,16.13,14.75,11.75,15.25,17.13,20.5,19,21.5;];
y=diff(x,1);%一阶差分后的结果
ave=mean(y);%均值
z=y-ave;%零均值化后的结果
yuce1=[-1.598708,0.274822,-1.491735,0.049299,-0.657974,-0.401210,
-0.401210,-0.401210;];%预测得到的初值
yuce2=yuce1+ave;%预测初值加上平均数
yuce3=[21.5,yuce2];
cumsum(yuce3);%最终的预测值
(3)得出来的最终数据以及相对误差见表(5)
原数据
最终的预测值
相对误差百分比
20.25
20.3087
0.290%
25.63
20.9909
18.100%
26.88
19.9066
25.943%
27.63
20.3633
26.300%
23.88
20.1127
15.776%
26.38
20.1189
23.734%
24
20.1251
16.145%
24.38
20.1313
17.427%
表(5)
(4)模型的相对误差较大,模型不是很好
Pandit-Wu方法建模
一、对时间序列零均值化
之前已经有过零均值化的过程,结果见上面的表3
二、拟合ARMA(2n,2n-1)模型
(1)利用Eviews软件对模型依次拟合ARMA(2,1),ARMA(4,3)和ARMA(6,5)