以下內(nèi)容為盧朓老師在B站進(jìn)行的分享,可以作為學(xué)習(xí)參考:
GARCH族模型,即廣義自回歸條件異方差模型(Generalized Autoregressive Conditional Heteroskedasticity Model),是一類用于估計(jì)時(shí)間序列數(shù)據(jù)波動(dòng)率的統(tǒng)計(jì)模型。該模型由Bollerslev在1986年提出,是對(duì)ARCH(自回歸條件異方差)模型的一種重要擴(kuò)展。GARCH模型在金融時(shí)間序列分析中具有廣泛的應(yīng)用價(jià)值,尤其是在金融市場(chǎng)波動(dòng)性的建模和預(yù)測(cè)方面。
一、GARCH模型的基本概念
GARCH模型主要用于描述時(shí)間序列數(shù)據(jù)(如股票價(jià)格、匯率、利率等)的波動(dòng)性特征。傳統(tǒng)計(jì)量經(jīng)濟(jì)學(xué)假設(shè)時(shí)間序列變量的波動(dòng)幅度(方差)是固定的,但這往往不符合實(shí)際情況。例如,股票收益的波動(dòng)幅度通常會(huì)隨時(shí)間變化,表現(xiàn)出聚集性特征,即大的波動(dòng)后面往往跟著大的波動(dòng),小的波動(dòng)后面往往跟著小的波動(dòng)。GARCH模型通過(guò)引入條件異方差來(lái)描述這種波動(dòng)性聚集現(xiàn)象,從而更準(zhǔn)確地捕捉時(shí)間序列數(shù)據(jù)的波動(dòng)性特征。
二、GARCH模型的結(jié)構(gòu)
GARCH模型通常由兩部分組成:均值方程和方差方程。
均值方程:通常是一個(gè)ARMA(自回歸移動(dòng)平均)模型,用于描述時(shí)間序列數(shù)據(jù)的線性關(guān)系。它表示時(shí)間序列數(shù)據(jù)在某一時(shí)刻的期望值,即數(shù)據(jù)的均值部分。
方差方程:是GARCH模型的核心,用于描述時(shí)間序列數(shù)據(jù)的波動(dòng)性。方差方程是一個(gè)自回歸移動(dòng)平均模型,但作用于時(shí)間序列的方差上,而不是直接作用于時(shí)間序列數(shù)據(jù)本身。通過(guò)考慮過(guò)去的波動(dòng)率和誤差項(xiàng),方差方程能夠預(yù)測(cè)未來(lái)的波動(dòng)率。
三、GARCH模型的數(shù)學(xué)表達(dá)式
GARCH模型的均值方程通常用于描述時(shí)間序列數(shù)據(jù)的條件均值,即數(shù)據(jù)在給定信息集下的期望值。然而,值得注意的是,GARCH模型的核心在于其方差方程,該方程用于刻畫(huà)時(shí)間序列數(shù)據(jù)的條件異方差性,即波動(dòng)性。盡管如此,在構(gòu)建GARCH模型時(shí),通常也會(huì)同時(shí)指定一個(gè)均值方程。
對(duì)于GARCH模型的均值方程,其形式可以相對(duì)簡(jiǎn)單,也可以相對(duì)復(fù)雜,具體取決于數(shù)據(jù)的特性和研究目的。一個(gè)常見(jiàn)的均值方程認(rèn)為時(shí)間序列數(shù)據(jù)的均值是恒定的。這種方程形式適用于數(shù)據(jù)圍繞某個(gè)固定水平波動(dòng)的情況。
其中,y_t 是t時(shí)刻的觀測(cè)值, \mu 是常數(shù)均值,\epsilon_t 是殘差項(xiàng)。
在GARCH模型中,殘差項(xiàng) $\epsilon_t$ 通常被表示為條件方差 $\sigma_t$ 和一個(gè)獨(dú)立同分布(iid)的隨機(jī)變量 $z_t$ 的乘積,即
這里,$z_t$ 通常被假設(shè)為標(biāo)準(zhǔn)正態(tài)分布 $N(0,1)$ 的隨機(jī)變量,意味著它有一個(gè)均值為0和方差為1的正態(tài)分布。
條件方差 $\sigma_t$ 是通過(guò)GARCH模型的方差方程來(lái)估計(jì)的,一般形式的GARCH(p,q)模型的方差方程可以表示為:
其中, 是t時(shí)刻的條件方差,?_t 是t時(shí)刻的殘差項(xiàng),α_0 是常數(shù)項(xiàng),α_i 和 β_j 是模型的參數(shù)。p和q分別表示方差方程中自回歸項(xiàng)和移動(dòng)平均項(xiàng)的階數(shù)。
四、GARCH族模型的求解
GARCH族模型作為一類用于精確估計(jì)金融時(shí)間序列數(shù)據(jù)波動(dòng)率的統(tǒng)計(jì)模型,其求解過(guò)程涉及多個(gè)復(fù)雜步驟。
首先,準(zhǔn)備和預(yù)處理金融時(shí)間序列的歷史數(shù)據(jù)是至關(guān)重要的。這一步驟包括數(shù)據(jù)的清洗、轉(zhuǎn)換和差分等,以確保數(shù)據(jù)的準(zhǔn)確性、一致性和適用性。通過(guò)預(yù)處理,我們可以消除數(shù)據(jù)中的異常值、填補(bǔ)缺失值,并將其轉(zhuǎn)換為適合模型分析的形式。
接下來(lái),根據(jù)數(shù)據(jù)的特性和研究需求,我們需要選擇合適的GARCH模型,并明確設(shè)定均值方程和方差方程的形式。這一步驟要求我們具備扎實(shí)的統(tǒng)計(jì)理論知識(shí),以便能夠準(zhǔn)確地描述時(shí)間序列數(shù)據(jù)的動(dòng)態(tài)特征。
在模型設(shè)定之后,構(gòu)建似然函數(shù)成為關(guān)鍵。似然函數(shù)是基于殘差項(xiàng)的分布(如標(biāo)準(zhǔn)正態(tài)分布)來(lái)構(gòu)建的,它反映了模型參數(shù)與觀測(cè)數(shù)據(jù)之間的匹配程度。通過(guò)最大化似然函數(shù),我們可以找到最優(yōu)的參數(shù)估計(jì)值,從而使模型更好地?cái)M合觀測(cè)數(shù)據(jù)。
參數(shù)估計(jì)是求解GARCH族模型的核心步驟。我們需要運(yùn)用極大似然估計(jì)法(MLE)等高級(jí)統(tǒng)計(jì)參數(shù)估計(jì)方法,并通過(guò)求解似然函數(shù)的導(dǎo)數(shù)等于零的方程組或使用迭代算法(如Newton-Raphson算法、BFGS算法等)來(lái)找到最優(yōu)的參數(shù)估計(jì)值。這一步驟要求我們具備深厚的數(shù)學(xué)功底和編程能力,以便能夠準(zhǔn)確地估計(jì)出模型的參數(shù)。
最后,對(duì)估計(jì)得到的模型進(jìn)行嚴(yán)格的檢驗(yàn)是必不可少的。我們需要運(yùn)用殘差檢驗(yàn)、模型驗(yàn)證等統(tǒng)計(jì)方法,評(píng)估模型的擬合效果和預(yù)測(cè)能力。如果模型通過(guò)檢驗(yàn),我們就可以使用它來(lái)進(jìn)行時(shí)間序列數(shù)據(jù)的波動(dòng)率預(yù)測(cè)和進(jìn)一步的分析。
五、GARCH族模型的衍生與發(fā)展
隨著研究的深入,GARCH模型得到了不斷的擴(kuò)展和完善,形成了GARCH族模型。這些衍生模型包括但不限于:
EGARCH:指數(shù)GARCH模型,用于解決GARCH模型中對(duì)正負(fù)擾動(dòng)的對(duì)稱性問(wèn)題。
GJR-GARCH:Glosten-Jagannathan-Runkle GARCH模型,同樣用于捕捉正負(fù)擾動(dòng)對(duì)波動(dòng)率的不對(duì)稱影響。
APARCH:平均絕對(duì)偏差GARCH模型,通過(guò)引入絕對(duì)值項(xiàng)來(lái)改進(jìn)模型。
IGARCH:積分GARCH模型,用于處理?xiàng)l件方差無(wú)限持久的情況。
GARCH-M:均值GARCH模型,在均值方程中引入方差項(xiàng),以反映風(fēng)險(xiǎn)與收益之間的關(guān)系。
六、GARCH模型的應(yīng)用
GARCH模型在金融市場(chǎng)中具有廣泛的應(yīng)用,主要包括:
波動(dòng)性預(yù)測(cè):通過(guò)對(duì)歷史數(shù)據(jù)的分析,GARCH模型可以預(yù)測(cè)未來(lái)時(shí)間序列數(shù)據(jù)的波動(dòng)性,為投資者提供決策支持。
風(fēng)險(xiǎn)管理:金融機(jī)構(gòu)可以利用GARCH模型進(jìn)行風(fēng)險(xiǎn)定價(jià)和風(fēng)險(xiǎn)管理,提高經(jīng)營(yíng)效率。
投資組合優(yōu)化:投資者可以根據(jù)GARCH模型的預(yù)測(cè)結(jié)果調(diào)整投資組合,以降低投資風(fēng)險(xiǎn)并提高收益。
綜上所述,GARCH族模型是一類強(qiáng)大的時(shí)間序列分析工具,特別適用于金融市場(chǎng)的波動(dòng)性建模和預(yù)測(cè)。通過(guò)不斷的研究和發(fā)展,GARCH模型在金融領(lǐng)域的應(yīng)用前景將更加廣闊。
七、北太天元的代碼示例
% 示例數(shù)據(jù)(通常這里應(yīng)該是金融時(shí)間序列數(shù)據(jù),如股票收益率) N = 1000; %數(shù)據(jù)點(diǎn)的總數(shù) data = randn(N,1); % 使用隨機(jī)數(shù)作為示例 % 設(shè)定初始值 mu = mean(data); % 樣本均值 sigma2 = zeros(N,1); %和data 一樣為列向量 sigma2(1) = var(data); % 樣本方差 residuals = data - mu; % 計(jì)算殘差 % 迭代計(jì)算GARCH(1,1)模型的條件方差(這里我們先使用簡(jiǎn)單的樣本方差作為初始值) omega = 0.01; alpha = 0.1; beta = 0.85; for t = 2:length(data) sigma2(t) = omega + alpha * residuals(t-1)^2 + beta * sigma2(t-1); end % 使用極大似然估計(jì)法(MLE)來(lái)估計(jì)參數(shù) params0 = [omega, alpha, beta]; % 初始參數(shù) options = optimset('Display','iter','TolFun',1e-8); params_est = fminsearch(@(params) -logLikelihoodGARCH(params, residuals, sigma2), params0, options); % 輸出估計(jì)的參數(shù) omega_est = params_est(1); alpha_est = params_est(2); beta_est = params_est(3); fprintf('Estimated omega: %f\n', omega_est); fprintf('Estimated alpha: %f\n', alpha_est); fprintf('Estimated beta: %f\n', beta_est); % 輔助函數(shù):計(jì)算GARCH(1,1)模型的對(duì)數(shù)似然函數(shù) function ll = logLikelihoodGARCH(params, residuals, sigma2) omega = params(1); alpha = params(2); beta = params(3); % 這里我們不重新計(jì)算殘差和條件方差,而是使用傳入的參數(shù) % 計(jì)算對(duì)數(shù)似然函數(shù) T = length(residuals); ll = -0.5 * sum(log(2*pi*sigma2(2:T)) + residuals(2:T).^2 ./ sigma2(2:T)); % 注意:我們從第二個(gè)觀測(cè)值開(kāi)始計(jì)算對(duì)數(shù)似然,因?yàn)榈谝粋€(gè)觀測(cè)值的條件方差是已知的(通常是樣本方差) end
代碼可以copy 到文心一言里,讓它給你解讀一下, 這里僅僅解釋一下對(duì)數(shù)似然函數(shù)。對(duì)數(shù)似然函數(shù)是根據(jù)GARCH(1,1)模型的定義和假設(shè)來(lái)推導(dǎo)的。GARCH(1,1)模型是一個(gè)時(shí)間序列模型,用于描述金融資產(chǎn)的波動(dòng)率。它假設(shè)時(shí)間序列的殘差(去均值化后的觀測(cè)值)服從一個(gè)條件正態(tài)分布,其條件方差由過(guò)去的殘差和過(guò)去的條件方差共同決定。
具體來(lái)說(shuō),GARCH(1,1)模型可以表示為:
其中,$\sigma_t^2$ 是時(shí)刻t的條件方差,$\omega$、$\alpha$ 和 $\beta$ 是模型的參數(shù),$r_{t-1}$ 是時(shí)刻t-1的殘差。
現(xiàn)在,我們假設(shè)殘差 $r_t$ 服從條件正態(tài)分布 $N(0, \sigma_t^2)$。這意味著,給定過(guò)去的信息,$r_t$ 的概率密度函數(shù)是:
對(duì)數(shù)似然函數(shù)是概率密度函數(shù)的自然對(duì)數(shù),即:
由于我們處理的是一系列觀測(cè)值 $r_2, \ldots, r_T$(通常第一個(gè)觀測(cè)值用于初始化),對(duì)數(shù)似然函數(shù)是這些觀測(cè)值的對(duì)數(shù)概率密度之和:
將概率密度函數(shù)代入上式,并取對(duì)數(shù),我們得到:
這就是我們?cè)诖a中使用的對(duì)數(shù)似然函數(shù)的形式。注意,這里有一個(gè)負(fù)號(hào),因?yàn)槲覀冊(cè)谧畲蠡瘜?duì)數(shù)似然函數(shù)時(shí)實(shí)際上是在最小化負(fù)對(duì)數(shù)似然函數(shù)(這是一個(gè)常見(jiàn)的做法,因?yàn)閮?yōu)化算法通常設(shè)計(jì)為最小化目標(biāo)函數(shù))。因此,當(dāng)我們使用`fminsearch`函數(shù)時(shí),我們實(shí)際上是在最小化負(fù)對(duì)數(shù)似然函數(shù),這等價(jià)于最大化對(duì)數(shù)似然函數(shù)。
七、北太天元V3.5的一個(gè)小bug的修復(fù)
北太天元報(bào)錯(cuò):
錯(cuò)誤(文件 C:\baltamatica\plugins\optimization\scripts\fminsearch.m, 行474, 列1): 與function配對(duì)的end一旦出現(xiàn)一個(gè)以上,就必須做到一一對(duì)應(yīng)?,F(xiàn)在是沒(méi)有做到一一對(duì)應(yīng)。
C:\baltamatica\plugins\optimization\scripts\fminsearch.m解析出錯(cuò)
修復(fù)方法:
在 C:\baltamatica\plugins\optimization\scripts\fminsearch.m的471行后面增加一行,內(nèi)容是end
增加后, 如下圖所示
相關(guān)視頻講解: