【TS】GARCH模型(1)

    科技2024-11-07  9

    导航

    波动率的特征基本模型ARCHARCH模型的性质 Demo: specify conditional variance model for exchange rates检测条件异方差GARCH(1, 1)模型 Demo: Specify Conditional Mean and Variance Models设置条件均值和方差模型 参考资料

    波动率的特征

    波动率无法直接观测,但是可以从资产收益率中观测到一些特征:

    波动率聚集(volatility cluster), 在某个特定时间段上波动率高,但是在其他时间段上波动率小波动率以连续时间方式变化,几乎不存在跳跃的现象波动率不会发散到无穷,在一个固定范围内变化波动率对价格大幅上升和大幅下降的反应是不同的,即存在杠杆效应(leverage effect),如EGARCH和TGARCH模型就是为了刻画波动率正负资产收益率的不对称性而提出的

    基本模型

    r t r_t rt表示资产在时刻 t t t的对数收益率,研究结果表明,对数收益率序列是前后不相关的,但不是独立的,考虑在给定 F t − 1 F_{t-1} Ft1(filteration)时的条件均值和条件方差 { μ t = E [ r t ∣ F t − 1 ] σ t 2 = V a r ( r t ∣ F t − 1 ) = E [ ( r t − μ t ) 2 ∣ F t − 1 ] \begin{cases} \mu_t=E[r_t\mid F_{t-1}]\\ \sigma_t^2=Var(r_t\mid F_{t-1})=E[(r_t-\mu_t)^2\mid F_{t-1}] \end{cases} {μt=E[rtFt1]σt2=Var(rtFt1)=E[(rtμt)2Ft1] 设置 r t r_t rt服从一个简单的ARMA(p, q)模型, r t = μ t + a t r_t=\mu_t+a_t rt=μt+at,其中 μ t \mu_t μt由以下方程给出 μ t = ϕ 0 + ∑ i = 1 p ϕ i r t − i − ∑ j = 1 q θ j a t − j \mu_t=\phi_0+\sum_{i=1}^p\phi_ir_{t-i}-\sum_{j=1}^q\theta_ja_{t-j} μt=ϕ0+i=1pϕirtij=1qθjatj 可以得到条件异方差模型为 σ t 2 = V a r ( r t ∣ F t − 1 ) = V a r ( a t ∣ F t − 1 ) \sigma_t^2=Var(r_t\mid F_{t-1})=Var(a_t\mid F_{t-1}) σt2=Var(rtFt1)=Var(atFt1)

    条件异方差模型可以分为两类:第一类用确定的函数表示 σ t 2 \sigma_t^2 σt2,即GARCH模型;第二类用随机方程描述 σ t 2 \sigma_t^2 σt2,即SV模型

    使用Ljung-Box检验序列是否存在异方差

    da = read.table('data/m-intcsp7309.txt', header=T) head(da) intc = log(da$intc+1) rtn = ts(intc, frequency = 12, start=c(1973, 1)) plot(rtn, type='l', xlab='year', ylab='ln-rtn') # 绘制时间序列 # 对序列均值进行t检验 t.test(intc) # 进行Ljung-Box检验 Box.test(intc, lag=12, type='Ljung') # Ljung-Box检验 # plot par(mfcol=c(2, 1)) acf(intc, lag=24) acf(abs(intc), lag=24) Box.test(abs(intc), lag=12, type='Ljung') # 更显著

    ARCH

    Engle(1982)提出了ARCH模型,模型的基本思想就是:

    资产收益率的扰动序列 a t a_t at是前后不相关的,但不是独立的 a t a_t at的不独立性可以使用其滞后值得简单二次函数描述,即ARCH(m)模型设定 a t = σ t ε t σ t 2 = α 0 + α 1 a t − 1 2 + ⋯ + α m a t − m 2 a_t=\sigma_t\varepsilon_t\\ \sigma_t^2=\alpha_0+\alpha_1a_{t-1}^2+\dots+\alpha_ma_{t-m}^2 at=σtεtσt2=α0+α1at12++αmatm2 其中 { ε t } \{\varepsilon_t\} {εt}是均值为0方差为1的独立同分布(i.i.d)的随机变量序列,其中 a 0 > 0 , a i ≥ 0 a_0>0, a_i\geq 0 a0>0,ai0,系数 α i \alpha_i αi必须满足标准正态分布或者学生 t t t分布或者广义误差分布(GED),从模型结构上来看,较大的过去的平方扰动 a t − i 2 a_{t-i}^2 ati2会导致较大的条件方差 σ t 2 \sigma_t^2 σt2,从而使得 a t a_t at倾向于取绝对值较大的系数,这种结构与波动率聚集的现象一致.

    ARCH模型的性质

    ARCH(1)模型如下 a t = σ t ε t σ t 2 = α 0 + α 1 a t − 1 2 a_t=\sigma_t\varepsilon_t\\ \sigma_t^2=\alpha_0+\alpha_1a_{t-1}^2 at=σtεtσt2=α0+α1at12 计算出 a t a_t at的无条件均值为 E [ a t ] = E [ a t ∣ F t − 1 ] = E [ σ t E [ ε t ] ] = 0 E[a_t]=E[a_t\mid F_{t-1}]=E[\sigma_tE[\varepsilon_t]]=0 E[at]=E[atFt1]=E[σtE[εt]]=0. 计算无条件方差为 V a r ( a t ) = E ( a t 2 ) = E [ E ( a t 2 ∣ F t − 1 ) ] = α 0 + α 1 E ( a t − 1 2 ) Var(a_t)=E(a_t^2)=E[E(a_t^2\mid F_{t-1})]=\alpha_0+\alpha_1E(a_{t-1}^2) Var(at)=E(at2)=E[E(at2Ft1)]=α0+α1E(at12) 为了研究 a t a_t at的尾部性质,要求 a t a_t at的四阶矩是有限的,当 ε t \varepsilon_t εt服从正态分布的条件下可以得到 E [ a t 4 ] = E [ E [ a t 4 ∣ F t − 1 ] ] = 3 [ E ( a t 2 ∣ F t − 1 ) ] 2 = 3 ( α 0 + α 1 a t − 1 2 ) 2 E[a_t^4]=E[E[a_t^4\mid F_{t-1}]]=3[E(a_t^2\mid F_{t-1})]^2=3(\alpha_0+\alpha_1a_{t-1}^2)^2 E[at4]=E[E[at4Ft1]]=3[E(at2Ft1)]2=3(α0+α1at12)2 设置 a t a_t at的四阶矩为平稳,可以计算出峰度(kurtosis)为 E ( a t 4 ) [ V a r ( a t ) ] 2 = 3 α 0 2 ( 1 + α 1 ) ( 1 − α 1 ) ( 1 − 3 α 1 2 ) × ( 1 − α 1 ) 2 α 0 2 = 3 1 − α 1 2 1 − 3 α 1 2 > 3 \frac{E(a_t^4)}{[Var(a_t)]^2}=3\frac{\alpha_0^2(1+\alpha_1)}{(1-\alpha_1)(1-3\alpha_1^2)}\times\frac{(1-\alpha_1)^2}{\alpha_0^2}=3\frac{1-\alpha_1^2}{1-3\alpha_1^2}>3 [Var(at)]2E(at4)=3(1α1)(13α12)α02(1+α1)×α02(1α1)2=313α121α12>3 可以发现条件高斯ARCH(1)的模型扰动 a t a_t at比高斯白噪声序列更容易出现异常值. 模型中 α i ≥ 0 \alpha_i\geq 0 αi0的假设可以放宽,该条件保证对于所有的 t t t,条件方差 σ t 2 \sigma_t^2 σt2为正值,一种可行的取正值的方式为 { a t = σ t ε t σ t 2 = α 0 + A m , t − 1 ′ Ω A m , t − 1 \begin{cases} a_t=\sigma_t\varepsilon_t\\ \sigma_t^2=\alpha_0+A_{m, t-1}'\Omega A_{m, t-1} \end{cases} {at=σtεtσt2=α0+Am,t1ΩAm,t1 其中 Ω \Omega Ω是一个 m × m m\times m m×m的非负定矩阵

    Demo: specify conditional variance model for exchange rates

    读取汇率数据,图像如下

    %% load data load Data_MarkPound.mat y=Data; T=length(y); figure plot(y) h=gca; h.XTick = [1 659 1318 1975]; h.XTickLabel = {'Jan 1984','Jan 1986','Jan 1988','Jan 1992'}; ylabel 'Exchange Rate'; title 'Deutschmark/British Pound Foreign Exchange Rate';

    计算回报率序列,图像显示如下

    %% r = price2ret(y); % 计算对数收益率 r2=tick2ret(y); figure; plot(2:T, r); h=gca; h.XTick = [1 659 1318 1975]; h.XTickLabel = {'Jan 1984','Jan 1986','Jan 1988','Jan 1992'}; ylabel 'Exchange Rate Returns'; title 'Deutschmark/British Pound Foreign Exchange Rate Returns';

    从图像中可以发现收益率序列存在波动性聚集的特征,即存在条件异方差性(conditional heteroscedasticity). 计算自相关函数和偏自相关函数图像如下

    %% 在百分制数值状态下观测 r = 100 * r; figure; subplot(2, 1, 1); autocorr(r); % 计算自相关函数 subplot(2, 1, 2); parcorr(r); % 计算偏自相关函数

    进行Ljung-Box Q-test结果如下

    [h, p]=lbqtest(r, 'Lags', [5, 10, 15])

    从p值可以得出,ACF和PACF没有表现出显著的自相关性,因此序列不需要建立条件均值模型.

    检测条件异方差

    对收益率序列进行中心化处理后,对序列平方进行ACF和PACF检测

    %% conditional heteroscedasticity subplot(2, 1, 1); autocorr((r-mean(r)).^2); subplot(2, 1, 2); parcorr((r-mean(r)).^2);

    从图中发现存在 k k k阶截尾的特征,执行Engles’s ARCH检测,设置 k = 2 k=2 k=2

    [h, p]=archtest(r-mean(r), 'Lags', 2);

    从检验结果可以发现,squared returns表现除了显著的自相关性,即GARCH model with lagged variances and lagged squared innovations会更加适合该序列. Engle’s ARCH检测结果拒绝了零假设(h=1),支持ARCH(2)模型等效于GARCH(1, 1)模型.

    GARCH(1, 1)模型

    基于自相关性和条件异方差,设置带均值偏移(mean offset)的GARCH(1, 1)模型 y t = μ + ε t y_t=\mu+\varepsilon_t yt=μ+εt 其中 ε t = σ t z t \varepsilon_t=\sigma_tz_t εt=σtzt σ t 2 = κ + γ 1 σ t − 1 2 + α 1 ε t − 1 2 \sigma_t^2=\kappa+\gamma_1\sigma_{t-1}^2+\alpha_1\varepsilon_{t-1}^2 σt2=κ+γ1σt12+α1εt12

    M = garch('Offset', NaN, 'GARCHLags', 1, 'ARCHLags', 1);

    Demo: Specify Conditional Mean and Variance Models

    读入NASDAQ数据

    load Data_EquityIdx nasdaq = DataTable.NASDAQ; r = 100*price2ret(nasdaq); T = length(r); figure plot(r) xlim([0 T]) title('NASDAQ Daily Returns')

    检测自相关性

    %% figure subplot(2, 1, 1) autocorr(r) subplot(2, 1, 2) parcorr(r)

    进行Ljung-Box检验

    [h, p]=lbqtest(r, 'Lags', 5)

    拒绝了null hypothesis,表示存在序列自相关 检测序列是否存在条件异方差

    %% figure subplot(2, 1, 1); autocorr((r-mean(r)).^2); subplot(2, 1, 2); parcorr((r-mean(r)).^2);

    Engle’s ARCH检测是否存在条件异方差

    [h, p]=archtest(r-mean(r), 'lags', 2)

    检验结果为接受备择假设,即存在条件异方差

    设置条件均值和方差模型

    设置AR(1)表示NASDAQ收益率序列的条件均值,GARCH(1, 1)表示条件方差 r t = c + ϕ 1 r t − 1 + ε t r_t=c+\phi_1r_{t-1}+\varepsilon_t rt=c+ϕ1rt1+εt 其中 ε t = σ t z t \varepsilon_t=\sigma_tz_t εt=σtzt σ t 2 = κ + γ 1 σ t − 1 2 + α 1 ε t − 1 2 \sigma_t^2=\kappa+\gamma_1\sigma_{t-1}^2+\alpha_1\varepsilon_{t-1}^2 σt2=κ+γ1σt12+α1εt12

    M=arima('ARLags', 1, 'Variance', garch(1, 1))

    参考资料

    金融数据分析导论 基于R语言 Specify Conditional Variance Model For Exchange Rates

    Processed: 0.066, SQL: 8