基于R软件的金融资产收益波动率建模分析

2014-02-25 10:52熊炳忠
电脑知识与技术 2014年1期

熊炳忠

摘要:金融资产收益波动率是金融计量分析的核心议题,该文考虑对其建模分析的计算机实现问题。利用R软件的强大计算与绘图功能,给出金融资产收益波动率各个模型的模拟实现以及对实际金融市场数据的各种建模分析。

关键词:波动率;R软件;建模分析

中图分类号:F830 文献标识码:A 文章编号:1009-3044(2014)01-0185-04

现代金融问题的显著特点是不断在金融学内容中引入数量化的理论和方法,最优投资组合、资产波动率建模、金融衍生品定价、金融风险管理等,无一不是现代统计学、数学、计算机技术等知识在金融上的集中体现。因此要使金融数学专业学生能更好地理解掌握现代金融理论的内涵,提高对金融问题的定量化分析能力与水平,适应时代发展的需要,教师在课堂上不仅要解释清楚各个模型及其背后的原理,更重要的是教会学生如何实现各模型的每一步计算机实现的全过程,训练他们能利用实际金融数据进行建模分析的能力。

金融资产收益波动率是期权定价、风险管理、投资组合分析、交易策略中的关键指标,对其建模分析是金融计量分析的核心议题,其已经贯穿到整个现代金融理论体系中。在马科维兹提出的均值方差投资组合[1]模型中,其将标的资产收益的标准差作为波动率;著名的Black-Scholes期权定价公式[2]中的重要参数[σ]就是标的资产对数收益率的条件标准差;J.P,Morgan将风险度量制发展成為VaR[3]计算,其考虑就是将条件正态分布的标注差作为风险资产收益率的波动率;更有市场指数的波动率本身也成为一种金融交易产品,如,芝加哥期权交易所的VIX波动指数。二十年来,广大学者关于一元波动率提出了相当丰富的模型,其主要有Engle提出的ARCH模型[4]、Bollersev提出的GARCH模型[5]、Nelson提出的EGARCH模型、Tsay提出的CHARMA模型、Glosten, Jagannathan, Runlele等提出的TGARCH[6]、Jacquier,Polson,Rissi提出的随机波动(SV)模型[7]等。如何有效掌握、利用现代统计计算的高级软件[8]对金融资产收益波动率的科学建模分析已经成为金融数量化分析人才的必备技能之一。

1 R语言的优势

对金融资产波动率建模分析涉及到较为复杂的数学与统计理论,计算复杂繁琐,根本不可能由手工完成,往往需要借助于相关的统计计算软件。现代金融计量分析中常用软件有MATLAB、SAS、SPSS、SPLUS、EVIEWS以及R等。其中R软件是一套完整的集数据处理分析、计算和绘图的软件系统,其交互式运行方式使得人们利用它可以非常方便探索复杂数据。R软件具有强大的统计分析与数据可视化功能,相比较于其他语言,其语言比较简单、易懂、编程简便、语法易学、有较多的统计函数;再有,其是自由、免费、源代码公开的软件,各种可以获得的资源丰富;更有是其非常方便加载各种工具包。R软件凭借其有向量、数组、列表等丰富的数据类型丰富以及安装及其方便等许多优点,就非常适合于对金融数据的建模分析的课堂教学工具。

2 金融资产收益波动率模型与模拟

金融资产波动率的一个特殊性就是其不可直接观测到,但是通过其收益率序列的一些特征能发现其一些特征,比如波动聚类性、在固定范围内随时间连续变化以及显示杠杆效应等。通常的波动率模型选择主要是基于能反映出其一些特征而设计。

用[rt]表示资产在[t]时刻的收益率,记[Ft-1]为[t-1]时刻已知的信息集,在[Ft-1]下[rt]的条件均值为[μt]及条件方差为[σ2t],其中[μt=E(rt|Ft-1)],[σ2t=Var(rt|Ft-1)]。对[rt]一般假定为

[rt=μt+atμt=i=1p?iμt-i-i=1qθiat-i] (1)

由此得到[σ2t=Var(rt|Ft-1)=Var(at|Ft-1)],这样对波动率建模主要是描述[σ2t]的模型演变。

2.1 ARCH 模型

考虑对波动率的条件异方差建模中,ARCH模型是最基本的。具体如下:

[at=σtetσt=α0+i=1pαia2t-i] (2)

其中[et]是个均值为0,方差为1的独立同分布随机变量序列,[α0>0,αi≥0,p]为某一正整数。现在模拟1100个AR(1)-ARCH(1)模型的数据,其中条件均值方程中各个参数设置为[μ=0.1,?=0.8],条件方差中各参数设置为[α0=1,α1=0.95],R程序代码如下:

#################

#AR(1)-ARCH(1)模型模拟

n=1100

e=rnorm(n)

a=u=e

sig2=e^2

alpha0=1

alpha1=0.95

phi=0.8

mu=0.1

for (i in 2:n)

{

sig2[i+1] = alpha0+ alpha1*a[i]^2

a[i] = sqrt(sig2[i])*e[i]

u[i] = mu + phi*(u[i-1]-mu) + a[i]

}

plot(e,type="l")

plot(a,type="l")

plot(u,type="l")

#################

2.2 GARCH 模型

基于ARCH模型简单性,实际应用中被广泛采用,但是一般需要比较高的阶数才能较好地反映资产收益波动率的性态。Bollerslev于1986年提出了其一个有用的推广形式,称为GARCH 模型。具体模型为:

[at=σtetσt=α0+i=1pαia2t-i+j=1qβjσ2t-j] (3)

其中[et]是个均值为0,方差为1的独立同分布随机变量序列,[α0>0] [αi≥0,βj≥0,i,j(αi+βj)<1,p,q]为某一正整数。

利用fGarch包,调用garchSpec与garchSim函数同样模拟10000个ARMA(1,1)-GARCH(1,1)模型的数据,其中条件均值方程中各个参数设置为[?1=0.3,?2=0.4,θ1=0.6,θ2=0.7,],条件方差中各参数设置为[α0=1.5],[α1=0.4,]

[β1=0.3],其相关的R程序代码如下:运行程序得到模拟收益率序列如图1所示。

###########################

#带ARMA(1,1)-GARCH(1,1)的模拟与估计

library(fGarch)

spec1=garchSpec(model=list(ar=c(0.3,0.4),ma=c(0.6,0.7),alpha0=1.5,alpha1=0.4, beta1=0.3))

armagarch11 = garchSim(spec1, n.start = 500, n=10500)

plot(armagarch11,main="Series garch11")

###########################

2.3 APARCH 模型

金融资产收益率序列有时表现出较大的负收益比相同幅度的正收益引起更大的波动,这个被称为杠杆效应。普通的GARCH模型不能体现出这个特性,为了反映出这种特性。Ding, Granger和Engle于1993年提出了APARCH模型。其数学表达式如下:

[at=σtetσδt=α0+i=1pαiat-i-γiat-1δ+j=1qβjσδt-j] (4)

其中[et]是个均值为0,方差为1的独立同分布随机变量序列,[α0>0] [αi≥0,βj≥0,δ>0,-1<γi<1,i=1,2,…,p]。当[δ=2],[γ1=γ2=…=γp=0]时就是标准的GARCH模型。

3 实证分析

收集上证综合指数(证券代码为000001)2011年至2013年9月30日共664個交易日收盘价价格序列,计算得到其对数收益率序列如图2所示,然后对该序列分别进行ARCH(2) 、GARCH(1,1)-N、GARCH(1,1)-T、AR(1)-APARCH(1,1) 建模,估计出各种模型的各个参数,结果如表1所示。表1中的[μ]值相差较少,表明各个模型下的收益率条件均值比较接近;GARCH(1,1)-T的t分布自由度为4.6说明收益率残差序列的厚尾性态明显;AR(1)-APARCH(1,1)模型中的[γ1]值为0.91,强烈说明收益率序列存在杠杆效应;[δ]值为0.125,充分说明[δ]=2的标准GARCH模型不是实际波动率序列的一般模型。基于AIC、BIC、SIC的值以及标准化残差的拉格朗日乘数检验等指标来检验模型的整体效果,得到相关数据如表2所示。上述四个模型的标准化残差的LMarch检验的p值都远远大于0.05,表明它们都不存在ARCH效应,说明这些模型都很好地消除了收益率序列波动率的ARCH效应;从这四个模型的三种信息准则看GARCH(1,1)-T表现最好,AR(1)-APARCH(1,1)模型次之;ARCH(2)与GARCH(1,1)-N基本相当。

表1 各种模型的参数估计结果

[模型\&[μ]\&[α0]\&[α1]\&[β1]\&T分布自由度\&[γ1]\&[δ]\&ARCH(2)\&-0.0344\&1.27\&0\&[α2=]0.039\&-\&-\&-\&GARCH(1,1)-N\&-0.041\&0.048\&0\&0.69\&-\&-\&-\&GARCH(1,1)-T\&-0.0375\&0.445\&0\&0.68\&4.61\&-\&-\&AR(1)-APARCH(1,1)\&-0.0365\&0.068\&0.0098\&0.93\&[?=-0.018]\&0.91\&0.125\&]

表2 各模型方程的整体检验与标准化残差检验

[模型\&标准化残差的LMarch检验T*R2值\&标准化残差的LMarch检验p值\&AIC\&BIC\&SIC\&ARCH(2)\&13.57\&0.33\&3.128\&3.155\&3.127\&GARCH(1,1)-N\&14.15\&0.292\&3.129\&3.156\&3.130\&GARCH(1,1)-T\&14.18\&0.389\&3.078\&3.105\&3.072\&AR(1)-APARCH(1,1)\&16.88\&0.256\&3.119\&3.117\&3.115\&]

##############################

#上证综合指数2011年至2013年三季度市场数据建模

library(fGarch)

sz<- read.csv("SZdaily.csv")

head(sz)

sz<- rev(sz[1:664,4])

sz<- log(sz)

rsz <- 100 * diff(sz)

plot(rsz,type='l',main="SZSeries2011-2013")

acf(rsz)

acf(rsz^2)

qqmath(~ rsz, distribution = function(p) qt(p, df = 5), xlab="t(5)")

qqmath(~ return500, distribution = function(p) qt(p, df = 6), xlab="t(6)")

fit1<- garchFit(formula = ~ garch(2, 0), data = rsz, dist.est=T, cond.dist = "norm" )

summary(fit1)

fit2<- garchFit(formula = ~ garch(1, 1), data = rsz, dist.est=T, cond.dist = "norm" )

summary(fit2)

fit3<- garchFit(formula = ~ garch(1, 1), data = rsz, dist.est=T, cond.dist = "std" )

summary(fit3)

fit4<- garchFit(formula = ~ arma(1,0)+aparch(1, 1), data = rsz, dist.est=T, cond.dist = "norm" )

summary(fit4)

##############################

4 結束语

本文主要研究基于免费、强大、主流的R软件,实现金融定量分析中波动率重要指标的各种模型建模分析,对相关模型进行编程,利用收集到的上证综合指数2011年至2013年三季度的数据进行建模实证,运行程序,演示各个模型的每一计算步骤与结果、图表,实现直观形象的课堂可视化教学。试图改变传统的只讲解波动率模型的理论教学模式,打破广大学生只是教科书上的数字、图表、公式的“看客”的局面,让所有学生自己动手,参与制作、检验金融资产波动率理论与模型,从而激发广大学习学习兴趣、增强学习信心;理解掌握现代金融理论,动手解决实际问题的能力;培养勤于思考、探索,肯于建模分析、实证检验的良好习惯。

参考文献:

[1] Markowitz, H. Portfolio Selection, Journal of Financial[J]. 1952(7):77-91.

[2] Black,F. and Scholes M. The Pricing of Options and Corporate Liabilities [J]. Journal of Political Economy, 1973(81):637-654.

[3] Jorion,P. Value at Risk: The New Benchmark for Managing Financial Risk, 3rd ed [M], McGraw-Hill, Chicago, 2006:53-65.

[4] Engle,R.F. Autoregressive conditional heteroskedasticity with estimates of variance of U.K. inflation [J]. Econometrica, 1982(50):987-1008.

[5] Bollerslev,T.,Generalized autoregressive conditional heteroskedasticity[J]. Econometrica, 1986(31):307-327.

[6] Tsay,R.S. Analysis of Financial Time Series,2nd ed.,Wiley,NewYork, 2005:99-121.

[7] Jacquier, E., Polson, N. G., and Rissi, P. Bayesian analysis of stochastic variance models [J]. Review of Economic Studies, 1994(61):247-264.

[8] Ruppert, David. Statistics and data analysis for financial engineering[M]. Springer New York Dordrecht Heidelberg London, 2011:477-493.