Ⅰ 如何用GARCH(1,1)求股票的具體波動率數據
以哈飛股份(600038)為例,運用GARCH(1,1)模型計算股票市場價值的波動率。
GARCH(1,1)模型為:
(1)
(2)
其中, 為回報系數, 為滯後系數, 和 均大於或等於0。
(1)式給出的均值方程是一個帶有誤差項的外生變數的函數。由於是以前面信息為基礎的一期向前預測方差,所以稱為條件均值方程。
(2)式給出的方程中: 為常數項, (ARCH項)為用均值方程的殘差平方的滯後項, (GARCH項)為上一期的預測方差。此方程又稱條件方差方程,說明時間序列條件方差的變化特徵。
通過以下六步進行求解:
本文選取哈飛股份2009年全年的股票日收盤價,採用Eviews 6.0的GARCH工具預測股票收益率波動率。具體計算過程如下:
第一步:計算日對數收益率並對樣本的日收益率進行基本統計分析,結果如圖1和圖2。
日收益率採用JP摩根集團的對數收益率概念,計算如下:
其中Si,Si-1分別為第i日和第i-1日股票收盤價。
圖1 日收益率的JB統計圖
對圖1日收益率的JB統計圖進行分析可知:
(1)標准正態分布的K值為3,而該股票的收益率曲線表現出微量峰度(Kurtosis=3.748926>3),分布的凸起程度大於正態分布,說明存在著較為明顯的「尖峰厚尾」形態;
(2)偏度值與0有一定的差別,序列分布有長的左拖尾,拒絕均值為零的原假設,不屬於正態分布的特徵;
(3)該股票的收益率的JB統計量大於5%的顯著性水平上的臨界值5.99,所以可以拒絕其收益分布正態的假設,並初步認定其收益分布呈現「厚尾」特徵。
以上分析證明,該股票收益率呈現出非正態的「尖峰厚尾」分布特徵,因此利用GARCH模型來對波動率進行擬合具有合理性。
第二步:檢驗收益序列平穩性
在進行時間序列分析之前,必須先確定其平穩性。從圖2日收益序列的路徑圖來看,有比較明顯的大的波動,可以大致判斷該序列是一個非平穩時間序列。這還需要嚴格的統計檢驗方法來驗證,目前流行也是最為普遍應用的檢驗方法是單位根檢驗,鑒於ADF有更好的性能,故本文採用ADF方法檢驗序列的平穩性。
從表1可以看出,檢驗t統計量的絕對值均大於1%、5%和10%標准下的臨界值的絕對值,因此,序列在1%的顯著水平下拒絕原假設,不存在單位根,是平穩序列,所以利用GARCH(1,1)模型進行檢驗是有效的。
圖2 日收益序列圖
表1ADF單位根檢驗結果
第三步:檢驗收益序列相關性
收益序列的自相關函數ACF和偏自相關函數PACF以及Ljung-Box-Pierce Q檢驗的結果如表3(滯後階數 =15)。從表4.3可以看出,在大部分時滯上,日收益率序列的自相關函數和偏自相關函數值都很小,均小於0.1,表明收益率序列並不具有自相關性,因此,不需要引入自相關性的描述部分。Ljung-Box-Pierce Q檢驗的結果也說明日收益率序列不存在明顯的序列相關性。
表2自相關檢驗結果
第四步:建立波動性模型
由於哈飛股份收益率序列為平穩序列,且不存在自相關,根據以上結論,建立如下日收益率方程:
(3)
(4)
第五步:對收益率殘差進行ARCH檢驗
平穩序列的條件方差可能是常數值,此時就不必建立GARCH模型。故在建模前應對收益率的殘差序列εt進行ARCH檢驗,考察其是否存在條件異方差,收益序列殘差ARCH檢驗結果如表3。可以發現,在滯後10階時,ARCH檢驗的伴隨概率小於顯著性水平0.05,拒絕原假設,殘差序列存在條件異方差。在條件異方差的理論中,滯後項太多的情況下,適宜採用GARCH(1,1)模型替代ARCH模型,這也說明了使用GARCH(1,1)模型的合理性。
表3日收益率殘差ARCH檢驗結果
第六步:估計GARCH模型參數,並檢驗
建立GARCH(1,1)模型,並得到參數估計和檢驗結果如表4。其中,RESID(-1)^2表示GARCH模型中的參數α,GARCH(-1)表示GARCH模型中的參數β,根據約束條件α+β<1,有RESID(-1)^2+GARCH(-1)=0.95083<1,滿足約束條件。同時模型中的AIC和SC值比較小,可以認為該模型較好地擬合了數據。
表4日收益率波動率的GARCH(1,1)模型的參數估計
Ⅱ 應用計量經濟學時間序列分析在股票預測上有多大的作用
作用沒有想像中的大,你可以用股票的滯後變數來進行回歸分析,滯後2~3期就夠了,不過數據必須具體點,最好細分到每季度、每月的上證指數,還有時間上怎麼也要十年左右吧!
我以前在論文附錄中做過分析,數據都是自己按季度整理的,挺麻煩的呢,如果需要的話就發給你~
還有就是,我覺得寫關於股票的預測方面的實際用處並不是很大,畢竟股票的影響因素太多,單單的憑藉以前的走勢而預期太不好了。。我自己也炒股票,就像那些macd、kdj之類的指標根本就起不到太大的作用,如果那個能預期的話,股市豈不就成了提款機了?現在你做的這個就像是那些指標一樣,要知道,股市是活的,人是活的,而指標確實死的!說這么多的意思就是股市不是能簡單預測的,你做的那個用處不大。。
如果你想做的話,建議換個題目,我當時的寫的是對弗里德曼的貨幣需求理論在中國市場的分析。你可以寫寫貨幣供應量對通貨膨脹的時滯性,分析下在我國市場的滯後期大概是多少~數據在國家統計局和中國人民銀行都可以找到的,樣本空間一定要足夠大,在對滯後變數分析時候主要考慮各自的T檢驗是否通過,一般從通過之後大概就是那個的滯後期!這個比較直接反而有些許用處~
要是能分析出國家的一般性政策對實體市場的影響就更好了,更有用了~
呵呵,以上只是自己的建議~有什麼其他的問題就給我留言吧~
Ⅲ 什麼時候用回歸分析,什麼時候用時間序列
兩者的核心區別在於對數據的假設回歸分析假設每個數據點都是獨立的,而時間序列則是利用數據之間的相關性進行預測。
本文會先說明兩者對數據的具體假設差異,再說明AR模型為什麼雖然看上去像回歸分析但還是有差別,最後也提到一個常見的混淆兩者後在金融方向可能出現的問題。
回歸分析對數據的假設:獨立性在回歸分析中,我們假設數據是相互獨立的。這種獨立性體現在兩個方面:一方面,自變數(X)是固定的,已被觀測到的值,另一方面,每個因變數(y)的誤差項是獨立同分布,對於線性回歸模型來說,誤差項是獨立同分布的正態分布,並且滿足均值為0,方差恆定。
這種數據的獨立性的具體表現就是:在回歸分析中,數據順序可以任意交換。在建模的時候,你可以隨機選取數據循序進行模型訓練,也可以隨機選取一部分數據進行訓練集和驗證集的拆分。也正因為如此,在驗證集中,每個預測值的誤差都是相對恆定的:不會存在誤差的積累,導致預測准確度越來越低。
時間序列對數據的假設:相關性但對於時間序列分析而言,我們必須假設而且利用數據的相關性。核心的原因是我們沒有其他任何的外部數據,只能利用現有的數據走向來預測未來。因此,我們需要假設每個數據點之間有相關性,並且通過建模找到對應的相關性,利用它去預測未來的數據走向。這也是為什麼經典的時間序列分析(ARIMA)會用ACF(自相關系數)和PACF(偏自相關系數)來觀察數據之間的相關性。
ACF和PACF分別用兩種方式衡量數據點與數據點之間的相關性時間序列對相關性的假設直接違背了回歸分析的獨立性假設。在多段時間序列預測中,一方面,對於未來預測的自變數可能無法真實的觀察到,另一方面,隨著預測越來越遠,誤差會逐漸積累:你對於長遠未來的預測應該會比近期預測更不確定。因此,時間序列分析需要採用一種完全不同的視角,用不同的模型去進行分析研究。
AR模型和線性回歸模型的「相似」和區別時間序列分析中一個基礎模型就是AR(Auto-Regressive)模型。它利用過去的數據點來預測未來。舉例而言,AR(1)模型利用當前時刻的數據點預測未來的值,它們的數學關系可以被表示為:
它的表達形式的確和線性回歸模型非常類似,甚至連一般的AR(n)模型都和線性回歸有很高的相似性。唯一的差別就是等式右邊的自變數(X)變成了過去的因變數(y)
而正是因為這一點微小的差異,導致兩者的解完全不同。在AR模型中,由於模型自變數成為了過去的因變數,使得自變數與過去的誤差之間有相關性。而這種相關性使得
利用線性模型得到的AR模型的解會是有偏估計(biased)。對於上述結論的實際證明需要引入過多的概念。在此我們只對AR(1)模型作為一個特例來分析。不失一般性,我們可以通過平移數據將AR(1)模型表示成如下的形式:
對於這類模型,線性回歸會給出以下的估計值:對於一般的線性回歸模型而言,由於所有的自變數都會被視為已經觀測到的真實值。所以當我們取均值的時候,我們可以把分母當作已知,通過過去觀測值和未來誤差無關的性質得到無偏的結論。
利用回歸模型預測AR模型的數據模擬結果:參數估計會是有偏估計事實上,我們會用線性回歸模型去近似求解AR模型。因為雖然結果會是有偏的,但是卻是一致估計。也就是說,當數據量足夠大的時候,求解的值會收斂於真實值。這里就不再做展開了。
忽視獨立性的後果:金融方向的常見錯誤希望看到這里你已經弄懂了為什麼不能混淆模型的假設:尤其是獨立性或相關性的假設。接下來我會說一個我見過的
因為混淆假設導致的金融方向的錯誤隨著機器學習的發展,很多人希望能夠將機器學習和金融市場結合起來。利用數據建模來對股票價格進行預測。他們會用傳統的機器學習方法將得到的數據隨機的分配成訓練集和測試集。利用訓練集訓練模型去預測股票漲跌的概率(漲或跌的二維分類問題)。然後當他們去將模型應用到測試集時,他們發現模型的表現非常優秀——能夠達到80~90%的准確度。但是在實際應用中卻沒有這么好的表現。
造成這個錯誤的原因就是他們沒有認識到數據是高度相關的。對於時間序列,我們不能通過隨機分配去安排訓練集和測試集,否則就會出現「利用未來數據」來預測「過去走向」的問題。這個時候,即使你的模型在你的測試集表現出色,也不代表他真的能預測未來股價的走向。
總結時間序列和回歸分析的主要區別在於對數據的假設:回歸分析假設每個數據點都是獨立的,而時間序列則是利用數據之間的相關性進行預測。雖然線性回歸和AR模型看上去有很大的相似性。但由於缺失了獨立性,利用線性回歸求解的AR模型參數會是有偏的。但又由於這個解是一致的,所以在實際運用中還是利用線性回歸來近似AR模型。忽視或假設數據的獨立性很可能會造成模型的失效。金融市場的預測的建模尤其需要注意這一點。
Ⅳ 時間序列分析方法
時間序列是指一組在連續時間上測得的數據,其在數學上的定義是一組向量x(t), t=0,1,2,3,...,其中t表示數據所在的時間點,x(t)是一組按時間順序(測得)排列的隨機變數。包含單個變數的時間序列稱為單變數時間序列,而包含多個變數的時間序列則稱為多變數。
時間序列在很多方面多有涉及到,如天氣預報,每天每個小時的氣溫,股票走勢等等,在商業方面有諸多應用,如:
下面我們將通過一個航班數據來說明如何使用已有的工具來進行時間序列數據預測。常用來處理時間序列的包有三個:
對於基於AR、MA的方法一般需要數據預處理,因此本文分為三部分:
通過簡單的初步處理以及可視化可以幫助我們有效快速的了解數據的分布(以及時間序列的趨勢)。
觀察數據的頻率直方圖以及密度分布圖以洞察數據結構,從下圖可以看出:
使用 statsmodels 對該時間序列進行分解,以了解該時間序列數據的各個部分,每個部分都代表著一種模式類別。借用 statsmodels 序列分解我們可以看到數據的主要趨勢成分、季節成分和殘差成分,這與我們上面的推測相符合。
如果一個時間序列的均值和方差隨著時間變化保持穩定,則可以說這個時間序列是穩定的。
大多數時間序列模型都是在平穩序列的前提下進行建模的。造成這種情況的主要原因是序列可以有許多種(復雜的)非平穩的方式,而平穩性只有一種,更加的易於分析,易於建模。
在直覺上,如果一段時間序列在某一段時間序列內具有特定的行為,那麼將來很可能具有相同的行為。譬如已連續觀察一個星期都是六點出太陽,那麼可以推測明天也是六點出太陽,誤差非常小。
而且,與非平穩序列相比,平穩序列相關的理論更加成熟且易於實現。
一般可以通過以下幾種方式來檢驗序列的平穩性:
如果時間序列是平穩性的,那麼在ACF/PACF中觀測點數據與之前數據點的相關性會急劇下降。
下圖中的圓錐形陰影是置信區間,區間外的數據點說明其與觀測數據本身具有強烈的相關性,這種相關性並非來自於統計波動。
PACF在計算X(t)和X(t-h)的相關性的時候,挖空在(t-h,t)上所有數據點對X(t)的影響,反應的是X(t)和X(t-h)之間真實的相關性(直接相關性)。
從下圖可以看出,數據點的相關性並沒有急劇下降,因此該序列是非平穩的。
如果序列是平穩的,那麼其滑動均值/方差會隨著時間的變化保持穩定。
但是從下圖我們可以看到,隨著時間的推移,均值呈現明顯的上升趨勢,而方差也呈現出波動式上升的趨勢,因此該序列是非平穩的。
一般來講p值小於0.05我們便認為其是顯著性的,可以拒絕零假設。但是這里的p值為0.99明顯是非顯著性的,因此接受零假設,該序列是非平穩的。
從上面的平穩性檢驗我們可以知道該時間序列為非平穩序列。此外,通過上面1.3部分的序列分解我們也可以看到,該序列可分解為3部分:
我們可以使用數據轉換來對那些較大的數據施加更大的懲罰,如取對數、開平方根、立方根、差分等,以達到序列平穩的目的。
滑動平均後數據失去了其原來的特點(波動式上升),這樣損失的信息過多,肯定是無法作為後續模型的輸入的。
差分是常用的將非平穩序列轉換平穩序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以對非平穩序列進行處理的,其相當於先將非平穩序列通過差分轉換為平穩序列再來使用ARMA進行建模。
一般差分是用某時刻數值減去上一時刻數值來得到新序列。但這里有一點區別,我們是使用當前時刻數值來減去其對應時刻的滑動均值。
我們來看看剛剛差分的結果怎麼樣。
讓我們稍微總結下我們剛剛的步驟:
通過上面的3步我們成功的將一個非平穩序列轉換成了一個平穩序列。上面使用的是最簡單的滑動均值,下面我們試試指數滑動平均怎麼樣。
上面是最常用的指數滑動平均的定義,但是pandas實現的指數滑動平均好像與這個有一點區別,詳細區別還得去查pandas文檔。
指數滑動均值的效果看起來也很差。我們使用差分+指數滑動平均再來試試吧。
在上面我們通過 取log+(指數)滑動平均+差分 已經成功將非平穩序列轉換為了平穩序列。
下面我們看看,轉換後的平穩序列的各個成分是什麼樣的。不過這里我們使用的是最簡單的差分,當前時刻的值等於原始序列當前時刻的值減去原始序列中上一時刻的值,即: x'(t) = x(t) - x(t-1)。
看起來挺不錯,是個平穩序列的樣子。不過,還是檢驗一下吧。
可以看到,趨勢(Trend)部分已基本被去除,但是季節性(seasonal)部分還是很明顯,而ARIMA是無法對含有seasonal的序列進行建模分析的。
在一開始我們提到了3個包均可以對時間序列進行建模。
為了簡便,這里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,該方法在ARIMA的基礎上添加了額外功能,可以擬合seasonal部分以及額外添加的數據。
在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我們先簡單了解下這個模型。這個模型其實可以包括三部分,分別對應著三個參數(p, d, q):
因此ARIMA模型就是將AR和MA模型結合起來然後加上差分,克服了不能處理非平穩序列的問題。但是,需要注意的是,其仍然無法對seasonal進行擬合。
下面開始使用ARIMA來擬合數據。
(1) 先分訓練集和驗證集。需要注意的是這里使用的原始數據來進行建模而非轉換後的數據。
(2)ARIMA一階差分建模並預測
(3)對差分結果進行還原
先手動選擇幾組參數,然後參數搜索找到最佳值。需要注意的是,為了避免過擬合,這里的階數一般不太建議取太大。
可視化看看結果怎麼樣吧。
(6)最後,我們還能對擬合好的模型進行診斷看看結果怎麼樣。
我們主要關心的是確保模型的殘差(resial)部分互不相關,並且呈零均值正態分布。若季節性ARIMA(SARIMA)不滿足這些屬性,則表明它可以進一步改善。模型診斷根據下面的幾個方面來判斷殘差是否符合正態分布:
同樣的,為了方便,我們這里使用 pmdarima 中一個可以自動搜索最佳參數的方法 auto_arima 來進行建模。
一般來說,在實際生活和生產環節中,除了季節項,趨勢項,剩餘項之外,通常還有節假日的效應。所以,在prophet演算法裡面,作者同時考慮了以上四項,即:
上式中,
更多詳細Prophet演算法內容可以參考 Facebook 時間序列預測演算法 Prophet 的研究 。
Prophet演算法就是通過擬合這幾項,然後把它們累加起來得到時間序列的預測值。
Prophet提供了直觀且易於調整的參數:
Prophet對輸入數據有要求:
關於 Prophet 的使用例子可以參考 Prophet example notebooks
下面使用 Prophet 來進行處理數據。
參考:
Facebook 時間序列預測演算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
數據分析技術:時間序列分析的AR/MA/ARMA/ARIMA模型體系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
時間序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文檔: https://facebookincubator.github.io
Ⅳ 時間序列在股市有哪些應用
時間序列分析在股票市場中的應用
摘要
在現代金融浪潮的推動下,越來越多的人加入到股市,進行投資行為,以期得到豐厚的回報,這極大促進了股票市場的繁榮。而在這種投資行為的背後,越來越多的投資者逐漸意識到股市預測的重要性。
所謂股票預測是指:根據股票現在行情的發展情況地對未來股市發展方向以及漲跌程度的預測行為。這種預測行為只是基於假定的因素為既定的前提條件為基礎的。但是在股票市場中,行情的變化與國家的宏觀經濟發展、法律法規的制定、公司的運營、股民的信心等等都有關聯,因此所謂的預測難於准確預計。
時間序列分析是經濟預測領域研究的重要工具之一,它描述歷史數據隨時間變化的規律,並用於預測經濟數據。在股票市場上,時間序列預測法常用於對股票價格趨勢進行預測,為投資者和股票市場管理管理方提供決策依據。
Ⅵ 非平穩時間序列可以預測股票走勢嗎
一般把非平穩時間序列轉化為平穩時間序列的方法是取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階的話可以依次類推一下。
Ⅶ 股票風險預測時,如何才能知道預測結果是否正確
隨著機器學習和人工智慧的興起,預測:只需幾行代碼,就可以在初露頭角的數據愛好者處輕松訪問最新模型,且他們已經准備好隨時攻克可能遇到的一切任務。
但是一知半解是危險的,雖然機器學習的大部分可以歸因於統計和編程,但同樣重要的是領域知識,但它往往被忽略。這一點在投資領域最為明顯。
金融時間序列數據的信噪比一直都非常低,這種細微差別令人難以置信,從業人員花費了大量的精力來嘗試實現難以捉摸的目標,但只有少數成功。因此,需要對數據進行更深入的了解,並且找出其成功的共通之處。
很多項目都是從選擇一隻股票開始的,這只股票通常是蘋果(Apple)或亞馬遜(Amazon)等科技公司的股票,原因很簡單,這些公司眾所周知,並在消費者的日常生活中根深蒂固。
這是有問題的,因為選股不是一個任意的過程,它是投資決策過程的一部分,本身需要一個模型。
以蘋果為例,如果我們將其表現與更廣泛的標准普爾500指數(SP 500)進行對比,我們會發現蘋果的表現比該指數高出近60%。
乍一看,EWMA對標普500指數的預測非常准確,但如果我們仔細觀察市場下滑的時期,就會發現情況並非看上去那樣。
盡管藍線和橙線似乎緊密相連,但EWMA策略僅能融合過去的信息,即它只包含了過去的信息,無法應對日內波動的信息,因此往往導致它預測上漲,但實際是下跌,反之亦然。在此期間採取這種策略,其表現將遜於標普500指數。
結論
在開始一個股票預測項目之前,特別是在你打算投入實際資金的項目之前,先對這個主題做一些研究並了解數據是有好處的。
如果結果好得令人難以置信。由於參與者的數量越來越多,而且參與者的水平也越來越高,市場在價格發現方面極其有效,尤其是在股票方面。
盡管這可能不會排除潛在機會的可能性,但這意味著需要比即時可用的演算法和標准預處理技術更多的努力才能找到它。
Ⅷ 對股票收盤價進行時間序列分析,預測其下一個交易日的收盤價,並與實際收盤價格進行對比
股票投資的分析這么復雜啊,先問問老師有依據這個買股票沒,再回答。
Ⅸ SPSS-數據分析之時間序列分析
當數據與時間息息相關,常具有周期性的變化規律,此時,時間序列分析是一個很好的發現分析及預測其發展變化的統計方法,接下來簡要分享統計分析軟體SPSS中時間序列分析的操作。
問:什麼是時間序列?
答:時間序列是時間間隔不變的情況下收集的不同時間點數據集合。
問:那時間序列分析又是什麼?
答:時間序列分析是通過研究歷史數據的發展變化規律來預測事物的未來發展的統計學方法。公司營業額、銷售額,人口數量,股票等方面的變化預測皆可通過此統計方法。
SPSS中的操作
首先,對數據進行 預處理:
1.查看數據是否有缺失,若有,不便後續處理,則需進行替換缺失值。
轉換→替換缺失值→選擇新變數→輸入新變數名稱、選擇替換缺失值方法。
2.定義日期
數據→定義日期和時間
3.平穩性檢驗(平穩性指的是期望不變,方差恆定,協方差不隨時間改變)
檢驗方法:時序圖檢驗、自相關圖檢驗等。可通過創建時間序列實現數據的平穩化
轉換→創建時間序列
結果(例:運行中位數——跨度為1,則等於原數據)
數據預處理後對數據進行分析研究——序列圖、譜分析、自相關等。
1.序列圖:分析→時間序列預測→序列圖→根據需要選擇變數、時間軸標簽等。
結果(例):可觀察數據的大致波動情況。
2.譜分析:分析→時間序列預測→譜分析→根據需要選擇變數、圖表。
結果(例)
對於周期變化的數據,主要用於偵測系統隱含的周期或者節律行為;
對於非周期的數據,主要用於揭示系統演化過程的自相關特徵。
3.自相關:分析→時間序列預測→自相關→選擇變數及其他。
結果:
解讀:直條高低代表自相關系數的大小,橫軸1-16代表自相關的階數,上下線之間是不具有統計學意義的,偏自相關是去除自相關系數的關聯性傳遞性之後,用偏自相關系數考察剩餘的相關性是否還存在。
關於SPSS時間序列分析的簡要介紹就結束啦!
END
文 | FM