上证指数的实证分析文档格式.docx
- 文档编号:6473611
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:24
- 大小:512.63KB
上证指数的实证分析文档格式.docx
《上证指数的实证分析文档格式.docx》由会员分享,可在线阅读,更多相关《上证指数的实证分析文档格式.docx(24页珍藏版)》请在冰点文库上搜索。
张秋水等通过对公司财务分析得出,采用传统分析研究股票指数问题,无法克服模型检验困难以及推广能力差的难题。
正确选择可收益股票成功的关键在于如何利用相对较少且包含有效信息量较多的数据和尽可能简单的股票指数模型来实现预期效果。
股票指数模型构建中,存在许多重要影响因素如利率、资产回报率、财务比率等,山于输入变量的不同可能导致分类结果的存在差异。
影响股票指数的特征成百上千,但不一定所有的特征对其都有显著影响,为了得到高质量的数据,希能用有效的特征选择方法来删除噪声,选择影响股票投资分类的重要特征对机器学习的泛化能力十分有效。
二、研究意义
股票指数在金融和投资领域占据一席之地,山于股票市场盘根错节,影响股票分类因素众多,其中许多宏观政治因素和经济因素也潜移默化影响着股票走势,股票价格系统呈现出复杂的非线性,如此庞大的数据量,在对股票市场进行分析时,利用传统的投资模式对其进行较为准确的分类难度较大。
我们希望利用相对少且有效的数据和尽量简易的分类模型获取股票的最优分类。
传统股票的投资研究有很多不足,传统采用的讣量经济模型多是用简单财务指标作为影响因子来解释股票收益,采用传统的模型方法研究股票投资问题很难克服模型检验困难和推广泛化能力差的问题。
其中,综合指标评价方法多是从公司角度设置指标,既缺乏针对性,检验乂困难,可行度低。
对于投资者来说,一个非常具有挑战性的问题即如何利用高质量的数据建立最佳股票指数模型。
每支股票有大量的表现特征,怎样从中提取有效的特征十分关键,考虑特征选取方式把无关或多余数据剔除来降低数据维度是成功分类的关键因素,对初始输入特征的有效性进行一系列的评测,对股票投资价值的重点特征进行选取,对于提高模型的精度和效率有着至关重要的作用。
第二章国内外研究现状
股市是国民经济的晴雨表,近年来,我国国内金融市场繁荣兴盛,我国股票市场的规模随着经济的快速发展而日益壮大,股票种类和数量与日俱增,股市分析引发私人和机构投资者浓厚的兴趣。
对于股票选择的研究成为当前研究的热点,众多研究人员对股市做出研究分析,常见的指标有股票价格预测指数、股票价格走势预测、交易机制预测、股票投资分类等。
为了更加深入了解股市行为以及在股票选取时得到有利的信息,对股票投资价值分类模型研究很有必要。
基本面分析法、演绎分析法以及技术分析法是对传统股票进行分析时常用的方法。
这些传统的分析方法的优点在于其简单快捷,可以在一定程度上较为准确地描述股票的定性和定量特点,缺点是这些方法存在较大主观因素,统计支撑理论薄弱。
随着现代统计方法的日渐成熟以及人工智能、信息技术的逐步深入,打开了股票研究新的思路。
自回归积分移动平均模型(ARIMA)和广义自回归条件异方差模型(GARCH)等属于常见的统计学理论模型。
这些模型局限在于:
通常情形下,要求时间疗;
列值之间的线性相关假设、正态分布假设和平稳性假设等,针对非线性问题的解决、模型的建立以及参数的选择上存在一定的困难。
近些年来,为了攻克传统模型局限,分析股票时通常采用人工智能模型,其中最常用的有随机森林、基于模糊聚类的集成算法、支持向量机以及决策树等。
股票市场含有庞大且杂乱的数据库,支持向量机被证实对输入样本可以通过有效的处理进行线性或非线性模式识别来挑选优质股票以及预测。
第三章基础理论
一、ARIMA模型
时间序列是将同一统计指标的数值按其先后发生的时间顺序排列而成的数列。
时间序列分析的主要LI的是根据已有的历史数据对未来进行预测。
常用的时间序列模型有四种:
自回归模型AR(p)、移动平均模型MA(q)、自回归移动平均模型ARMA(p,q)、自回归差分移动平均模型ARIMA(p,d,q),可以说前三种都是ARIMA(p,d,q)模型的特殊形式。
模型的具体方程可以查找相关的专业书籍及网上的资料。
ARIMA模型(Auto-regressiveIntegratedMovingAveragemodel),差分整合移动平均自回归模型,乂称整合移动平均自回归模型(移动也可称作滑动),时间序列预测分析方法之一。
ARIMA(p,d,q)中,AR是,,自回归"
,p为自回归项数;
MA为“滑动平均“,q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。
"
差分”一词虽未出现在ARIMA的英文名称中,却是关键步骤。
ARIMA(p,d,q)模型是ARMA(p,q)模型的扩展。
ARIMA(p,d,q)模型可以表示为:
i—£
①厶](i—厶财=[1+匕厶k
\1=1\i=l
其中厶是滞后算子,JeZ,J>
0o
ARIMA模型是在平稳的时间疗;
列基础上建立起来的,因此时间序列的平稳性是建模的重要前提。
检验时间序列模型平稳的方法一般采用ADF单位根检验模型去检验。
当然如果时间序列不稳定,也可以通过一些操作去使得时间序列稳定(比如取对数,差分),然后进行ARIMA模型预测,得到稳定的时间序列的预测结果,然后对预测结果进行之前使序列稳定的操作的逆操作(取指数,差分的逆操作),就可以得到原始数据的预测结果。
ARIMA模型运用的流程:
步骤一:
根据时间序列的散点图、自相关函数和偏自相关函数图识别其平稳性。
步骤二:
对非平稳的时间序列数据进行平稳化处理。
直到处理后的自相关函数和偏自相关函数的数值非显著非零。
步骤三:
根据所识别出来的特征建立相应的时间序列模型。
平稳化处理后,若偏自相关函数是截尾的,而自相关函数是拖尾的,则建立AR模型;
若偏自相关函数是拖尾的,而自相关函数是截尾的,则建立MA模型;
若偏自相关函数和自相关函数均是拖尾的,则序列适合ARMA模型。
步骤四:
参数佔讣,检验是否具有统计意义。
步骤五:
假设检验,判断(诊断)残差序列是否为口噪声序列。
步骤六:
利用已通过检验的模型进行预测。
二、支持向量机
支持向量机(SupportVectorMachine,SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面。
SVM不仅可以用于分类模型,也可以用于回归模型。
SVM使用较链损失函数讣算经验风险并在求解系统中加入了正则化项以优化结构风险,是一个具有稀疏性和稳健性的分类器。
SVR同SVC—样,是从训练数据中选取一部分更加有效地支持向量,根据这些训练样本的值通过回归分析预测U标。
在SVM里,核函数是一种非常有用的特征映射技巧,径向基核函数对特征可以进行非线性映射。
SVR支持向量机,通过引入不敬感损失函数实现数据回归,保留了SVM的所有优点,具有较强的鲁棒性。
采用fM=(w-x)+b作为线性回归函数,
D={(兀,X)}J=1,2,…,”;
兀已RR作为估计训练样本集,即可表示为:
-w-xi-b<
£
w-xi+b-y.<
优化目标为:
min丄加
2
为提高学习的泛化能力及减少误差,将松弛变量疥no和符no引入上式可得:
V十*一,2,5
w-Xj+b-yi<
8+^i
此时优化口标变为:
min
-MI+cZte+^x)p式子中常数c>
o对两者做
岀折衷,表示对超岀误差£
的样本的惩罚程度。
构造Lagrange函数:
血,§
;
,$)=»
『+cf(釜+為-Ea;
k;
+£
+yi-w-xf-b]Lr-lJ-l
_1>
,检+£
+Z--w•齐_b]_£
@;
y;
+§
yJ
r-lJ-l
公式中%&
noj=o」2・Mo
整理之后可得:
山咗,弓)=-念心+e)+!
>
(/-e)-?
左f(G+eE;
+勺比T)
/-Ir-l//-!
j-1
在KKT条件下,根据Wolf对偶定义,得到Lagrange的对偶形式:
maxW"
a)=—念(a;
+y)+£
x(a;
—yj—f(a;
+ai\aj+aj\xi-xj)
J-l/-I//-]>
1
s.t.为(a,+a;
)=0,0«
e,a;
<
C,z=1,2,r-l
得到回归函数为:
fM=(wx)+b=土(a;
一XU'
力+h
■1
用核函数Kg,形)替代内积运算U-xJ,可实现非线性函数的拟合:
f(v)=M①⑴+〃=乞(a;
一a,X(xrx)+h
/-I
3.随机森林
随机森林是用随机的方式建立一个森林,森林里面有很多的决策树组成,随
机森林的每一棵决策树之间是没有关联的。
在得到森林之后,当有一个新的输入
样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就预测这个样本为那一类。
在建立每一棵决策树的过程中,有两点需要注意采样与完全分裂。
首先是两个随机采样的过程,randomforest对输入的数据要进行行、列的采样。
对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。
假设输入样本为N个,那么釆样的样本也为N个。
这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fittingo然后进行列采样,从M个feature中,选择m个(m«
M)。
之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。
山于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting,当层数较低的时候。
随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。
简单来说,随机森林就是由多棵CART(ClassificationAndRegressionTree)构成的。
对于每棵树,它们使用的训练集是从总的训练集中有放回釆样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。
在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,根据Leo-Breiman的建议,假设总的特征数量为M,这个比例可以是sqrt(M),l/2sqrt(M),2sqrt(M)o
随机森林的训练过程如下:
⑴给定训练集S,测试集T,特征维数F。
确定参数:
使用到的CART的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:
节点上最少样本数s,节点上最少的信息增益
对于第棵树,i=l-t:
(2)从S中有放回的抽取大小和S一样的训练集S(i),随机的选择作为根节点的样本,从根节点开始训练
(3)如果当前节点上达到终止条件,则设置当前节点为叶子节点,如果是分类问题,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例;
如果是回归问题,预测输出为当前节点样本集各个样本值的平均值。
然后继续训练其他节点。
如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征。
利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点。
继续训练其他节点。
有关分类效果的评判标准在后面会讲。
(4)重复⑵⑶直到所有节点都训练过了或者被标记为叶子节点。
⑸重复⑵,(3),⑷直到所有CART都被训练过。
随机森林的预测过程如下:
(1)从当前树的根节点开始,根据当前节点的阈值th,判断是进入左节点(<
th)还是进入右节点(>
=th),直到到达,某个叶子节点,并输出预测值。
(2)重复执行
(1)直到所有t棵树都输出了预测值。
如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;
如果是回归问题,则输出为所有树的输出的平均值。
注:
有关分类效果的评判标准,因为使用的是CART,因此使用的也是CART的平板标准,和C3OC4.5都不相同。
对于分类问题(将某个样本划分到某一类),也就是离散变量问题,CART使用Gini值作为评判标准。
定义为G汕=1-工(P(D*P(j)),P(i)为当前节点上数据集中第i类样本的比例。
例如:
分为2类,当前节点上有100个样本,属于第一类的样本有70个,属于第二类的样本有30个,则Gini=l-0.7x07-0.3x03=0.42,可以看出,类别分布越平均,Gini值越大,类分布越不均匀,Gini值越小,在寻找最佳的分类特征和阈值时。
评判标准为:
argmax(Gini-GiniLeft-GiniRight),即寻找最佳的特征f和阈值th,使得当前节点的Gini值减去左子节点的Gini和右子节点的Gini值最大。
对于回归问题,相对更加简单,直接使用argmax(Var-VarLeft-VarRight)^为评判标准,即当前节点训练集的方差Var减去减去左子节点的方差VarLeft和右子节点的方差VarRight值最大。
RandomForest与Bagging的区别在于:
Bagging每次生成决策树的时候从全部的属性Attributes里面选择,而RandomForest是随
机从全部Attributes的集合里面生成一个大小固定的子集,相对而言需要的计算量更小一些。
第四章实证分析
一、数据处理
山于要分析的是股票的收盘价,在赌如数据以后,把收盘价那列取出来,观察数据,是从2019年的股票收盘价到2017年的股票收盘价,所以首先我们需要倒置数据。
倒置后数据第一行是2017年的数据,结尾的数据是2019年的。
之后把倒置后的数据划分为用于训练建立ARIMA模型的训练集和用于测试模型的测试集。
分别取95%的数据用于训练模型,5%的数据用于检测模型。
最后把数据转换成时间序列。
二、模型的建立
2.1平稳性检验
在进行建模之前对数据进行了口噪声检验,检验结果表明源数据不是口噪声,可以进行接下来的数据分析建模。
本文采用直观地观察法和单位根检验的方法对数据进行平稳性检验。
1、观察法:
20仃.0
2017.52018.0
Time
图一、源数据时间序列
2018.5
2019.0
OO0C0国000C00K
dJSQM£
EP
通过图可以发现原始数据从2017年开始到3月,2017年5月到2018年存在一个上升的趋势,以及从2017年4月到2017年5月,2018年到2019年存在一个下降的趋势。
所以不是平稳序列。
最后对源数据进行了一阶和二阶差分,得到的结果如下图所示。
O
L
I
2017020175201802018520190
图三、二阶差分
从差分后的图看来,差分后的数据已经是平稳序列,为了简单化,我们选择
一阶差分。
2、单位根
对于单位根检验,我们用adf检验,发现p-value为0.7>
0.03,所以原假设为所检验的数据是不平稳序列。
进而对差分后的数据进行adf单位根检验,检验的结果为P-value为0.0K0.03,所以差分后的数据为平稳数据。
同理,我们选择一阶差分。
2.2构建ARIMA模型
数据经过时间序列转换以及一阶、二阶差分处理后已经是平稳序列,接下来要确定ARIMA(p,d,q)中的p、q值。
将用acf,pacf来确定p、q值。
其acf,pacf的图如下所示。
Senesdato.drttl
Senesdata.dirri
80
80
89
T€£
图四、PACF检验
如图所示,经过ACF和PACF检验,对于ACF发现在滞后一阶后数据在两倍标准差范围内,对于PACF滞后4阶在两倍标准差范围内波动,山此可以确定p,q值为(1,4)。
为了更加精确地找出一个模型,我们乂釆用了自动定阶ARIMA模型,给出的最优模型是ARIMA(0,1,0)。
为了找出最好的模型,我们采用BIC准则来确定。
表1两个模型的BIC
模型
BIC
ARIMA(0,1,0)
4715.035
ARIMA(1,1,4)
4700.179
根据BIC最小准则,我们选择的模型是ARIMA(1,1,4)o
2.3模型的检验
为了检验模型,我们对模型的拟合数据进行了可视化,其结果如下图所示。
从图中可以看出拟合的结果误差在[-100,100]中进行变化。
ARIMAforforecasting
图五、模型数据可视化
最后,对残差进行了口噪声检验,检验的结果是p-vale为0.9528>
0.03,说明残差为白噪声,没有继续研究的价值,从侧面证明ARIMA(1,4,1)能够把原始数据的特征提取完整,说明我们的模型性能良好。
2.4模型预测
为了检验数据模型和用模型进行预测,我们用5%的数据进行了预测,其预测结果在95%的置信区间内,其结果如下图所示。
阴影部分代表95%的置信区间,我们采用了相对误差的方式来对模型进行了评价,其结果如图所示,结果表明相对误差在0.0到0.1之间。
说明模型能够对收盘价进行良好的预测。
图六、ARIMAd,1,4)预测结果
s-
§
-
2019.022019042019C62O19OB201910201912201914
图七、相对误差
OSso
90030gaEro一2
三.模型比较
为了验证模型的可靠性以及准确性,我们也建立了支持向量机模型和随机森林模型,并得到了结果。
如下图所示为支持向量机得到的结果。
SVMforforecasting
20仃020仃5201802018520190
9T49gTap9VB0?
曇9¥
出・
图八、支持向量机模型结果
从图中可以看出用于拟合模型的训练集讷河效果非常差,其残差也变得非常大。
说明拟合效果不好。
下图是随机森林用于拟合收盘价的模型。
从图中可以看出其拟合的效果好于支持向量机,其残差在[-1000,200]变化,但其结果与ARIMA相比,从图上直观地看不出。
Randomforestforforecasting
图九、随机森林拟合结果
接下来,为了量化结果,我们计算了三个模型的MSE,从而来比较模型的好坏。
其结果如表所示。
表2比较结果
ARIMA(1,4,1)
SVM
RandomForest
771.5034
9.12*10"
34.24
从表中可以看出来,随机森林算法对于收盘价的拟合效果最好,MSE最小。
但是从残差来看,范围较大,用于对精确度要求较高的股票数据,我们要考虑很多。
对于ARIMA和随机森林算法来看,孰好孰坏值的商榷。
第五章结论与建议
本文主要详述了ARIMA的建模过程,具体包括数据的处理,数据平稳性检验,ACF、PACF定阶,采用b股上证指数的收盘价进行了建模。
把数据分为用于建立模型的训练集和用于测试模型的测试集。
用93%的数据进行了建模和自动定阶建立的ARIMA模型进行了比较,结果显示我们根据ACF、PACF建立的模型具有更小的BIC,所以釆用的模型是ARIMA(1,1,4)o最后采用TARIMA(1,14)对测试集数据进行了预测,预测结果良好,所建立的ARIMA(1,1,4)能够用于收盘价的预测。
而后釆用了与SVM,随机森林算法比较,发现SVM拟合效果最差。
但是对于随机森林与ARIMA,我们需要从更多的方面来考虑。
附录
data<
-read.c$v(,,./data.c$vn,header=TRUE)
str(dataScolse)
head(data)
nro\Md也)
close<
-rev(data$colse)
str(close)
train.id<
-l:
(0.95*length(close))
tram.clata<
-close[tram,id]
test.data<
-close[-train.id]
data.close<
-ts(tram.data.start=c(2017.1.3),end=c(2019,2,22).fi:
equency=((length(tram.data)-2)/2))
str(data.close)
Box.test(data.close.t\pe=,Ljung,.lag=log(length(data.close)))
plot(data.closexol=*redH)
data.dififl<
-diflf(data.close.differences=1)
plot(data.diffl)
data.difi2<
-difif(data.close.differences=2)
plot(data.diff2)
libraty(t$enes)
adf.test(data.close)
adf.test(data.diffl)
adftest(data.difi2)
acf<
-acf(data.diffl,lag.max=20.plot=FALSE)
plot(acf)
pacf<
-pacf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上证指数 实证 分析