間序列波動(dòng)率預(yù)測(cè)與風(fēng)險(xiǎn)建模實(shí)戰(zhàn))
1. 項(xiàng)目概述從波動(dòng)率預(yù)測(cè)到金融建模的核心工具如果你在金融數(shù)據(jù)分析、風(fēng)險(xiǎn)管理或者時(shí)間序列預(yù)測(cè)的領(lǐng)域里摸爬滾打過(guò)一陣子大概率會(huì)碰到一個(gè)讓人又愛(ài)又恨的“老朋友”——波動(dòng)率。價(jià)格序列的波動(dòng)不像它的趨勢(shì)那樣直觀卻往往藏著更關(guān)鍵的風(fēng)險(xiǎn)信息和市場(chǎng)情緒密碼。傳統(tǒng)的線性模型比如ARIMA擅長(zhǎng)捕捉序列的均值變化但對(duì)于波動(dòng)性的聚集效應(yīng)也就是“大波動(dòng)后面跟著大波動(dòng)小波動(dòng)后面跟著小波動(dòng)”的現(xiàn)象卻束手無(wú)策。這正是ARCH模型和它的升級(jí)版GARCH模型大顯身手的地方。簡(jiǎn)單來(lái)說(shuō)它們是一套專門用來(lái)刻畫和預(yù)測(cè)時(shí)間序列波動(dòng)率方差動(dòng)態(tài)變化的計(jì)量經(jīng)濟(jì)學(xué)模型。我第一次在實(shí)戰(zhàn)中接觸GARCH模型是為了給一個(gè)量化策略做風(fēng)險(xiǎn)敞口的動(dòng)態(tài)評(píng)估傳統(tǒng)的歷史波動(dòng)率估計(jì)太滯后而GARCH提供的條件波動(dòng)率預(yù)測(cè)讓風(fēng)控從“后視鏡”變成了“雷達(dá)”。這個(gè)內(nèi)容的核心就是幫你徹底搞懂ARCH和GARCH這對(duì)“波動(dòng)率建模雙子星”。它不僅僅是幾個(gè)數(shù)學(xué)公式的堆砌更是一套完整的數(shù)據(jù)分析思維框架如何從金融時(shí)間序列如股票收益率、匯率變動(dòng)中識(shí)別出波動(dòng)聚集性如何用模型定量描述這種特性以及最終如何利用模型的預(yù)測(cè)結(jié)果來(lái)服務(wù)于更高級(jí)的應(yīng)用比如風(fēng)險(xiǎn)價(jià)值VaR計(jì)算、期權(quán)定價(jià)或者波動(dòng)率交易策略。無(wú)論你是金融專業(yè)的學(xué)生、從事數(shù)據(jù)分析的從業(yè)者還是對(duì)量化建模感興趣的愛(ài)好者掌握這套工具都能讓你對(duì)時(shí)間序列數(shù)據(jù)的理解深入一個(gè)維度。接下來(lái)我會(huì)結(jié)合自己的實(shí)操經(jīng)驗(yàn)從原理、實(shí)現(xiàn)到踩坑把這件事掰開揉碎了講清楚。2. 核心思路拆解為什么是ARCH/GARCH在深入公式之前我們必須先理解傳統(tǒng)模型的局限和ARCH/GARCH要解決的根本問(wèn)題。假設(shè)我們觀察一只股票的日收益率序列你會(huì)發(fā)現(xiàn)一個(gè)典型現(xiàn)象劇烈上漲或下跌的日子往往會(huì)扎堆出現(xiàn)隨后市場(chǎng)可能會(huì)平靜一段時(shí)間然后再次出現(xiàn)波動(dòng)集群。這種“波動(dòng)聚集性”意味著收益率的方差即波動(dòng)率并不是常數(shù)而是隨時(shí)間變化的并且與過(guò)去的波動(dòng)信息相關(guān)。2.1 傳統(tǒng)線性模型的“盲區(qū)”經(jīng)典的線性回歸或ARIMA模型其基本假設(shè)之一是“同方差性”即誤差項(xiàng)的方差是恒定不變的。這個(gè)假設(shè)在金融收益率數(shù)據(jù)面前非常脆弱。如果強(qiáng)行用這類模型擬合會(huì)導(dǎo)致幾個(gè)嚴(yán)重問(wèn)題參數(shù)估計(jì)效率低下雖然普通最小二乘法OLS的估計(jì)量仍然是無(wú)偏的但不再是“最優(yōu)”的即方差不是最小的這意味著我們可能錯(cuò)過(guò)了更精確的估計(jì)。假設(shè)檢驗(yàn)失效t檢驗(yàn)、F檢驗(yàn)等依賴于同方差假設(shè)。當(dāng)異方差存在時(shí)這些檢驗(yàn)的標(biāo)準(zhǔn)誤計(jì)算是錯(cuò)誤的可能導(dǎo)致我們錯(cuò)誤地拒絕或接受原假設(shè)。預(yù)測(cè)忽略風(fēng)險(xiǎn)變化模型只預(yù)測(cè)了未來(lái)的均值收益率水平但無(wú)法告訴我們未來(lái)的不確定性波動(dòng)率有多大。對(duì)于風(fēng)險(xiǎn)管理而言不知道波動(dòng)率的預(yù)測(cè)是殘缺的。2.2 ARCH模型的突破性思想1982年羅伯特·恩格爾提出了自回歸條件異方差模型。它的核心思想非常直觀且有力當(dāng)前時(shí)刻的波動(dòng)率條件方差可以用過(guò)去若干期的殘差平方即過(guò)去的“沖擊”或“意外”信息來(lái)線性解釋。用大白話說(shuō)就是如果昨天市場(chǎng)發(fā)生了大漲或大跌產(chǎn)生了大的殘差平方那么今天市場(chǎng)繼續(xù)大幅波動(dòng)的可能性就會(huì)增加。ARCH模型首次為這種直覺(jué)提供了嚴(yán)格的數(shù)學(xué)框架。它把條件方差建模為過(guò)去殘差平方的線性函數(shù)從而允許波動(dòng)率隨時(shí)間變化并具有持續(xù)性。2.3 GARCH模型的進(jìn)化與優(yōu)勢(shì)ARCH模型很美但在實(shí)踐中有個(gè)小麻煩為了準(zhǔn)確描述波動(dòng)率的長(zhǎng)期記憶性往往需要很多階的滯后項(xiàng)即需要很多個(gè)過(guò)去的殘差平方項(xiàng)這會(huì)導(dǎo)致模型參數(shù)很多估計(jì)起來(lái)不穩(wěn)定。1986年蒂姆·博勒斯萊夫提出了GARCH模型這是一個(gè)里程碑式的簡(jiǎn)化。 GARCH模型的核心在于它引入了一個(gè)“方差的自我記憶”。具體來(lái)說(shuō)當(dāng)前的條件方差不僅依賴于過(guò)去的殘差平方ARCH項(xiàng)還依賴于上一期自身的條件方差GARCH項(xiàng)。這就像給波動(dòng)率增加了一個(gè)“慣性”。GARCH(1,1)模型——僅包含1階ARCH項(xiàng)和1階GARCH項(xiàng)——被證明在絕大多數(shù)金融時(shí)間序列中具有驚人的擬合能力它用很少的參數(shù)就捕捉到了波動(dòng)率的長(zhǎng)期持續(xù)性。這也是為什么GARCH(1,1)成為了業(yè)界實(shí)際應(yīng)用中最廣泛、最基礎(chǔ)的波動(dòng)率模型。注意選擇ARCH還是GARCH不是一個(gè)非此即彼的問(wèn)題。通常我們會(huì)先檢驗(yàn)數(shù)據(jù)是否存在ARCH效應(yīng)如使用LM檢驗(yàn)如果存在則優(yōu)先嘗試更簡(jiǎn)潔、更穩(wěn)健的GARCH(1,1)模型。只有在GARCH(1,1)無(wú)法充分捕捉某些特性如杠桿效應(yīng)時(shí)才會(huì)考慮更復(fù)雜的變體。3. 模型原理與數(shù)學(xué)框架深度解析理解了核心思想我們來(lái)看看它們的數(shù)學(xué)“骨架”。放心我會(huì)盡量用直觀的方式解釋每個(gè)部分的意義。3.1 ARCH模型的結(jié)構(gòu)分解一個(gè)典型的ARCH(q)模型由兩個(gè)方程組成均值方程描述收益率序列本身的動(dòng)態(tài)。通常是一個(gè)簡(jiǎn)單的常數(shù)項(xiàng)或者包含自回歸AR項(xiàng)。r_t μ ε_(tái)t其中r_t是t時(shí)刻的收益率μ是常數(shù)均值或AR過(guò)程的均值ε_(tái)t是擾動(dòng)項(xiàng)殘差。條件方差方程這是ARCH模型的靈魂。ε_(tái)t σ_t * z_t, 其中z_t ~ i.i.d. N(0,1)或其它標(biāo)準(zhǔn)分布。σ_t^2 ω α_1 * ε_(tái){t-1}^2 α_2 * ε_(tái){t-2}^2 ... α_q * ε_(tái){t-q}^2關(guān)鍵解讀σ_t^2就是我們關(guān)心的條件方差它是基于t-1時(shí)刻及之前信息所計(jì)算出的t時(shí)刻方差的預(yù)測(cè)值。它是隨時(shí)間t變化的。ω常數(shù)項(xiàng)代表長(zhǎng)期平均方差水平必須大于0。α_iARCH項(xiàng)系數(shù)。它衡量了過(guò)去第i期的“沖擊”殘差平方對(duì)當(dāng)前波動(dòng)率的影響強(qiáng)度。所有α_i必須非負(fù)α_i ≥ 0以確保方差永遠(yuǎn)為正數(shù)。qARCH項(xiàng)的滯后階數(shù)。表示當(dāng)前波動(dòng)率受到過(guò)去多少期沖擊的影響。實(shí)操心得在估計(jì)ARCH模型時(shí)最大的挑戰(zhàn)之一是確定合適的階數(shù)q。階數(shù)太低模型可能無(wú)法充分捕捉波動(dòng)聚集性階數(shù)太高參數(shù)增多不僅估計(jì)困難還可能引發(fā)多重共線性等問(wèn)題。通常的做法是從較低的階數(shù)如1, 2開始嘗試然后根據(jù)信息準(zhǔn)則AIC/BIC和殘差診斷來(lái)綜合判斷。3.2 GARCH模型的精妙之處GARCH(p, q)模型同樣包含均值方程和條件方差方程其中方差方程是精華σ_t^2 ω Σ_{i1}^{q} α_i * ε_(tái){t-i}^2 Σ_{j1}^{p} β_j * σ_{t-j}^2關(guān)鍵解讀與ARCH對(duì)比它包含了ARCH部分Σ α_i ε_(tái){t-i}^2和GARCH部分Σ β_j σ_{t-j}^2。β_j系數(shù)這是GARCH模型的“魔法參數(shù)”。它衡量了過(guò)去波動(dòng)率本身的持續(xù)性。一個(gè)較大的β值例如接近0.9意味著波動(dòng)率具有強(qiáng)烈的“記憶”一旦升高需要很長(zhǎng)時(shí)間才能消退。這完美解釋了金融波動(dòng)率的“長(zhǎng)尾”現(xiàn)象。參數(shù)約束為了確保過(guò)程平穩(wěn)且方差為正需要滿足ω 0,α_i ≥ 0,β_j ≥ 0并且Σ(α_i β_j) 1。這個(gè)求和被稱為“持久性參數(shù)”它越接近1波動(dòng)沖擊消散得越慢。為什么GARCH(1,1)如此強(qiáng)大GARCH(1,1)模型的形式極其簡(jiǎn)潔σ_t^2 ω α * ε_(tái){t-1}^2 β * σ_{t-1}^2。α衡量“新聞效應(yīng)”。昨天的意外沖擊ε_(tái){t-1}^2對(duì)今天波動(dòng)率的影響。β衡量“波動(dòng)率持續(xù)性”。昨天的波動(dòng)率水平σ_{t-1}^2對(duì)今天的影響。在絕大多數(shù)金融數(shù)據(jù)中α β非常接近1例如0.95-0.99這意味著沖擊對(duì)波動(dòng)率的影響衰減得很慢符合我們觀察到的波動(dòng)聚集性。同時(shí)α通常較小0.05-0.1β較大0.85-0.95說(shuō)明波動(dòng)率主要受自身歷史慣性驅(qū)動(dòng)而非單一的外部沖擊。3.3 模型拓展與常見(jiàn)變體基礎(chǔ)的GARCH模型假設(shè)正負(fù)沖擊對(duì)波動(dòng)率的影響是對(duì)稱的。但現(xiàn)實(shí)中“壞消息”負(fù)收益往往比“好消息”正收益引發(fā)更大的波動(dòng)這被稱為“杠桿效應(yīng)”。為了捕捉這一點(diǎn)學(xué)者們發(fā)展出了多種GARCH變體EGARCH指數(shù)GARCH由尼爾森提出。它的優(yōu)勢(shì)在于對(duì)方程取對(duì)數(shù)ln(σ_t^2)作為被解釋變量因此無(wú)需施加非負(fù)約束。其方程中明確包含了標(biāo)準(zhǔn)化殘差項(xiàng)可以非常靈活地刻畫不對(duì)稱效應(yīng)。TGARCH門限GARCH在條件方差方程中引入一個(gè)虛擬變量。當(dāng)過(guò)去殘差為負(fù)壞消息時(shí)虛擬變量為1此時(shí)沖擊系數(shù)為α γ當(dāng)殘差為正時(shí)虛擬變量為0系數(shù)僅為α。如果γ顯著大于0就證明了杠桿效應(yīng)的存在。GJR-GARCH與TGARCH思想類似由Glosten, Jagannathan和Runkle提出是另一種捕捉不對(duì)稱效應(yīng)的流行模型。選擇建議對(duì)于初學(xué)者或一般性應(yīng)用GARCH(1,1)是絕對(duì)的首選和基準(zhǔn)。它的穩(wěn)健性和解釋性最好。只有在有明確的經(jīng)濟(jì)直覺(jué)或?qū)嵶C證據(jù)表明存在強(qiáng)烈的杠桿效應(yīng)時(shí)才需要考慮EGARCH或TGARCH。永遠(yuǎn)記住模型越復(fù)雜過(guò)擬合的風(fēng)險(xiǎn)越大估計(jì)也越不穩(wěn)定。4. 完整建模流程與Python實(shí)戰(zhàn)理論說(shuō)得再多不如親手跑一遍代碼。下面我將以滬深300指數(shù)日收益率為例展示一個(gè)完整的GARCH建模流程使用Python的arch庫(kù)。這個(gè)庫(kù)功能強(qiáng)大且接口友好是當(dāng)前的首選工具。4.1 環(huán)境準(zhǔn)備與數(shù)據(jù)獲取首先確保安裝了必要的庫(kù)。pip install arch pandas numpy matplotlib yfinance然后我們獲取數(shù)據(jù)并進(jìn)行初步處理。import pandas as pd import numpy as np import matplotlib.pyplot as plt import yfinance as yf from arch import arch_model # 1. 獲取數(shù)據(jù) ticker ‘^HSI‘ # 這里以恒生指數(shù)為例國(guó)內(nèi)數(shù)據(jù)可使用akshare等庫(kù) start_date ‘2018-01-01‘ end_date ‘2023-12-31‘ data yf.download(ticker, startstart_date, endend_date) # 2. 計(jì)算對(duì)數(shù)收益率更符合金融建模的假設(shè) data[‘Returns‘] 100 * np.log(data[‘Close‘] / data[‘Close‘].shift(1)) # 乘以100放大數(shù)值便于優(yōu)化 returns data[‘Returns‘].dropna() # 3. 初步觀察收益率序列 plt.figure(figsize(14, 6)) plt.subplot(2,1,1) plt.plot(returns) plt.title(‘Daily Log Returns (Scaled by 100)‘) plt.ylabel(‘Return (%)‘) plt.grid(True) plt.subplot(2,1,2) plt.hist(returns, bins50, edgecolor‘black‘, alpha0.7) plt.title(‘Distribution of Returns‘) plt.xlabel(‘Return (%)‘) plt.ylabel(‘Frequency‘) plt.grid(True) plt.tight_layout() plt.show() print(f“收益率序列描述性統(tǒng)計(jì)\n{returns.describe()}“) print(f“偏度{returns.skew():.4f}, 峰度{returns.kurtosis():.4f}“)運(yùn)行這段代碼你會(huì)看到收益率序列明顯的波動(dòng)聚集現(xiàn)象以及分布相比正態(tài)分布的“尖峰厚尾”特征峰度大于3。這是存在ARCH效應(yīng)的強(qiáng)烈視覺(jué)證據(jù)。4.2 檢驗(yàn)ARCH效應(yīng)在擬合模型前必須用統(tǒng)計(jì)檢驗(yàn)確認(rèn)數(shù)據(jù)是否存在ARCH效應(yīng)。最常用的是Engle‘s LM檢驗(yàn)拉格朗日乘數(shù)檢驗(yàn)。from statsmodels.stats.diagnostic import het_arch # 對(duì)收益率序列進(jìn)行ARCH-LM檢驗(yàn)這里檢驗(yàn)滯后10階 test_result het_arch(returns, maxlag10) print(f“LM檢驗(yàn)統(tǒng)計(jì)量{test_result[0]:.4f}“) print(f“P值{test_result[1]:.4f}“) if test_result[1] 0.05: print(“在5%顯著性水平下拒絕‘不存在ARCH效應(yīng)’的原假設(shè)。數(shù)據(jù)存在顯著的ARCH效應(yīng)適合建立GARCH模型。“) else: print(“無(wú)法拒絕原假設(shè)數(shù)據(jù)可能不存在顯著的ARCH效應(yīng)。“)如果P值小于0.05我們就可以放心地進(jìn)入下一步——模型擬合。4.3 擬合GARCH(1,1)模型arch庫(kù)讓模型擬合變得非常簡(jiǎn)單。# 定義并擬合一個(gè)GARCH(1,1)模型假設(shè)收益率均值為0常見(jiàn)做法擾動(dòng)項(xiàng)服從學(xué)生t分布為了更好擬合厚尾 model arch_model(returns, mean‘Constant‘, vol‘GARCH‘, p1, q1, dist‘t‘) # 使用‘last‘選項(xiàng)可以加快估計(jì)速度它使用最后觀測(cè)值作為方差初始值 fit_result model.fit(update_freq5, disp‘off‘) # update_freq5表示每5次迭代打印一次信息 # 查看詳細(xì)的擬合結(jié)果 print(fit_result.summary())仔細(xì)閱讀輸出摘要你需要關(guān)注以下幾點(diǎn)參數(shù)估計(jì)值omega,alpha[1],beta[1]。確保alpha[1] beta[1] 1這是平穩(wěn)性條件。這個(gè)和越接近1持續(xù)性越強(qiáng)。P值檢查每個(gè)參數(shù)的P值P|z|列通常應(yīng)小于0.05表明參數(shù)顯著不為零。分布參數(shù)如果使用了t分布nu參數(shù)表示自由度。值越小尾部越厚。信息準(zhǔn)則AIC和BIC值用于后續(xù)不同模型間的比較。4.4 模型診斷與條件波動(dòng)率可視化擬合好模型后必須檢查殘差是否還有ARCH效應(yīng)。一個(gè)好的GARCH模型其標(biāo)準(zhǔn)化殘差應(yīng)近似為獨(dú)立同分布。# 1. 獲取標(biāo)準(zhǔn)化殘差 (殘差 / 條件標(biāo)準(zhǔn)差) std_resid fit_result.resid / fit_result.conditional_volatility # 2. 對(duì)標(biāo)準(zhǔn)化殘差做ARCH-LM檢驗(yàn) test_result_resid het_arch(std_resid, maxlag10) print(f“\n標(biāo)準(zhǔn)化殘差的ARCH-LM檢驗(yàn) P值{test_result_resid[1]:.4f}“) if test_result_resid[1] 0.05: print(“通過(guò)檢驗(yàn)標(biāo)準(zhǔn)化殘差已無(wú)顯著的ARCH效應(yīng)模型設(shè)定基本合理?!? # 3. 繪制條件波動(dòng)率年化 conditional_vol fit_result.conditional_volatility annualized_vol conditional_vol * np.sqrt(252) # 將日波動(dòng)率年化 plt.figure(figsize(14, 8)) plt.subplot(3,1,1) plt.plot(returns, alpha0.7, label‘Returns‘) plt.title(‘Daily Returns‘) plt.legend() plt.grid(True) plt.subplot(3,1,2) plt.plot(annualized_vol, color‘red‘, label‘Conditional Volatility (Annualized)‘) plt.title(‘Estimated Conditional Volatility‘) plt.ylabel(‘Volatility‘) plt.legend() plt.grid(True) plt.subplot(3,1,3) plt.hist(std_resid, bins50, edgecolor‘black‘, alpha0.7, densityTrue) plt.title(‘Standardized Residuals Distribution vs. Normal‘) plt.xlabel(‘Value‘) import scipy.stats as stats x np.linspace(-4, 4, 100) plt.plot(x, stats.norm.pdf(x), ‘r--‘, label‘N(0,1)‘) plt.legend() plt.grid(True) plt.tight_layout() plt.show()通過(guò)對(duì)比收益率序列和估計(jì)出的條件波動(dòng)率圖你可以清晰地看到在市場(chǎng)劇烈波動(dòng)時(shí)期收益率絕對(duì)值大的區(qū)域模型估計(jì)的波動(dòng)率也同步升高這直觀地展示了模型的擬合效果。4.5 波動(dòng)率預(yù)測(cè)GARCH模型的一個(gè)重要應(yīng)用是多期波動(dòng)率預(yù)測(cè)。# 使用擬合好的模型進(jìn)行未來(lái)5期的波動(dòng)率預(yù)測(cè) forecast_horizon 5 forecasts fit_result.forecast(horizonforecast_horizon, reindexFalse) # 打印預(yù)測(cè)的條件方差 print(“預(yù)測(cè)的未來(lái)?xiàng)l件方差“) print(forecasts.variance.iloc[-1]) # 獲取最后一期樣本內(nèi)的條件方差并計(jì)算未來(lái)路徑 last_vol conditional_vol.iloc[-1] ** 2 # 轉(zhuǎn)換為方差 last_resid2 fit_result.resid.iloc[-1] ** 2 # 根據(jù)GARCH(1,1)公式手動(dòng)計(jì)算未來(lái)一期預(yù)測(cè)以加深理解 # σ_{t1}^2 ω α * ε_(tái)t^2 β * σ_t^2 omega, alpha, beta fit_result.params[‘omega‘], fit_result.params[‘a(chǎn)lpha[1]‘], fit_result.params[‘beta[1]‘] one_step_forecast_var omega alpha * last_resid2 beta * last_vol print(f“\n手動(dòng)計(jì)算未來(lái)一期條件方差預(yù)測(cè){one_step_forecast_var:.6f}“) print(f“模型輸出未來(lái)一期條件方差預(yù)測(cè){forecasts.variance.iloc[-1, 0]:.6f}“) # 兩者應(yīng)該非常接近對(duì)于多期預(yù)測(cè)GARCH模型預(yù)測(cè)的條件方差會(huì)逐漸收斂到一個(gè)長(zhǎng)期平均水平無(wú)條件方差。這個(gè)長(zhǎng)期方差可以通過(guò)公式ω / (1 - α - β)計(jì)算得到。5. 高級(jí)應(yīng)用、常見(jiàn)陷阱與實(shí)戰(zhàn)心得掌握了基礎(chǔ)建模流程后我們來(lái)看看如何將其應(yīng)用到實(shí)際場(chǎng)景以及過(guò)程中會(huì)遇到哪些“坑”。5.1 核心應(yīng)用場(chǎng)景風(fēng)險(xiǎn)價(jià)值計(jì)算這是GARCH模型在銀行業(yè)和資產(chǎn)管理中最經(jīng)典的應(yīng)用。傳統(tǒng)的VaR計(jì)算使用固定的歷史波動(dòng)率而基于GARCH的條件波動(dòng)率可以動(dòng)態(tài)調(diào)整VaR在波動(dòng)加劇時(shí)提高資本要求更準(zhǔn)確地反映實(shí)時(shí)風(fēng)險(xiǎn)。# 計(jì)算基于GARCH的動(dòng)態(tài)每日VaR (95%置信水平) from scipy.stats import norm confidence_level 0.95 z_score norm.ppf(1 - confidence_level) # 對(duì)于正態(tài)分布95% VaR對(duì)應(yīng)分位數(shù) # 假設(shè)收益率均值為0 dynamic_var z_score * conditional_vol # 可以將其與簡(jiǎn)單歷史波動(dòng)率計(jì)算的VaR進(jìn)行對(duì)比資產(chǎn)配置與波動(dòng)率加權(quán)在構(gòu)建投資組合時(shí)可以根據(jù)GARCH預(yù)測(cè)的未來(lái)波動(dòng)率動(dòng)態(tài)調(diào)整資產(chǎn)權(quán)重在波動(dòng)率預(yù)期升高時(shí)降低風(fēng)險(xiǎn)資產(chǎn)的頭寸。波動(dòng)率交易與衍生品定價(jià)期權(quán)價(jià)格對(duì)標(biāo)的資產(chǎn)的波動(dòng)率極其敏感。GARCH族模型可以用來(lái)預(yù)測(cè)未來(lái)的波動(dòng)率為期權(quán)定價(jià)如計(jì)算隱含波動(dòng)率和波動(dòng)率套利策略如跨式期權(quán)組合提供輸入。波動(dòng)率指數(shù)編制類似于VIX恐慌指數(shù)的編制原理可以通過(guò)GARCH模型從期權(quán)價(jià)格或標(biāo)的資產(chǎn)收益率中提取市場(chǎng)對(duì)未來(lái)波動(dòng)率的預(yù)期。5.2 建模過(guò)程中的典型問(wèn)題與排查模型不收斂或參數(shù)估計(jì)異?,F(xiàn)象擬合時(shí)報(bào)錯(cuò)或輸出的參數(shù)值不合理如為負(fù)、極大??赡茉驍?shù)據(jù)問(wèn)題收益率序列中存在極端異常值如市場(chǎng)熔斷。GARCH模型對(duì)異常值比較敏感。初始值問(wèn)題優(yōu)化算法陷入了局部最優(yōu)。模型設(shè)定過(guò)復(fù)雜例如為平穩(wěn)數(shù)據(jù)設(shè)定了高階GARCH模型。解決方案數(shù)據(jù)清洗檢查并處理極端值Winsorize或剔除但需謹(jǐn)慎避免丟失重要市場(chǎng)信息。更換優(yōu)化方法arch庫(kù)的fit方法支持method參數(shù)可以嘗試從默認(rèn)的‘BFGS‘切換到‘NM‘Nelder-Mead或‘Powell‘。提供初始值使用model.fit()的starting_values參數(shù)根據(jù)經(jīng)驗(yàn)或簡(jiǎn)單估計(jì)提供一組合理的初始值。簡(jiǎn)化模型先從GARCH(1,1)開始確保其能收斂再嘗試增加復(fù)雜度。標(biāo)準(zhǔn)化殘差仍存在自相關(guān)或ARCH效應(yīng)現(xiàn)象模型診斷中標(biāo)準(zhǔn)化殘差的Ljung-Box檢驗(yàn)或ARCH-LM檢驗(yàn)P值仍然很小??赡茉蚓捣匠淘O(shè)定不當(dāng)收益率序列可能存在未被捕捉的自相關(guān)或季節(jié)性。例如周一效應(yīng)、月度效應(yīng)等。波動(dòng)率方程設(shè)定不足GARCH(1,1)可能不足以刻畫復(fù)雜的波動(dòng)動(dòng)態(tài)如存在強(qiáng)烈的杠桿效應(yīng)或長(zhǎng)記憶性。解決方案豐富均值方程在arch_model的mean參數(shù)中嘗試‘AR‘或‘ARX‘并加入適當(dāng)?shù)臏箅A數(shù)或外生變量如周虛擬變量。嘗試更復(fù)雜的波動(dòng)率模型如EGARCH、GJR-GARCH來(lái)捕捉不對(duì)稱效應(yīng)或嘗試FIGARCH分整GARCH來(lái)刻畫長(zhǎng)記憶性。預(yù)測(cè)波動(dòng)率持續(xù)走高或走低不符合直覺(jué)現(xiàn)象多期預(yù)測(cè)的波動(dòng)率沒(méi)有收斂而是持續(xù)上升或下降。可能原因平穩(wěn)性條件不滿足即估計(jì)出的α β 1。這被稱為“集成GARCH”IGARCH意味著沖擊對(duì)波動(dòng)率的影響是永久的不會(huì)衰減。這在某些極端市場(chǎng)時(shí)期可能出現(xiàn)。解決方案檢查樣本數(shù)據(jù)是否包含了一段非常特殊的時(shí)期如長(zhǎng)期牛市或熊市、金融危機(jī)??紤]分割樣本或使用滾動(dòng)窗口估計(jì)。理解IGARCH的經(jīng)濟(jì)含義。在某些高頻數(shù)據(jù)或特定資產(chǎn)上IGARCH可能是一個(gè)合理的近似。5.3 我的實(shí)戰(zhàn)心得與技巧數(shù)據(jù)頻率的選擇日度數(shù)據(jù)是GARCH建模的“甜點(diǎn)區(qū)”。周數(shù)據(jù)或月數(shù)據(jù)波動(dòng)聚集性不明顯模型效果可能不佳分鐘級(jí)或tick級(jí)高頻數(shù)據(jù)噪聲太大且可能違反模型的某些假設(shè)需要更精細(xì)的預(yù)處理如已實(shí)現(xiàn)波動(dòng)率建模。從日收益率開始是最穩(wěn)妥的。分布假設(shè)至關(guān)重要金融收益率的厚尾特性是眾所周知的。默認(rèn)的正態(tài)分布假設(shè)常常導(dǎo)致低估極端風(fēng)險(xiǎn)。學(xué)生t分布或廣義誤差分布是更優(yōu)的選擇。在arch_model中設(shè)置dist‘t‘或dist‘ged‘模型會(huì)自動(dòng)估計(jì)分布的形狀參數(shù)。比較不同分布下模型的AIC/BIC值來(lái)做選擇。滾動(dòng)窗口與模型穩(wěn)定性市場(chǎng)機(jī)制會(huì)變化用一個(gè)固定參數(shù)模型擬合長(zhǎng)達(dá)十年的數(shù)據(jù)可能不合適。對(duì)于實(shí)盤應(yīng)用建議使用滾動(dòng)窗口例如過(guò)去2-3年的數(shù)據(jù)重新估計(jì)模型參數(shù)以捕捉參數(shù)隨時(shí)間的緩慢變化。這能顯著提升樣本外預(yù)測(cè)的穩(wěn)健性。不要過(guò)分追求復(fù)雜模型GARCH(1,1)及其簡(jiǎn)單變體如GJR-GARCH在絕大多數(shù)情況下已經(jīng)足夠好。學(xué)術(shù)界有數(shù)百種GARCH拓展模型但很多在樣本內(nèi)擬合優(yōu)異樣本外預(yù)測(cè)能力卻提升有限且估計(jì)復(fù)雜。始終用樣本外測(cè)試來(lái)評(píng)估模型的預(yù)測(cè)能力而不是僅僅看樣本內(nèi)的擬合優(yōu)度??梢暬抢斫饽P偷淖詈霉ぞ卟粌H要畫條件波動(dòng)率還要畫標(biāo)準(zhǔn)化殘差QQ圖直觀檢查殘差分布與假設(shè)分布的偏離。預(yù)測(cè)路徑圖將歷史波動(dòng)率與多期預(yù)測(cè)波動(dòng)率畫在一起觀察其收斂趨勢(shì)。參數(shù)滾動(dòng)估計(jì)圖如果做滾動(dòng)估計(jì)將alpha和beta隨時(shí)間變化的圖畫出可以洞察市場(chǎng)波動(dòng)結(jié)構(gòu)的演變。最后記住ARCH/GARCH模型是強(qiáng)大的工具但它仍然是基于歷史數(shù)據(jù)的統(tǒng)計(jì)模型其核心假設(shè)是波動(dòng)率的動(dòng)態(tài)模式在未來(lái)會(huì)持續(xù)。在市場(chǎng)結(jié)構(gòu)發(fā)生劇變?nèi)缯呔拮儭⒑谔禊Z事件時(shí)模型可能會(huì)失效。因此它最好與其他市場(chǎng)微觀結(jié)構(gòu)分析、基本面分析結(jié)合使用作為決策支持系統(tǒng)的一部分而非唯一的“水晶球”。