隐马尔科夫模型在股票市场预测中的应用

本文呈现了隐马尔科夫模型方法在股票价格相关市场中的预测。我们应用HMM来预测部分航空公司股票。由于其动态系统建模的适用性,HMM已被广泛应用于模式识别和分类问题。然而,引用HMM预测未来事件的发生不是那么的直接。我们仅使用部分航空公司数据来训练HMM,从过去数据集中寻找感兴趣的行为数据模式变量。通过对数据集邻近变量插值来准备数据。适用HMM得到的数据结果令人鼓舞,HMM为股票市场预测提供新凡是,一个崭新的研究领域即将展开。
关键词: HMM,股票市场预测,金融时间序列,特征选择
《隐马尔科夫模型在股票市场预测中的应用》

1. 引言

预测股票数据或金融市场是AI领域的一大挑战。预测研究的目标以大大超出传统AI研究的范围,而着重开发智能系统去仿真人类智慧。股票市场天生就是复杂(非线性)的,且波动剧烈的。价格依据许多因素波动,名义股权,利率,证券,期权,权证,并购和大金融公司所有人或公司等等。人类交易员很难在这样的市场上持续盈利。因此,开发这样的AI系统需要一个迭代知识发现进程和数据挖掘的系统改进,知识工程理论和数据建模,和不断试错的实验。
股票市场近年来已成为宏观经济的重要组成部分。股票市场的许多波动会影响到我们个人和公司的生存,乃至一国的经济健康。股票市场已经成为许多热门投资中的一员,由于其较高的回报。然而,由于不可预测的行为,股票市场往往存在一些投资风险。所以,人们普遍渴望一个“智能”的预测模型。
近期发表的大量研究试图寻找一个最优的预测模型。许多研究使用了时间序列模型,例如自回归移动平均ARMA,和许多多变量回归模型。近年来,许多股票预测系统基于AI技术开发,包括人工神经网络ANN,模糊系统以及两者糅合,支持向量机SVM等。然而,大多数都有其自身的局限性,例如,ANN由于构建方式有许多方向性问题,而应用模糊系统需要许多专家知识背景。
本文中,我们通过构建隐马尔科夫模型HMM来预测股票市场数据。HMM被广泛应用于语音识别,DNA测序,电子信号预测和图像处理等。本文中HMM被用来开发一个新的预测方法。首先,我们根据过往数据匹配当日股票价格行为来标记模式,然后,将合适的邻近价格元素插入两个数据集,通过感兴趣的变量来预测明天的股价。我们提出方法的细节在第三部分呈现。本文的其他部分安排如下:第二部分提供一个HMM的简短介绍,第四部分列出使用HMM和ANN的实验结果。第五部分总结。

2. 用HMM来预测

HMM是一个有限状态机,它包含一些固定的状态,提供了一个观测多元时间序列的概率框架。HMM最早在二十世纪70年代作为一个语音识别工具提出。由于其强大的梳理结构和理论基础,这个基于统计方法的模型日益成为近年来各种领域的热门方法。今年来研究者提出将HMM作为一个分类器或预测器用于语音信号识别,DNA测序和手写字符识别,NLD等。HMM无疑是许多领域的强大工具。HMM的优势总结如下:

  • HMM有强大的统计学基础
  • 可以稳健地处理新数据
  • 能够有效地开发和评估
  • 能够有效预测相似的模式
    Rabiner(1989)解释了HMM的理论基础以及如何用于信号预测,下面我们简要介绍HMM。

2.1 隐马尔可夫模型

HMM的特征属性如下:
1)模型中状态的数量
2)可观测符号的数量
3)陈述转变的可能性
4)每个状态的观测结果(emission)的可能性分布
5)初始状态分布
为了下文表达便利,我们将HMM的概念罗列如下:
N=模型中的状态数量
M=每个状态的观测结果(与模型系统的物理输出相一致)
T=观测序列的长度
O=观测序列,如$O_{1},O_{2},O_{3},…,O_{T}$
Q=马尔科夫模型中的状态序列$q_{1},q_{2},q_{3},…,q_{T}$
A={$a_{ij}$}状态转移矩阵,其中$a_{ij}$代表从状态$i$转移到$j$的概率
B={$b_{j}(O_{t})$}观测结果矩阵,其中$b_{j}(O_{t})$代表状态$j$下观测到$O_{t}$的概率
$\pi$={$\pi$}表示先验概率,其中$\pi$表示实验最初状态为状态$i$的概率。
$\lambda=(A,B,\pi)$表示HMM模型。
正如上文HMM对状态个数、观测结果个数、转移矩阵、观测结果矩阵和先验概率的定义,$a_{ij}$,$b_{j}(O_{t})$和$\pi$有如下关系:
$$
\sum_{j}a_{ij}=1, \sum_{t}b_{i}(O_{t})=1, \sum_{i}\pi_{i}=1 而且对\forall i,j,t,有 a_{ij},b_{j}(O_{t}),\pi \geq 0
$$
为了构建HMM,需要注意以下三点基本问题:
1. 在给定了模型$\lambda=(A,B,\pi)$时,我们该如何计算$P(O|\lambda)$,即观测序列发生的概率。
2. 给定观测序列$O$和模型$\lambda$时,我们如何选择状态序列来解释观测结果
3. 给定观测序列$O$和模型参数$A$,$B$和$\lambda$时,如何选定对观测数据最具有解释能力的模型。
为了解决以上问题有一些现成的算法。在我们的任务中,我们运用前向-后向算法来计算$P(O|\lambda)$,用维比特算法来解决第二个问题。用Baum-Welch算法来训练模型,具体的实验细节可以再Rabiner文中看到。

3. 应用HMM进行股市预测

这一部分,我们开发了HMM基本工具来进行时间序列预测,例如股市预测。当谈到HMM,模型中选择状态变量和观测结果是件枯燥的工作。例如我们使用了三个状态变量的从左到右型HMM。
在我们问题中,我们考虑四种股票的输入特征,分别是开盘价,收盘价,最高价和最低价。第二天收盘价是与四个输入变量相关的目标价格。我们的观测变量是连续的而非离散的,我们选择三种参数,混合每种状态来作为模型的密度。
对于先验概率$\pi_{i}$,我们使用标准化后的一组随机数,以确保$\sum_{i=1}^{N}\pi_{i}=1$。由于数据集是连续的,因此各种状态下的结果概率不能被计算。为了解决这一问题,我们运用三维高斯分布来作为观测结果概率密度函数的初始选择。因此,我们有:
$$
b_{j}(O)=\sum c_{jm}\aleph\left[O,\mu_{jm},U_{jm} \right] 1\leq j \leq N
$$
其中:
$O$为观测向量,$c_{jm}$为混合系数,即状态j的第m个混合,其中$\sum_{m=1}^{M}c_{jm}=1$,$\mu_{jm}$为混合元素的均值向量,$U_{jm}$为m个混合成分的协方差矩阵。$\aleph$为高斯概率密度。
在试验中,我们的对象是运用前文提到的HMM模型来预测下一天收盘价。为了训练模型,我们用大约一年半之前的日间数据和近三个月的数据来检验模型。输入变量是:开盘价、最高价、最低价、收盘价,输出变量是下一天的收盘价。
我们使用HMM的创新思想在于使用训练数据集来估计HMM的参数集($A,B,\pi$)。

4. 实验:训练和回测

为了训练我们的HMM模型,我们将数据集拆分为两部分,一个是训练集,一个是回测集。例如,当训练西北航空的股票数据时,我们使用2002年12月18日到2004年9月29日的数据,来预测2004年9月30日的数据.

点赞
  1. LesLumB说道:

    Anafranil Pills Active Ingredient Propecia Baclofen Generique viagra Buy Clomiphene Citrate Acheter Cialis France Pharmacie

  2. LesLumB说道:

    Levitra Bayer 10mg online pharmacy Comprar Viagra Sin Receta En Valencia Le Baclofene Contre L'Alcoolisme

  3. LesLumB说道:

    Efficacite Cialis [url=http://orderviapills.com]viagra[/url] Levitra Feminin What Is Amoxicillin Use For

发表评论