1. 如何用Arma模型做股票估计
时间序列分析是经济领域应用研究最广泛的工具之一,它用恰当的模型描述历史数据随时间变化的规律,并分析预测变量值。ARMA模型是一种最常见的重要时间序列模型,被广泛应用到经济领域预测中。给出ARMA模型的模式和实现方法,然后结合具体股票数据揭示股票变换的规律性,并运用ARMA模型对股票价格进行预测。
选取长江证券股票具体数据进行实证分析
1.数据选取。
由于时间序列模型往往需要大样本,所以这里我选取长江证券从09/03/20到09/06/19日开盘价,前后约三个月,共计60个样本,基本满足ARMA建模要求。
数据来源:大智慧股票分析软件导出的数据(股价趋势图如下)
从上图可看出有一定的趋势走向,应为非平稳过程,对其取对数lnS,再观察其平稳性。
2.数据平稳性分析。
先用EVIEWS生成新序列lnS并用ADF检验其平稳性。
(1)ADF平稳性检验,首先直接对数据平稳检验,没通过检验,即不平稳。
可以看出lnS没有通过检验,也是一个非平稳过程,那么我们想到要对其进行差分。
(2)一阶差分后平稳性检验,ADF检验结果如下,通过1%的显着检验,即数据一阶差分后平稳。
可以看出差分后,明显看出ADF Test Statistic 为-5.978381绝对值是大于1%的显着水平下的临界值的,所以可以通过平稳性检验。
3.确定适用模型,并定阶。可以先生成原始数据的一阶差分数据dls,并观测其相关系数AC和偏自相关系数PAC,以确定其是为AR,MA或者是ARMA模型。
(1)先观测一阶差分数据dls的AC和PAC图。经检验可以看出AC和PAC皆没有明显的截尾性,尝试用ARMA模型,具体的滞后项p,q值还需用AIC和SC具体确定。
(2)尝试不同模型,根据AIC和SC最小化的原理确定模型ARMA(p,q)。经多轮比较不同ARMA(p,q)模型,可以得出相对应AIC 和 SC的值。
经过多次比较最终发现ARMA(1,1)过程的AIC和SC都是最小的。最终选取ARIMA(1,1,1)模型作为预测模型。并得出此模型的具体表达式为:
DLS t = 0.9968020031 DLS (t-1)- 1.164830718 U (t-1) + U t
4.ARMA模型的检验。选取ARIMA(1,1,1)模型,定阶和做参数估计后,还应对其残差序列进行检验,对其残差的AC和Q统计检验发现其残差自相关基本在0附近,且Q值基本通过检验,残差不明显存在相关,即可认为残差中没有包含太多信息,模型拟合基本符合。
5.股价预测。利用以上得出的模型,然后对长江证券6月22日、23日、24日股价预测得出预测值并与实际值比较如下。
有一定的误差,但相比前期的涨跌趋势基本吻合,这里出现第一个误差超出预想的是因为6月22日正好是礼拜一,波动较大,这里正验证了有研究文章用GARCH方法得出的礼拜一波动大的结果。除了礼拜一的误差大点,其他日期的误差皆在接受范围内。
综上所述,ARMA模型较好的解决了非平稳时间序列的建模问题,可以在时间序列的预测方面有很好的表现。借助EViews软件,可以很方便地将ARMA模型应用于金融等时间序列问题的研究和预测方面,为决策者提供决策指导和帮助。当然,由于金融时间序列的复杂性,很好的模拟还需要更进一步的研究和探讨。在后期,将继续在这方面做出自己的摸索。
2. 怎么用机器学习模型做时间序列预测
SVM理论是在统计学习理论的基础上发展起来的,由于统计学习理论和SVM方法对有限样本情况下模式识别中的一些根本性的问题进行了系统的理论研究,很大程度上解决了以往的机器学习中模型的选择与过学习问题、非线性和维数灾难、局部极小点问题等。应用SVM进行回归预测的步骤具体如下:
1)实验规模的选取,决定训练集的数量、测试集的数量,以及两者的比例;2)预测参数的选取;3)对实验数据进行规范化处理;4)核函数的确定;5)核函数参数的确定。其中参数的选择对SVM的性能来说是十分重要的,对于本文的核函数使用RBF核函数,对于RBF核函数,SVM参数包括折衷参数C、核宽度C和不敏感参数E。目前SVM方法的参数、核函数的参数选择,在国际上都还没有形成统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻和交叉检验等进行寻优。实际应用中经常为了方便,主观设定一个较小的正数作为E的取值,本文首先在C和C的一定范围内取多个值来训练,定下各个参数取值的大概范围,然后利用留一法来具体选定参数值
股价时间序列的SVM模型最高阶确定
股价数据是一个时间序列,从时间序列的特征分析得知,股价具有时滞、后效性,当天的股价不仅还与当天各种特征有关,还与前几天的股价及特征相关,所以有必要把前几天的股价和特征作为自变量来考虑。最高阶确定基本原理是从低阶开始对系统建模,然后逐步增加模型的阶数,并用F检验对这些模型进行判别来确定最高阶n,这样才能更客观反映股票价格的时滞特性。具体操作步骤如下:假定一多输入单输出回归模型有N个样本、一个因变量(股价)、m- 1个自变量(特征),由低阶到高阶递推地采用SVM模型去拟合系统(这儿的拓阶就是把昨天股价当做自变量,对特征同时拓阶),并依次对相邻两个SVM模型采用F检验的方法判断模型阶次增加是否合适[ 7]。对相邻两模型SVM ( n)和SVM ( n+ 1)而言,有统计量Fi为:Fi=QSVR (n)- QSVR( n+1)QSVR (n)1N - m n - (m -1)mi =1,2,,, n(1)它服从自由度分别为m和(N - m n - (m -1) )的F分布,其中QSVR (n)和QSVR( n+1)分别为SVR ( n)和QSVR( n+1)的剩余离差平方和,若Fi< F(?,m, N-m n- (m-1) ),则SVM (n )模型是合适的;反之,继续拓展阶数。
前向浮动特征筛选
经过上述模型最高阶数的确定后,虽然确定了阶数为n的SVM模型,即n个特征,但其中某些特征对模型的预测精度有不利影响,本文采用基于SVM和留一法的前向浮动特征特征筛选算法选择对提高预测精度有利影响的特征。令B= {xj: j=1,2,,, k}表示特征全集, Am表示由B中的m个特征组成的特征子集,评价函数MSE (Am)和MSE (Ai) i =1,2,,, m -1的值都已知。本文采用的前向浮动特征筛选算法如下[9]:1)设置m =0, A0为空集,利用前向特征筛选方法寻找两个特征组成特征子集Am(m =2);2)使用前向特征筛选方法从未选择的特征子集(B -Am)中选择特征xm +1,得到子集Am+1;3)如果迭代次数达到预设值则退出,否则执行4);4)选择特征子集Am+1中最不重要的特征。如果xm+1是最不重要的特征即对任意jXm +1, J (Am +1- xm+1)FJ(Am +1- xj)成立,那么令m = m +1,返回2) (由于xm+1是最不重要的特征,所以无需从Am中排除原有的特征);如果最不重要的特征是xr( r =1,2,,, m )且MSE (Am+1- xr) < MSE (Am)成立,排除xr,令A'm= Am+1- xr;如果m =2,设置Am= A'm,J (Am) = J (A'm), ,返回2),否则转向步骤5);5)在特征子集A'm中寻找最不重要的特征xs,如果MSE (A'm- xs)EM SE (Am-1),那么设置Am= A'm, MSE (Am)= MSE (A'm),返回2);如果M SE (A'm- xs) < M SE (Am -1),那么A'm从中排除xs,得到A'm-1= Am- xs,令m = m -1;如果m =2,设置Am= A'm, MSE (Am) = MSE (A'm)返回2),否则转向5)。最后选择的特征用于后续建模预测。
预测评价指标及参比模型
训练结果评估阶段是对训练得出的模型推广能力进行验证,所谓推广能力是指经训练后的模型对未在训练集中出现的样本做出正确反应的能力。为了评价本文模型的优劣,选择BPANN、多变量自回归时间序列模型( CAR)和没有进行拓阶和特征筛选的SVM作为参比模型。采用均方误差(mean squared error, MSE)和平均绝对误差百分率(mean ab-solute percentage error, MAPE)作为评价指标。MSE和MAP定义如下:M SE=E(yi- y^i)2n( 2)MAPE=E| yi- y^i| /yin( 3)其中yi为真值, y^i为预测值, n为预测样本数。如果得出M SE, MAPE结果较小,则说明该评估模型的推广能力强,或泛化能力强,否则就说明其推广能力较差
3. 对股票收盘价进行时间序列分析,预测其下一个交易日的收盘价,并与实际收盘价格进行对比
股票投资的分析这么复杂啊,先问问老师有依据这个买股票没,再回答。
4. 应用计量经济学时间序列分析在股票预测上有多大的作用
作用没有想象中的大,你可以用股票的滞后变量来进行回归分析,滞后2~3期就够了,不过数据必须具体点,最好细分到每季度、每月的上证指数,还有时间上怎么也要十年左右吧!
我以前在论文附录中做过分析,数据都是自己按季度整理的,挺麻烦的呢,如果需要的话就发给你~
还有就是,我觉得写关于股票的预测方面的实际用处并不是很大,毕竟股票的影响因素太多,单单的凭借以前的走势而预期太不好了。。我自己也炒股票,就像那些macd、kdj之类的指标根本就起不到太大的作用,如果那个能预期的话,股市岂不就成了提款机了?现在你做的这个就像是那些指标一样,要知道,股市是活的,人是活的,而指标确实死的!说这么多的意思就是股市不是能简单预测的,你做的那个用处不大。。
如果你想做的话,建议换个题目,我当时的写的是对弗里德曼的货币需求理论在中国市场的分析。你可以写写货币供应量对通货膨胀的时滞性,分析下在我国市场的滞后期大概是多少~数据在国家统计局和中国人民银行都可以找到的,样本空间一定要足够大,在对滞后变量分析时候主要考虑各自的T检验是否通过,一般从通过之后大概就是那个的滞后期!这个比较直接反而有些许用处~
要是能分析出国家的一般性政策对实体市场的影响就更好了,更有用了~
呵呵,以上只是自己的建议~有什么其他的问题就给我留言吧~
5. GARCH族模型的发展过程是什么
↓↓↓点击关注,回复资料,10个G的惊喜
©作者 |Light学校 |中国科学院大学
研究方向 |机器学习编辑| paperweekly
知乎链接:https://zhuanlan.hu.com/p/471014006
时间序列是我最喜欢研究的一种问题,这里我列一下时间序列最常用的方法,包括理论和实践两部分。理论部分大多是各路神仙原创的高赞解读,这里我就简单成呈现在这里,并附上链接。实践部分是质量较高的开源代码,方便大家快速上手。最后,附上一些 kaggle 比赛中比较经典的时序比赛的经典解法链接,供大家参考和学习。
时序问题都看成是回归问题,只是回归的方式(线性回归、树模型、深度学习等)有一定的区别。
传统时序建模
arima 模型是 arma 模型的升级版;arma 模型只能针对平稳数据进行建模,而 arima 模型需要先对数据进行差分,差分平稳后在进行建模。这两个模型能处理的问题还是比较简单,究其原因主要是以下两点:
arma/arima 模型归根到底还是简单的线性模型,能表征的问题复杂程度有限;
arma 全名是自回归滑动平均模型,它只能支持对单变量历史数据的回归,处理不了多变量的情况。
原理篇:
写给你的金融时间序列分析:基础篇
重点介绍基本的金融时间序列知识和 arma 模型
https://zhuanlan.hu.com/p/38320827
金融时间序列入门【完结篇】 ARCH、GARCH
介绍更为高阶的 arch 和 garch 模型
https://zhuanlan.hu.com/p/21962996
实践篇:
【时间序列分析】ARMA预测GDP的 python实现
arma 模型快速上手
https://zhuanlan.hu.com/p/54799648
machinelearningmastery.com
arch、garch模型快速建模
https://machinelearningmastery.com/develop-arch-and-garch-models-for-time-series-forecasting-in-python/
总结:如果是处理单变量的预测问题,传统时序模型可以发挥较大的优势;但是如果问题或者变量过多,那么传统时序模型就显得力不从心了。
机器学习模型方法
这类方法以 lightgbm、xgboost 为代表,一般就是把时序问题转换为监督学习,通过特征工程和机器学习方法去预测;这种模型可以解决绝大多数的复杂的时序预测模型。支持复杂的数据建模,支持多变量协同回归,支持非线性问题。
不过这种方法需要较为复杂的人工特征过程部分,特征工程需要一定的专业知识或者丰富的想象力。特征工程能力的高低往往决定了机器学习的上限,而机器学习方法只是尽可能的逼近这个上限。特征建立好之后,就可以直接套用树模型算法 lightgbm/xgboost,这两个模型是十分常见的快速成模方法,除此之外,他们还有以下特点:
计算速度快,模型精度高;
缺失值不需要处理,比较方便;
支持 category 变量;
支持特征交叉。
原理篇:
提升树模型:Lightgbm 原理深入探究:
lightgbm 原理
https://blog.csdn.net/anshuai_aw1/article/details/83659932
xgboost 的原理没你想象的那么难:
xgboost 原理
https://www.jianshu.com/p/7467e616f227
实践篇:
在 Python 中使用 Lightgbm:
lightgbm 模型实践
https://zhuanlan.hu.com/p/52583923
史上最详细的 XGBoost 实战:
xgboost 模型实践
https://zhuanlan.hu.com/p/31182879
总结:通过一系列特征工程后,直接使用机器学习方法,可以解决大多数的复杂时序问题;不过这方法最大的缺点是特征工程可能会较为繁琐。
深度学习模型方法
这类方法以 LSTM/GRU、seq2seq、wavenet、1D-CNN、transformer为主。深度学习中的 LSTM/GRU 模型,就是专门为解决时间序列问题而设计的;但是 CNN 模型是本来解决图像问题的,但是经过演变和发展,也可以用来解决时间序列问题。总体来说,深度学习类模型主要有以下特点:
不能包括缺失值,必须要填充缺失值,否则会报错;
支持特征交叉,如二阶交叉,高阶交叉等;
需要 embedding 层处理 category 变量,可以直接学习到离散特征的语义变量,并表征其相对关系;
数据量小的时候,模型效果不如树方法;但是数据量巨大的时候,神经网络会有更好的表现;
神经网络模型支持在线训练。
实际上,基于实际预测问题,可以设计出各式各样的深度学习模型架构。假如我们预测的时序问题(如预测心跳频率),不仅仅只和统计类的数据有关,还和文本(如医师意见)以及图像(如心电图)等数据有关 ,我们就可以把 MLP、CNN、bert 等冗杂在一起,建立更强力的模型。
▲ 图源:https://www.kaggle.com/c/avito-demand-prediction/discussion/59880
理论篇:
[干货] 深入浅出 LSTM 及其 Python 代码实现:
LSTM 原理
https://zhuanlan.hu.com/p/104475016
Seq2Seq 原理详解-早起的小虫子-博客园:
seq2seq 原理
https://www.cnblogs.com/liuxiaochong/p/14399416.html
Wavenet 原理与实现:
wavenet 原理
https://zhuanlan.hu.com/p/28849767
CNN 卷积神经网络如何处理一维时间序列数据:
1D-CNN 处理时序数据
https://www.ai8py.com/cnn-in-keras-for-time-sequences.html
Transformer for TimeSeries 时序预测算法详解:
transformer 时序预测
https://zhuanlan.hu.com/p/391337035
实践篇:
seq2seq 模型的 python 实现-基于 seq2seq 模型的自然语言处理应用:
seq2seq 模型实现
https://dataxujing.github.io/seq2seqlearn/chapter3/
machinelearningmastery.com:
LSTM 实践
https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-pyth
Conv1d-WaveNet-Forecast Stock price:
wavenet 模型预测股票价格
https://www.kaggle.com/bhavinmoriya/conv1d-wavenet-forecast-stock-price
towardsdatascience.com/:
transformer 时序预测数据
https://towardsdatascience.com/how-to-use-transformer-networks-to-build-a-forecasting-model-297f9270e630
Keras documentation:
Timeseries classification with a Transformer model:transformer 处理时序数据分类
https://keras.io/examples/timeseries/timeseries_transformer_classification/
kaggle.com/fatmakursun/:
CNN 预测模型
https://www.kaggle.com/fatmakursun/predict-sales-time-series-with-cnn
总结:深度学习模型可以解决基本上所有时序问题,而且模型可以自动学习特征工程,极大减少了人工;不过需要较高的模型架构能力。
最后我再附上一些比较经典的数据挖掘比赛链接和解决方案,如果能够理解数据和代码,必会受益匪浅。如果大家对某个比赛解决方案十分感兴趣,我后续会详细解读。
1)网站流量预测:
RNN seq2seq 模型:
https://github.com/Arturus/kaggle-web-traffic
xgboost 和 MLP 模型:
https://github.com/jfpuget/Kaggle/tree/master/WebTrafficPrediction
kalman 滤波:
https://github.com/oseiskar/simdkalman
CNN 模型:
https://github.com/sjvasquez/web-traffic-forecasting
2)餐厅客户量预测
特征工程+lgb:
https://www.kaggle.com/plantsgo/solution-public-0-471-private-0-505
特征工程+lgb:
https://www.kaggle.com/pureheart/1st-place-lgb-model-public-0-470-private-0-502
3)开放通道预测
wavenet 模型:
https://www.kaggle.com/vicensgaitan/2-wavenet-swa
1D-CNN 模型:
https://www.kaggle.com/kmat2019/u-net-1d-cnn-with-keras
seq2seq 模型:
https://www.kaggle.com/brandenkmurray/seq2seq-rnn-with-gru
4)肺压力预测
transformer 模型:
https://www.kaggle.com/cdeotte/tensorflow-transformer-0-112
双向 lstm 模型:
https://www.kaggle.com/tenffe/finetune-of-tensorflow-bidirectional-lstm
时间序列问题博大精深,应用场景十分广泛。实际上许多预测问题都可以看做是时间序列问题,比如股票/期货/外汇价格预测,网站/餐馆/旅馆/交通流量预测,店铺商品库存/销量预测等等。掌握了时间序列预测方法,你可能就掌管一把洞见未来的钥匙。
6. 基于时间序列分析的股票价格优势趋势预测的sas的程序
如果你指的是momentum,即动量交易的话,这个是一个搞金融学asset pricing常用的方法,你可以去找这方面的文献,有告诉你怎么编程思路的。我们有这样的程序,但是除非是研究合作,不可能共享出来的。
7. 时间序列在股市有哪些应用
时间序列分析在股票市场中的应用
摘要
在现代金融浪潮的推动下,越来越多的人加入到股市,进行投资行为,以期得到丰厚的回报,这极大促进了股票市场的繁荣。而在这种投资行为的背后,越来越多的投资者逐渐意识到股市预测的重要性。
所谓股票预测是指:根据股票现在行情的发展情况地对未来股市发展方向以及涨跌程度的预测行为。这种预测行为只是基于假定的因素为既定的前提条件为基础的。但是在股票市场中,行情的变化与国家的宏观经济发展、法律法规的制定、公司的运营、股民的信心等等都有关联,因此所谓的预测难于准确预计。
时间序列分析是经济预测领域研究的重要工具之一,它描述历史数据随时间变化的规律,并用于预测经济数据。在股票市场上,时间序列预测法常用于对股票价格趋势进行预测,为投资者和股票市场管理管理方提供决策依据。
8. 用matlab什么程序可以预测股价走势
这个可以用matlab的时间序列工具试一下,不过感觉没有spss的时间序列工具好用,因为很多人装matlab不装时间序列工具包的。
用spss更好,把数据粘贴进去,就点分析-时间序列-自动时间序列就行,很傻瓜的,等1min,会出来一个走势图(输出结果里下翻才找得到),说是AR多少模型的,后面会有一小段红线的,那个就是预测。
9. 非平稳时间序列可以预测股票走势吗
一般把非平稳时间序列转化为平稳时间序列的方法是取n阶差分法。
比如举个例子,假设xt本身是不平稳的时间序列,如果xt~I(1) ,也就是说x的1阶差分是平稳序列。
那么 xt的1阶差分dxt=x(t)-x(t-1) 就是平稳的序列 这时dt=x(t-1)
如果xt~I(2),就是说xt的2阶差分是平稳序列的话
xt的1n阶差分dxt=x(t)-x(t-1) 这时xt的1阶差分依然不平稳,
那么 对xt的1阶差分再次差分后,
xt的2阶差分ddxt=dxt-dxt(t-1)便是平稳序列 这时dt=-x(t-1)-dxt(t-1)
n阶的话可以依次类推一下。
10. 哪种时间序列分析法可以用了分析股票
斐波那契算吗