【原创】R语言股票时间序列分析报告代码_第1页
【原创】R语言股票时间序列分析报告代码_第2页
【原创】R语言股票时间序列分析报告代码_第3页
【原创】R语言股票时间序列分析报告代码_第4页
【原创】R语言股票时间序列分析报告代码_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【原创】附代码数据有问题到淘宝找“大数据部落”就可以了library(quantmod)#library(neuralnet)library(quantmod)library(plyr)library(TTR)library(ggplot2)library(scales)library(tseries)data=read.csv(600119.csv)a=data$收盘价a=diff(a)/a-length(a)aa=NaN=0aa=Inf=0#浏览数据data,2=data$日期data,4=c(0,a)#绘制时间序列图# #收集历史资料,加以整理,编成时间序列,并根据时间序列绘成统计图。时

2、间序列分析通常是把各种可能发生作用的因素进行分类, 传统的分类方法是按各种因素的特点或影响效果分为四大类:(1)长期趋势;(2)季节变动;(3)循环变动;(4)不规则变动。data=datanrow(data):1,plot(data,2,data,4)#技术指标lines(data,2,DEMAdata,4),col=green)lines(data,2,SMdata,4),col=red)legend(bottomright,col=c(green,red),legend=c(DEMA,SMA),lty=1pch=1)trend和“random【原创】附代码数据有问题到淘宝找“大数据部落”

3、就可以了199801-15200308-072009-02-092014-08-04#从时间序列图形来看,序列有明显趋势,所以该序列一定不是平稳序列。因为原序列为非平稳序列,所以选择一阶差分继续分析birthstimeseries=data,4birthstimeseries-ts(birthstimeseries,frequency=300,start=c(1998,15)birthstimeseries=na.omit(birthstimeseries)#2)Decomposethetimeseriesdataintotrend,seasonalityanderrorcomponents.

4、(10points)#开始分解季节性时间序列。#一个季节性时间序列中会包含三部分,趋势部分、季节性部分和无规则部分。分解时间序列就是要把时间序列分解成这三部分,然后进行估计。#对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用R中的“decompose。”函数来估计。这个函数可以估计出时间序列中趋势的、季节性的和不规则的部分,而此时间序列须是可以用相加模型描述的。#decompose。”这个函数返回的结果是一个列表对象,里面包含了估计出的季节性部分,趋势部分和不规则部分,他们分别对应的列表对象元素名为“seasonal”goDEMASMA【原创】附代码数据有问题到淘宝

5、找“大数据部落”就可以了decompose(birthstimeseries)DecompositionofadditivetimeseriesDecompositionofadditivetimeseries20002000200520102010Time#要剔除某个趋势时(我们就去掉季节因素),我们可以运用减法去掉该因素,下图就是去掉季节性因素后的修正序列。birthstimeseriesseasonallyadjusted-birthstimeseries-birthcomponents$seasonalplot(birthstimeseriesseasonallyadjusted)bi

6、rthcomponents0对应的相关系数均在该区间内则表示该变量自相性问题不严重pacf(birthstimeseriesseasonallyadjusted)oI IK-0ogLLLL0O0对应的相关系数均在该区间内则表示该变量自相性问题不严重datad=diff(birthstimeseriesseasonallyadjusted)#3)UseHoltsexponentialsmoothingtomakeshort-termforecasts.#指数平滑法(ExponentialSmoothing,ES)是布朗(RobertG.Brown)所提出,布朗认为时间序列的态势具有稳定性或规则性

7、,所以时间序列可被合理地顺势推延;他认为最近的过去态势,在某种程度上会持续到未来,所以将较大的权数放在最近的资料。#指数平滑法是生产预测中常用的一种方法。也用于中短期经济发展趋势预测,所有预测方法中,指数#一次指数平滑法#平滑是用得最多的一种。简单的全期平均法是对时间数列的过去数据一个不漏地全部加以同等利用;移动平均法则不考虑较远期的数据,并在加权移动平均法中给予近期资料更大的权重;而指数平滑法则兼容了全期平均和移动平均所长,不舍弃过去的数据,但是LLLLouE1-EBdouE1-EBd【原创】附代码数据有问题到淘宝找“大数据部落”就可以了仅给予逐渐减弱的影响程度,即随着数据的远离,赋予逐渐收

8、敛为零的权数。#也就是说指数平滑法是在移动平均法基础上发展起来的一种时间序列分析预测法,它是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测。其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均。#简单指数平滑法。简单指数平滑适用于可用相加模型描述,并且处于恒定水平和没有季节变动的时间序列地短期预测。#简单指数平滑法提供了一种方法估计当前时间点上的水平。为了更加准确的估计当前时间的水平,我们使用alpha参数来控制平滑,alpha的取值在0-1之间。当alpha越接近0,临近预测的观测值在预测中的权重就越小。plot(datad)Time#从该图中可以看出

9、整个曲线处于大致不变的水平,且随机变动在整个时间序列范围内也可以认为是大致不变的,所以该序列可以大致被描述为一个相加模型,因此我们可以使用简单指数平滑法p进行预测。我们采用R中的HoltWinters()函数,为了能够使用HoltWinters中的指数平滑,我们需要进行参数设置:beta=FALSE和gamma=FALSE,预测结果如下图:【原创】附代码数据有问题到淘宝找“大数据部落”就可以了#此外我们可以画出预测值和实际值,看看预测效果:hm=HoltWinters(datad,beta=F,gamma=F)hm#Holt-Wintersexponentialsmoothingwithout

10、trendandwithoutseasonalcomponent.#Call:#HoltWinters(x=datad,beta=F,gamma=F)#Smoothingparameters:#alpha:0.0009575354#beta:FALSE#gamma:FALSE#Coefficients:#,1#a-0.0001333355cat(HoltWinters()告诉我们alpha参数的估计值约为,hm$alpha,非常接近0,说明该序列比较平稳, 默认情况下HoltWInters仅会给出原始时间序列所覆盖时期内的预测,预测值存在房子名为为fitted的变量中,我们可以通过rainse

11、riesforecasts$fitted来获取这些值。)#HoltWinters()告诉我们alpha参数的估计值约为0.0009575354,非常接近0,说明该序列比较平稳,默认情况下HoltWInters仅会给出原始时间序列所覆盖时期内的预测,预测值存在房子名为为fitted的变量中,我们可以通过rainseriesforecasts$fitted来获取这些值。plot(hm)【原创】附代码数据有问题到淘宝找“大数据部落”就可以了Holt-WintersfilteringHolt-Wintersfiltering200020CJ52010Time#从之前的alpha和上图,可见我们预测的过

12、于平滑,R提供了样本预测误差平方和(SSE)来衡量预测效果。可以通过rainseriesforecasts$SSE来获取该值。hm$SSE#191.00893#4)FitthedatawithappropriateARIMAModels.z=datad#然后我们绘制自相关图和偏自相关图对序列进行进一步的检测acf(z)p招LLLLw.qow.qo【原创】附代码数据有问题到淘宝找“大数据部落”就可以了SeneszSeneszICICIO OLLOooLCLCO O一0.000.020.040.060.C80100.12Lag#从上面的图中我们可以发现自相关系数在滞后一期之后, 很快录入到置信区间

13、之内,因此可以认为该序列平稳pacf(z)【原创】附代码数据有问题到淘宝找“大数据部落”就可以了SerieszSerieszLag# #从偏相关系数的置信区间来看,由于相关系数都在置信区间之内,因此可以认为该序列平稳#Predictivemodel:ARIMAmodelspredict#然后检测序列的平稳性和独立性,这里我们使用的是Box-LjungtestBox.test(z,lag=10,type=Ljung)#Box-Ljungtest#data:z#X-squared=1128.9,df=10,p-value2.2e-16#由于p值大于0.05,因此我们接受原假设认为该数列独立,即原数

14、列为白噪声序列#然后我们对序列进行单位根检测,如果序列不存在单位根,那么该数列是平稳序列adf.test(z)#Warninginadf.test(z):p-valuesmallerthanprintedp-value#AugmentedDickey-FullerTest【原创】附代码数据有问题到淘宝找“大数据部落”就可以了#data:z#Dickey-Fuller=-28.804,Lagorder=16,p-value=0.01#alternativehypothesis:stationary#由于p值大于0.05,因此我们接受原假设认为该数列平稳#从上面的自相关图和偏相关图,我们可以看到该模型为arima(1,0,0)library(forecast)#Warning:packageforecastwasbuiltunderRversion3.3.3x-arima(z,c(1,0,0)#因此建立模型之后对该序列进行预测r1-pre

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论