
GARCH表示广义自回归条件异方差(Generalized Auto Regressive Conditional Heteroscedasticity),模型包括均值方程和方差方程两部分:
均值方程:
方差方程:
系数条件:
GARCH模型待估参数:
条件均值参数:
条件均值常数:C
自回归阶数:R
自回归系数:Φ(AR)
移动平均阶数:M
移动平均系数:θ(MA)
解释变量系数:β(Regress)
条件方差参数
(∑Gi + ∑Aj < 1)
条件方差常数:K
GARCH模型阶数:P(金融时间序列常用1)
GARCH模型阶数:Q(金融时间序列常用1)
(如果Q为0,则P必须为0)
GARCH系数:Gi
ARCH系数:Aj
GARCH模型基本操作
模型结构设置
MATLAB通过命令 garchset 指定模型的结构,garchset 的语法:
Spec = garchset(param1,val1,param2,val2,...)
Spec = garchset(OldSpec, param1,val1,...)
模型参数估计
[Coeff, Errors, LLF, Innovations, Sigmas] = garchfit(Spec, Series)
输入参数
Spec:模型格式
Series:时间序列
输出参数
Coeff: 模型的参数估计值,结构数组,与Spec具有相同格式
Errors: 模型参数的估计误差,结构数组,与Spec具有相同格式
LLF: 模型的极大似然比
Innovations: 残差向量
Sigmas:对应于Innovations的条件标准差向量
误差与测量有关,误差大小可以衡量测量的准确性,误差越大则表示测量越不准确。误差分为两类:系统误差与随机误差。其中,系统误差与测量方案有关,通过改进测量方案可以避免系统误差。随机误差与观测者,测量工具,被观测物体的性质有关,只能尽量减小,却不能避免。 残差――与预测有关,残差大小可以衡量预测的准确性。残差越大表示预测越不准确。残差与数据本身的分布特性,回归方程的选择有关。
GARCH模型应用方法
1、选择一个或多个模型,如garch(1,1)、garch(2,1)
load garchdata
dem2gbp = price2ret(DEM2GBP);
2、估计模型参数
根据数据对每个模型进行参数估计。
估计garch(1,1)
spec11 = garchset('P',1,'Q',1,'Display','off');
[coeff11,errors11,LLF11] = garchfit(spec11,dem2gbp);
garchdisp(coeff11,errors11)
估计garch(2,1)
spec21 = garchset('P',2,'Q',1,'Display','off');
[coeff21,errors21,LLF21] = garchfit(spec21,dem2gbp);
garchdisp(coeff21,errors21)
3、选择模型
利用合适的评估方法选择合适的模型;
似然比检验
似然比检验(LRT)用来评估两个模型中那个模型更适合当前数据分析。具体来说,一个相对复杂的模型与一个简单模型比较,来检验它是不是能够显著地适合一 个特定的数据集。如果可以,那么这个复杂模型的附加参数能够用在以后的数据分析中。LRT应用的一个前提条件是这些待比较的模型应该是分级的巢式模型。具体来讲,是说相对于简单模型,复杂模型仅仅是多了一个或者多个附加参数。增加模型参数必定会导致高似然值成绩。因此根据似然值的高低来判断模型的适合度是不准确的。LRT提供了一个客观的标准来选择合适的模型。LRT检验的公式:
LR = 2*(lnL1-lnL2)其中L1为复杂模型最大似然值,L2为简单标准模型最大似然值LR近似的符合卡方分布。为了检验两个模型似然值的差异是否显 著,我们必须要考虑自由度。LRT检验中,自由度等于在复杂模型中增加的模型参数的数目。这样根据卡方分布临界值表,我们就可以判断模型差异是否显著。
[h,pValue,stat,criticalValue] = lratiotest(uLL,rLL,dof)
[h,pValue,stat,criticalValue] = lratiotest(uLL,rLL,dof,alpha)
[H,pValue,Stat,CriticalValue] = lratiotest(LLF21, LLF11, 1, 0.05);
[H,pValue,Stat,CriticalValue]
H = 1说明在alpha = 0.05条件下支持LLF21
[H,pValue,Stat,CriticalValue] = lratiotest(LLF21,LLF11,1,0.02)
[H,pValue,Stat,CriticalValue]
H = 0说明在alpha = 0.02条件下不支持LLF21
赤池信息准则(AIC)和贝叶斯信息准则(BIC)检验模型
AIC = aicbic(LLF,NumParams)
[AIC,BIC] = aicbic(LLF,NumParams,NumObs)
n11 = garchcount(coeff11)
n21 = garchcount(coeff21)
format long
[AIC,BIC] = aicbic(LLF21,n21,1974);
[AIC BIC]
[AIC,BIC] = aicbic(LLF11,n11,1974);
[AIC BIC]
利用最小原则选择模型
4、仿真和预测
garchsim、garchpred
附:期末作业
题目:中元华电数据分析
要求:封面采用四川大学毕业论文格式,A4纸打印。
一、数据处理
1、ascii2fts导入数据,要求数据大于100期;
2、利用candle函数显示前100期数据;
3、利用fts2mat转换成矩阵,并提取收盘序列;
4、利用price2ret转换成收益率序列;
5、单位根检验。(选作)
二、ARMA模型分析
1、用autocorr进行自相关分析,给出运行结果图;
2、用parcor进行偏相关分析,给出运行结果图;
3、分析运行结果,进行定阶,如果不能直接定阶,利用函数armax进行估计,并利用函数fpe计算最终预报误差,选择最小fpe的阶作为ARMA模型的阶;
m = armax(series, ‘na’, na, ’nc’, nc);
dfpe = fpe(m);
4、估计ARMA模型参数,写出最终的ARMA模型
三、GARCH模型分析
1、估计ARMA(0,0)-GARCH(1,1),要求使用garchdisp,garchplot显示运行结果,并对结果进行分析;
2、估计ARMA(0,1)-GARCH(1,1),要求使用garchdisp,garchplot显示运行结果,并对结果进行分析;
3、估计ARMA(1,0)-GARCH(1,1),要求使用garchdisp,garchplot显示运行结果,并对结果进行分析;
4、估计ARMA(1,1)-GARCH(1,1),要求使用garchdisp,garchplot显示运行结果,并对结果进行分析;
5、利用
NumParams = garchcount(Coeff)
AIC = aicbic(LLF,NumParams)
计算各模型的赤池值,根据最小原则选择GARCH模型;
6、利用选择的模型(使用其估计系数)和garchsim进行仿真,得到收益序列后,以1作为初始价格转换为价格序列,绘制价格图。
