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. 哪種時間序列分析法可以用了分析股票
斐波那契算嗎