You are on page 1of 6

2005 年 10 月 四川大学学报(自然科学版) Oct .

2005
第 42 卷第 5 期 Journal of Sichuan Universi ty (Nat ural Science Edition) Vol .
42 No .5

文章编号 :
0490-6756(2005)05-0931-06

基于基因表达式编程的股票指数时间序列分析
1 1 1,2 1 1
廖  勇 , 唐常杰 , 元昌安 , 陈安龙 , 段  磊
(1.
四川大学计算机学院 , 成都 610064;
2.广西师范学院信息技术系 , 南宁 530001)

摘要 :基因表达式编程(
GEP)是遗传算法研究的新分支 .针对股票对象的特点 , 提出了适应股
票规律的 GEP-ST OCK 模型 , 包括 n 时段-STOCK-GENE , ST OCK-fi tness 以及 S TOCK-GEP
算法 , 并以上海证券交易指数时间序列数据为对象做了实验 .进行了误差和指数涨跌分析 .
实验结果表明 GEP-STOCK 模型预测精度较高 , 20d 的平均绝对误差为 11 .
08 , 平均相对误差
为 0.
64 %.从涨跌情况预测来看 , 模型对 6d 后指数的涨跌判断 , 正确率高于 80 %以上 .
关键词 :
数据挖掘 ; 基因表达式编程 ;
时间序列 ;
股票数据
中图分类号 :
T P311    文献标识码 :
A

1  引言
  数据预测在金融投资领域占有重要地位 , 而股票价格是金融数据中最复杂的数据类型之一 .经济学
家一直致力于研究股票市场价格的变化 , 希望能从中找出一些规律 , 避免诸如大的股市波动 , 从而保持经
济繁荣稳定 .股票市场是一个复杂的非线性动力系统 , 同时受多种因素的交互影响 , 对于股票未来价格的
精确预测是非常困难的 .股市预测被认为是当前时间序列预测中最富挑战性的应用之一 , 受到数据挖掘
界的广泛关注[ 1] .股票价格涨跌数据是一种时间序列数据 , 它既具有一定的趋势性又具有较大随机性 .
自 19 世纪股票市场建立以来 , 股票价格预测模型就成为各国学者研究的焦点 .在时间序列预测中 , 线形
的概率统计模型曾得到广泛的应用 , 如 :
ARMA 模型法 、AR 模型法 、阈值自回归 、多项式自回归 、指数自回
归模型等 , 后来还有灰色预测 、混沌时间序列预测等方法 .近年来 , 神经网络方法成为最热点的研究之一 ,
但随着人工神经网络研究的深入 , 人们认识到它存在的严重不足 , 在原理上缺乏实质性的突破 , 同时也缺
乏理论依据[ 2 , 3] .
基因表达式编程 GEP(Gene Expression P rogram ming)是遗传计算家族的新成员 , 具有极强的函数发
[ 4]
现能力和很高的效率 .文[ 5 ~ 8] 中 , 对 GEP 算法在效率上进行了改进 , 并应用改进的算法对太阳黑子
数据进行时间序列分析 , 通过把预测结果与传统的 5 种时间序列分析方法(TAR , 叠合(带趋势 、不带趋
势), ARMA , AR)进行比较 , 可以看出 GEP 预测结果的平均绝对误差和最大绝对误差均为最小 .
我们针对股票对象的特点 , 提出了适应股票规律的 GEP-STOCK 模型 , 包括 n 时段-ST OCK-GENE ,
S TOCK-fitness 以及 ST OCK-GEP 算法 , 并以上证指数时间序列数据为对象做了实验 .应用 STOCK-GEP
算法对 2003 年的上证指数进行了时间序列分析 , 挖掘出历史数据为 13d 的时间序列模型 , 利用该模型对
2004 年 4 月份的上证指数进行预测 , 取得了较高的精度 .另外 , 利用该模型对指数的升降情况进行预测 ,
对 6d 后升降情况的判断准确率达 80 %以上 .

2  G EP 简介
2.
1  GEP 的基本概念

收稿日期 :
2004-12-30
基金项目 :
国家自然科学基金(60473071), 973 计划项目(2002CB111504), 博士点基金(20020610007)
作者简介 :
廖勇(1968 -), 男 , 2002 级硕士研究生
932 自然科学版)              第 42 卷
四川大学学报(

  基因表达式编程(Gene Expression Programming , GEP)是 Candida Ferrei ra 在遗传算法(Genetic Algo-


rithm , GA)
和遗传编程(Genetic P rogram ming , GP)的基础上发展的新概念 , 首批研究成果于 2000 年 12 月
[ 3]
在网上发表 , 在 2001 年 12 月正式发表 .虽然 GEP 与 GA 和 GP 相比在主要步骤上都极为相似 , 但 GEP
克服了 GA 与 GP 的不足 , 更适合于函数关系的挖掘 .
它们最本质的区别在于 :
在 GA 中个体由固定长度的线性串(染色体)来表示 ;
在 GP 中个体则是由不
同大小和形状的非线性实体(解析树)所表示的 ;
而 GEP 将个体先编码为固定长度的线性串再表示成大
小 、形状都不同的非线性实体 .这样 , GEP 就克服了 GA 损失功能复杂性的可能性和 GP 难以再产生新的
变化的可能性 .所以说 GEP 是 GA 和 GP 的继承和发展 , 它综合了 GA 和 GP 的优点 , 具有更强的解决问
题的能力[ 4] .
[ 4]
个体在 GEP 中又称为染色体 , 染色体是由基
因通过连接运算符连接组成 .Gene 由头和尾组成 ,
head 包含了变量集中的变量和 函数集 FunctionSet
中的函数 , 而 tail 只包含了变量 .头和尾的 长度关
系为 :tail = head ×(n -1)+1 ;其中 n 是 此
Gene 含有的函数集中所有函数的最大目数 , 例如 :
如果 Gene 中 有 FunctionSet{+, -, ×, /}, 那 么 n
=2 , 因为在 F unctionSet 中函数最大的目数就是 2 .
Gene 的长度 和染瑟体包含的 Gene 个 数都可以 指
定 , 一旦指定 , 将保持不变 .
GEP 的编 码方式是先将个体编码为固定 长度
的线性串 , 待进行优化求解时再对操作对象进行编
码形成基因组 .其编码规则可描述为 :将表达式根
据其语义表示为表达式树 , 然后从上到下 , 由左至右
按层次遍历 ET 中的节点 , 得到的符号序列即为基
因编码的有效部分 .
若干染色体构成整个种群 .GEP 模拟自然界的
生物进化 , 按照“物竞天择 , 适者生存”的原则对种群
实施若干次的选择 、交叉 、变异等基因操作 , 使种群
一代代地进化 , 从中寻求出最优的个体 , 从而得到问
题的最终解 .
2.
2  GEP 算法简介
这里给出 GEP 算法的流程如图 1 所示 , 其细节 图 1  GEP 算法流程图
见文[ 4] . Fig .
1  T he flow chart of a g ene expression alg orithm

3  G EP- STOC K 模型
3.
1  GEP-S TOCK 中的概念
设计 STOCK-GEP 算法涉及到两个最重要的概念是 :
基因和适应度函数 , GEP-S TOCK 模型是要针
对历史时间的数据对股票指数进行预测 , 另外 , 我们对股票指数具有一定的先验知识 .针对以上特点 , 下
面在文[ 4] 中相应概念的基础上 , 给出 STOCK-gene 和 STOCK-fit ness 两个概念 .
定义 1(ST OCK-GEP 中的基因 :
n 时段-STOCK-GENE) 设函数集 F ={+, -, *,/ }, 终端变量集
T ={d 0 , d 1 , …, d n -1}, 其中 n 表示股票历史数据跨度天数 .按照文[ 4] 的规则和符号建立的基因称为 n
时段-ST OCK-GENE , 其中 ST OCK-Gene 的头由 F 和 T 中的元素组成 , 尾由 T 中元素组成 .利用对股票
第 5 期       廖勇等 :
基于基因表达式编程的股票指数时间序列分析 933

指数的先验知识 , 定义 STOCK-GEP 模型中的股票适应度如下 :


S TOCK-Fitness) 在 S TOCK-GEP 模型中 , 第 i 个个体的适应度函数 f i 规定由式(1)
定义 2( 计算
m

fi = ∑(K
j =1
-|P ij -T j |) (1)

其中 , K 为绝对误差的阈值 , 根据先验知识确定 , P ij 表示第 j 个样本根据第 i 个个体所对的表达式计算的


值 , m 表示样本个数 , T j 为第 j 个样本的目标值 .
由式(1)定义的适应度函数理论最大值为 mK , 该适应度函数在算法设计中具有简便易行的特点 .由
于阈值 K 选取时具有一定的随机性 , 按该适应度挖掘出的函数模型与传统的方法不具有可比性 .为了在
直观上理解所挖掘的函数模型的精度 , 针对挖掘出的函数模型 , 需要计算出其复相关系数(R)
R 2 =1 -SSE/ SST (2)
m m

∑(yj -yj ) , y 为变量y 关于函数 g 的估计值 , 称 SSE 为残差平方和 ;SST = ∑(yj -y) ,
2 2
式中 , SSE =
j =1 j =1

y 为 y 的平均值 , 称 SST 为总离差平方和 .


3.
2  STOCK-GEP 算法
GEP-ST OCK 模型采用下列反映股票特色和 GEP 技术的 ST OCK-GEP 算法 .
算法 1(
S TOCK-GEP 算法)
输入 :
训练数据 , 测试数据 , 历史数据天数 n , GEP 进化时其它各参数值
输出 :
最佳时间序列模型 , 复相关系数
step1 .根据 n 的值将只有一列的原始数据格式转化为有 n +1 列的数据格式
step2 .根据 n 时段-STOCK-GENE 的结构创建初始化群体
step3 .计算每个个体的 S TOCK-Fitness .若不符合结束条件 , 继续下一步 , 否则结束 .
Step4 .遗传操作产生下一代 :
(1)保留最好个体 ;
(2)选择操作(Select);
(3)复制(Replicat ion);
(4)
变异(Mutation);
(5)IS 插串(IS T ransposition), RIS 插串(RIS T ransposi tion), Gene 插串(Gene T ransposi-
tion);
(6)1 点重组(One-Point Recombination), 2 点重组(T w o-Point Recombination)、基因重组(Gene Re-
combination);
step5 .转到 step3 .
注意 , 算法的结束条件为最大适应度达到要求或迭代次数(即进化的代数)达到预定值 .

4  实验 ———基于 G EP-STOCK 的上证指数时间序列分析


4.
1  上证指数时间序列模型
以上证指数 2003 年共 239 个交易日的数据为训练数据 , 应用 ST OCK-GEP 方法进行时间序列分析 ,
以 2004 年 14 月份的数据作为测试数据 .
时间序列分析中 , 一个重要的参数是历史数据长度的选择 .我们对历史数据为 1 ~ 13d 分别进行了模
型的建立 , 发现对训练数据均能进行准确的模拟 , 其适应度函数结果见表 1 .但历史数据天数太短时 , 由于
提供的历史资料信息太少 , 在预测时效果不好 .
GEP 的函数集可以包含运算符{+, -, *, /}以外再加上其它初等函数 , 如 exp , ln , sin , cos 等 .在实验
中我们发现基于基本运算符建立的模型就能够达到较高的精度 , 所以在分析中 , 我们选择{+, -, *, /}运
算符作为函数集对 13d 的历史数据进行建模 .
以 13d 为历史数据建立的模型为
D = d 11/(d 4/(d 2 -d 4 )-(d 1 +d 4)
)+d 2/(d 0/(d 2 -d 5 )-d 11 )
+d 5/ (d 3 +d 0 /(d 0 -d 5)+d 6 +d 12)+(d 6 +d 4 *d 6 / d 0)/(
(d 11 +d 2 )*(d 7 -d 8 )
)
+d 4/ (d 1/(d 2 +d 4 -d 5 -d 7 )+d 7 )+d 12   R =0 .
9533 (2)
式中 , d i 表示前第 13 -i d 的数据 .
934 自然科学版)              第 42 卷
四川大学学报(

表 1 历史数 据为 1~ 13d 所对应模型的复相关系数表


T ab.
1 The R in the past 13 d
历史天数(d) 相关系数 历史天数(d) 相关系 数 历史天数(d) 相关系数
1 0.
9442 2 0.
9456 3 0.
9454
4 0.
9483 5 0.
9483 11 0.
9500
12 0.
9509 13 0.
9533 1(含复杂运算符) 0.
9459

4.
2  误差分析
利用式(2), 我们给出训练数据和测试数据的真实数据与模型数据的曲线比较图 , 见图 2 和图 3 .

图 2 上证指 数部分训练数据真实值与模型值比较曲线图
Fig .
2 Comparison between the values of training data and the values of model

图 3 上证指 数部分测试数据真实值与模型值比较曲线图
Fig .
3  Comparison betw een the values o f test data and the values of model
  限于篇幅 , 我们只列出 2004 年 4 月 1 日至 28 日 20 个交易日上证指数实际指数与预测指数比较表
(表 2).20d 的平均绝对误差为 11 .
08 , 平均相对误差为 0 .
64 %.由此可以看出 , 该模型具有高的预测精
度.
4.
3  指数涨跌分析
由于股票指数随机因数太大 , 因此 , 精确预测几乎是不可能的 .而人们往往更关心若干天后指数的涨
跌情况 .为此 , 我们利用(2)式 , 对股票在若干天后的涨跌情况进行了预测 , 并与实际涨跌情况进行了比
较 .我们选取了从 2004 年 1 月 2 日开始共 160 个交易日的数据进行分析 .分别判断了 1 ~ 40d 后 , 上证指
第 5 期       廖勇等 :
基于基因表达式编程的股票指数时间序列分析 935

数涨跌情况 , 并和实际涨跌情况进行了比较 , 统计模型判断正确的次数见表 3 .


表 2  2004 年 4 月份上证指数实际值与预测值
Tab .
2 T he indexes of Shanghai stock exchange in april 2004 and the predictive values
日期 实际指数 预测指数 绝对 误差 相对误差(%)
2004/ 04/ 01 1740.
05 1743 .
91 3.
86 0.
2213
2004/ 04/ 02 1736.
48 1739 .
95 3.
47 0.
1994
2004/ 04/ 05 1734.
05 1736 .
36 2.31 0.133
2004/ 04/ 06 1719.
67 1733 .
82 14.15 0.
8161
2004/ 04/ 07 1724.
28 1719 .
44 4.84 0.
2815
2004/ 04/ 08 1741.
62 1725 .
04 16.58 0.
9611
2004/ 04/ 09 1758.
15 1742 .
48 15.67 0.
8993
2004/ 04/ 12 1768.
65 1758 .
68 9.97 0.
5669
2004/ 04/ 13 1766.
48 1768 .
28 1.8 0.
1018
2004/ 04/ 14 1777.
52 1766 .
02 11 .
5 0.
6512
2004/ 04/ 15 1774.
55 1777 .
05 2.5 0.
1407
2004/ 04/ 16 1770.
28 1774 .
15 3.87 0.
2181
2004/ 04/ 19 1727.
35 1769 .
93 42.58 2.
4057
2004/ 04/ 20 1722.
99 1727 .
82 4.83 0.
2795
2004/ 04/ 21 1715.
14 1722 .
78 7.64 0.
4435
2004/ 04/ 22 1697.
16 1715 .
37 18.21 1.
0616
2004/ 04/ 23 1679.
08 1697 .
32 18.
24 1.
0746
2004/ 04/ 26 1693.
86 1679 .
05 14.
81 0.882
2004/ 04/ 27 1675.
89 1694 .1 18.21 1.
0749
2004/ 04/ 28 1669.
42 1676 .11 6.69 0.
3991

表 3  上证指数涨跌模型
T ab.
3 T he model of fluctuation of the index of Shang hai stock exchange
判断 正确 判断 正确 判断 正确 判断 正确
正确 率 正确率 正确率 正确率
天数 次数 天数 次数 天数 次数 天数 次数
1 86 .
538 11 138 .
863 21 148 .
925 31 155 .
969
2 113 .
706 12 142 .
888 22 150 .
938 32 154 .
963
3 119 .
744 13 143 .
894 23 151 .
944 33 153 .
956
4 121 .
756 14 142 .
888 24 147 .
919 34 155 .
969
5 127 .
794 15 143 .
894 25 150 .
938 35 157 .
981
6 131 .
819 16 144 .
900 26 154 .
963 36 156 .
975
7 130 .
813 17 143 .
894 27 153 .
956 37 153 .
956
8 132 .
825 18 148 .
925 28 154 .
963 38 155 .
969
9 135 .
844 19 149 .
931 29 152 .
950 39 152 .
950
10 133 .
831 20 147 .
912 30 155 .
969 40 154 .
962

  从上表可以看出 , 模型对 1d 后指数升降情况的判断正确率仅为 53 .


8 %, 也即错误率为 46 .
2 %.这几
乎可以认定 , 对 1d 后指数的升降情况判断 , 模型是无能为力的 .而对 6d 后升降情况的判断 , 正确率均达
到 80 %以上 , 对 17d 后的判断 , 达到 90 %以上 .这表明模型对时间较长的升降判断具有较高的准确性 .

5  总结
  以上针对股 票对象的特点 , 提出了适 应股票 特殊规律 的基因表 达式编程 模型 GEP-S TOCK , 包 括
S TOCK-GENE , ST OCK-fi tness , 利用 GEP-ST OCK 模型方法对股票上证指数进行了时间序列分析 , 并根
据所得模型进行了误差分析和指数涨跌情况分析 .20d 的平 均绝对误差为 11 .
08 , 平均相对 误差为 0 .
64 %.说明模型的预测精度较高 .从涨跌情况预测来看 , 模型对 6d 后指数的涨跌判断 , 正确率达 80 %以
936 自然科学版)              第 42 卷
四川大学学报(

上 .在今后的工作中 , 我们将利用 GEP 的方法 , 对影响股票数据的其他因素进行分析 , 以探讨股票数据预


测的更精确的方法 .

参考文献 :

[ 1]  Lu H , Han J, Feng L .Stock Mo vement and N-Dimensional I nter-T ransactio n Asso ciation Rules , Proc .of 1998 SIG M OD
Wo rkshop on Research Issues on Data M ining and K nowledge Discovery (DM K D' 98)[ J] .Seattle , W ashing ton , 1998 , 12 :
1 -12 :
7.
[ 2]  李元诚 , 方廷健 .基于粗糙集理论的支撑向量机预测方法 研究[ J] .数据采 集与处理 , 2003 , 18(2):199 -203 .
[ 3]  V apnik V N .T he nature of statistical learning theory[ M] .New York :Springer , 1995 .12-38 .
[ 4]  Candida Ferreira.Gene Expression P rogramming :A N ew A daptive Algo rithem fo r Solving Problems[ J] .Complex Sy stems ,
2001 , 13(2):87-129 .
[ 5]  Zuo Jie , T ang Chang jie , Li Chuan , et al .Time Series P rediction based on G ene Expression Prog ramming , WA IM 04 (In-
ternational Conference for Web I nformation Age 2004).LN CS (Lecture No tes In Computer science) Vol.3129[ M] .
Berling Heidelberg :Spring er Verlag , 2004 .
[ 6]  元昌安 , 唐常杰 , 左 吉力 , 等 .
基于基因表达式编程的函数挖 掘-收敛性 分析与 残差制导 进化算 法[ J] .四川大 学学报(工
程科学版), 1004 , 36(6):
100 -105 .
[ 7]  段磊 , 唐常杰 , 左 吉力 , 等 .
基于 基因 表达 式编程 的抗 噪声数 据的 函数 挖掘方 法[ J] .
计 算机研 究与 发展 , 2004 , 41(10):
1684 -1689 .
[ 8]  唐常杰 , 张天庆 , 左 吉力 , 等 .
基于基因表达式编程的知识发现 — 沿革 、成果和发展方向 , 2004, 24(10):
7-10.

Time Series Prediction in Stock-Price Index Based on


Gene Expression Programming
LI AO Y ong 1 , T ANG Chang-j ie 1 , Y U AN Chang-an 1, 2 , CHEN An-long 1 , DU AN Lei 1
(1 .College of Com puter , Sichuan university , Chengdu 610064 , China ;
2 .Dept .
of Information & T echnology , Guangxi T eachers Educat ion Univ .,Nanning 530001 , China)

Abstract :T he Gene Expression P rog ramming(


GEP)is a new branch of Genetic Algori thm(GA).Based on
the features of stock object s, presents the GEP-S TOCK model including the STOCK-GENE and the ST OCK-
fitness that appropriated to the special rules of stocks , and STOCK-GEP algori thm , gives experiments and
analy sis on the real stock-price index of Shanghai Stock Exchange .T he results show t hat the precision t hat
predicts by using stock-model is hig her t han tradi tio nal met hod .T he average of absolute error in 20 d is 11 .
08 , the average of relat ive error is 0 .
64 %.Analyzing the rise-fall of t he stock-price index according to the
S TOCK-GEP model , the co rrect rate of the rise-fall index after 6 d is up to 80 %.
Key words:data mining ;gene expression programming ;time series ;Stock data

You might also like