拓端tecdat:Python金融時間序列模型ARIMA 和GARCH 在股票市場預測應用


原文鏈接:http://tecdat.cn/?p=24407

原文出處:拓端數據部落公眾號

這篇文章討論了自回歸綜合移動平均模型 (ARIMA) 和自回歸條件異方差模型 (GARCH) 及其在股票市場預測中的應用。

介紹

一個 ARMA (AutoRegressive-Moving Average) 有兩部分,AR(p)部分和MA(q)部分,表示如下

其中 L 是滯后算子,ϵi 是白噪聲。它可以通過 Box-Jenkins method. 我們可能會使用 PACF 繪制識別 AR 滯后階數 p,和 ACF 圖以識別 MA 滯后階數 q;或使用信息,例如 AIC 和 BIC 做模型選擇。

ARIMA (AutoRegressive Integrated Moving Average) 是 ARMA 的拓展,通過為非平穩過程添加階數為 d 的積分部分。

ARIMA是針對價格水平或收益率的,而GARCH(廣義自回歸條件異方差)則試圖對波動率或收益率平方的聚類進行建模。它將ARMA項擴展到方差方面。
 

作為隨機波動率模型的離散版本,GARCH也能捕捉到股票市場的厚尾效應。因此,將ARIMA和GARCH結合起來,預計在模擬股票價格時比單獨一個模型更適合。在這篇文章中,我們將把它們應用於標普500指數的價格。

ARIMA

首先,眾所周知,股票價格不是平穩的;而收益可能是平穩的。ADF單位根檢驗結果。

  1.  
    # 價格是已知的非平穩的;收益是平穩的
  2.  
    import adfuller
  3.  
     
  4.  
    rsut = aduler(close)
  5.  
    prnt(f'ADF Satitic: {reslt[]}, pale: {rslt1]}') # null 假設:單位根存在;不能拒絕 null。
  6.  
     
  7.  
    relt = adfler(histet)
  8.  
    prnt(f'ADF Statistic: {reut[0]}, pvaue: {rslt[1]}') # 拒絕單位根的空假設 ==> 平穩

收益序列的 ADF p 值為 0,拒絕單位根的原假設。因此,我們在 ARIMA(p, d, q) 中接受 d=1,下一步是識別滯后 p 和 q。ACF 和 PACF 圖表明滯后最多 35 個工作日。如果我們按照圖表進行擬合,將有太多參數無法擬合。一種解決方案是使用每周或每月圖表。在這里,我們將最大滯后時間限制為 5 天,並使用 AIC 選擇最佳模型。

  1.  
    for p in rage(6):
  2.  
    for q in rage(6):
  3.  
    ry:
  4.  
    mft = fit(disp=0)
  5.  
    ic[(p, q)] = fiaic
  6.  
    except:
  7.  
    pass

下一步是擬合模型並通過殘差統計評估模型擬合。殘差仍然顯示出一些自相關,並且沒有通過正態性檢驗。由於滯后階數限制,這在某種程度上是預料之中的。

盡管如此,讓我們繼續最后一步並使用模型進行預測。下面比較了對測試集的收益率預測和實際收益率。

收益率預測以 0% 為中心,置信區間在 ±2% 之間。結果並不是特別令人印象深刻。畢竟,市場正在經歷一個動盪的階段,在預測時間窗口內甚至下跌了 6%。

GARCH

讓我們看看加入GARCH效果是否會產生更好的結果。建模過程類似於ARIMA:首先識別滯后階數;然后擬合模型並評估殘差,最后如果模型令人滿意,就用它來預測。

我們將 AR 滯后和 GARCH 滯后都限制為小於 5。結果最優階為 (4,2,2)。

  1.  
     
  2.  
    for l in rage(5):
  3.  
    for p in rage(1, 5):
  4.  
    for q in rage(1, 5):
  5.  
    try:
  6.  
    mdl = arch(is_et, man='ARX', vol='Garch', p=p, o=0, q=q, dist='Nomal')
  7.  
    fit(last_obs=spldat)
  8.  
    dc_ic[(l, p, q)] =aic
  9.  
    except:
  10.  
    pass

接下來讓我們根據選擇的最佳參數來擬合模型,如下所示。證實了均值模型是AR(4),方差模型是GARCH(2, 2)。一些系數在統計上不顯着。

最后但並非最不重要的是,預測區間從±4%下降到±3%,然后又反彈到±5%,這清楚地表明了模型的波動性集群。請注意,這里是單步滾動預測,應該比靜態的多期預測要好。
 

趨勢平穩和差分平穩

趨勢平穩,即確定性趨勢,具有確定性均值趨勢。相反,差分平穩具有隨機趨勢。前者可以用OLS估計,后者需要先求差分。

考慮一個簡單的過程

如果 φ<1,則過程是趨勢平穩的;也就是說,如果我們減去趨勢 at,則過程變得平穩。若φ=1,則差分平穩。將第二個方程代入第一個方程很容易看出隨機性,並將方程改寫為


最受歡迎的見解

1.R語言對S&P500股票指數進行ARIMA + GARCH交易策略

2.R語言改進的股票配對交易策略分析SPY—TLT組合和中國股市投資組合

3.R語言時間序列:ARIMA GARCH模型的交易策略在外匯市場預測應用

4.TMA三均線期指高頻交易策略的R語言實現

5.r語言多均線量化策略回測比較

6.用R語言實現神經網絡預測股票實例

7.r語言預測波動率的實現:ARCH模型與HAR-RV模型

8.R語言如何做馬爾科夫轉換模型markov switching model

9.matlab使用Copula仿真優化市場風險


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM