当前位置:天才代写 > tutorial > 其他教程 > rugarch包与R语言中的garch族模子

rugarch包与R语言中的garch族模子

2017-12-05 08:00 星期二 所属: 其他教程 浏览:1559

rgarch包是R顶用来拟合和检讨garch模子的一个包。该包最早在http://rgarch.r-forge.r-project.org上宣布,现已宣布到CRAN上。简朴而言,该包主要包罗四个成果:

  • 拟合garch族模子
  • garch族模子诊断
  • garch族模子预测
  • 模仿garch序列
  • 拟合序列漫衍

  • 下面别离说一下。


    拟合garch族模子


    拟合garch族模子分三个步调:
    (1)通过ugarchspec函数设定模子形式
    (2)通过ugarchfit函数拟合模子


    设定模子形式

    一个典范的garch(p,q)模子如下:


    r_t=c_1+\sum_{i=1}^R\phi_i r_{t-i}+\sum_{j=1}^M \phi_j \epsilon_{t-j}+\epsilon_t \cdots  \cdots (1) \epsilon_t=u_t\sqrt{h_t}  \cdots  \cdots (2)


    h_t=k+\sum_{i=1}^q G_i h_{t-i}+\sum_{i=1}^p A_i\epsilon_{t-i}^2  \cdots  \cdots (3)


    该模子由三个部门组成,均值方程对应式(1),漫衍假设对应(2),方差方程对应式(3),对三个部门举办适当的变形后可以形成egarch模子,egarch-ged模子,egarch-t模子,Igarch模子,garch-m模子和Qgarch模子等。因此,设定模子形式就是别离设定均值方程、方差方程和漫衍。


    rugarch包的优越之处正在于这里。ugarchspec函数的参数也被解析为为三个主要部门,别离是variance.model,对应式(3),mean.model,对应式(1),distribution.model对应式(2)中的$\epsilon$。用户通过对三个部门的参数的别离设定从而结构出本身想用的模子。


    举个例子:

    variance.model = list(model = “sGARCH”, garchOrder = c(1, 1),submodel = NULL, external.regressors = NULL, variance.targeting = FALSE),

    暗示拟合的方差模子为sGARCH,方差模子的自回归阶数是(1,1),方差模子中未引入外生变量。


    mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE)


    暗示均值方程为arma(1,1)模子,方程自变量中包括均值,未引入外生变量。

    distribution.model = “norm”

    暗示模子漫衍假设为正态漫衍。
    将三个部门装入ugarchspec的参数中就可以完成一个sgarch(1,1)-norm模子的模子设定。


    myspec=ugarchspec(variance.model = list(model = “sGARCH”, garchOrder = c(1, 1), submodel = NULL, external.regressors = NULL, variance.targeting = FALSE), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE), distribution.model = “norm”)


    拟合模子

    拟合模子的函数是ugarchfit。ugarchfit的参数如下:

    ugarchfit(spec, data, out.sample = 0, solver = “solnp”, solver.control = list(),fit.control = list(stationarity = 1, fixed.se = 0, scale = 0), …)

    个中,spec为ugarchspec函数的功效,data为数据工具。solver为优化算法。solver.control设定优化参数,fit.control设定拟合参数。
    接上面的例子:

    myfit=ugarchfit(myspec,data=sp500ret,solver=”solnp”)

    到这里一个garch模子就完成了。


    查察功效

    键入下列代码查察模子的拟合功效:


    提取模子功效

    rugarch包中模子功效的提取要依靠as.data.frame函数。好比提取模子的拟合值

    as.data.frame(myfit,which=”fitted”)

    提取残差序列:

    as.data.frame(myfit,which=” residuals”)

    提取方差序列:

    as.data.frame(myfit,which=”sigma”)

    虽然,也可以同时查察所有:

    as.data.frame(myfit,which=all)

    可能

    as.data.frame(myfit)

    两个语句等价。


    模子诊断


    通过plot(myfit)可以对模子功效举办图形诊断:

    > plot(myfit)Make a plot selection (or 0 to exit):  1:   Series with 2 Conditional SD Superimposed 2:   Series with 2.5% VaR Limits (with unconditional mean) 3:   Conditional SD 4:   ACF of Observations 5:   ACF of Squared Observations 6:   ACF of Absolute Observations 7:   Cross Correlation 8:   Empirical Density of Standardized Residuals 9:   QQ-Plot of Standardized Residuals10:   ACF of Standardized Residuals11:   ACF of Squared Standardized Residuals12:   News-Impact CurveSelection: 1

    模子预测


    假如模子通过检讨,可以用ugarchforcast函数对将来举办预测:


    可以用fpm可能plot来查察模子的预测功效。好比:

    > plot(fore)Make a plot selection (or 0 to exit): 1:   Time Series Prediction (unconditional)2:   Time Series Prediction (rolling)3:   Conditional SD PredictionSelection: 1
     

      关键字:

    天才代写-代写联系方式