function: Univariate GARCH Specification


Method for creating a univariate GARCH specification object prior to fitting.


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", = list(), = list(), ...)



List containing the variance model specification:
model Valid models (currently implemented) are “sGARCH”, “fGARCH”, “eGARCH”, “gjrGARCH”, “apARCH” and “iGARCH” and “csGARCH”.
garchOrder The ARCH (q) and GARCH (p) orders.
submodel If the model is “fGARCH”, valid submodels are “GARCH”, “TGARCH”, “AVGARCH”, “NGARCH”, “NAGARCH”, “APARCH”,“GJRGARCH” and “ALLGARCH”.
external.regressors A matrix object containing the external regressors to include in the variance equation with as many rows as will be included in the data (which is passed in the fit function). variance.targeting (Logical or Numeric) If logical, indicates whether to use variance targeting for the conditional variance intercept “omega”, else if numeric, the value provided is used instead of the unconditional variance for the calculation of the intercept (in combination with the persistence value). Care should be taken if using the numeric option for apARCH and fGARCH models since the intercept is not the variance but sigma raised to the power of some positive value. Finally, if scaling is used (from the fit.control option in ugarchfit), the value provided is adjusted accordingly by the routine.


List containing the mean model specification:
armaOrder The autoregressive (ar) and moving average (ma) orders (if any).
include.mean Whether to include the mean.
archm Whether to include ARCH volatility in the mean regression.
archpow Indicates whether to use st.deviation (1) or variance (2) in the ARCH in mean regression.
arfima Whether to fractional differencing in the ARMA regression.
external.regressors A matrix object containing the external regressors to include in the mean equation with as many rows as will be included in the data (which is passed in the fit function).
archex (integer) Whether to multiply the last 'archex' external regressors by the conditional standard deviation.


The conditional density to use for the innovations. Valid choices are “norm” for the normal distibution, “snorm” for the skew-normal distribution, “std” for the student-t, “sstd” for the skew-student, “ged” for the generalized error distribution, “sged” for the skew-generalized error distribution, “nig” for the normal inverse gaussian distribution, “ghyp” for the Generalized Hyperbolic, and “jsu” for Johnson's SU distribution. Note that some of the distributions are taken from the fBasics package and implenented locally here for convenience. The “jsu” distribution is the reparametrized version from the “gamlss” package.

List of staring parameters for the optimization routine. These are not usually required unless the optimization has problems converging.

List of parameters which are to be kept fixed during the optimization. It is possible that you designate all parameters as fixed so as to quickly recover just the results of some previous work or published work. The optional argument “” in the ugarchfit function indicates whether to calculate standard errors for those parameters fixed during the post optimization stage.




The specification allows for a wide choice in univariate GARCH models, distributions, and mean equation modelling. For the “fGARCH” model, this represents Hentschel's omnibus model which subsumes many others.
For the mean equation, ARFIMAX is fully supported in fitting, forecasting and simulation. There is also an option to multiply the external regressors by the conditional standard deviation, which may be of use for example in calculating the correlation coefficient in a CAPM type setting.
The “iGARCH” implements the integrated GARCH model. For the “EWMA” model just set “omega” to zero in the fixed parameters list.
The asymmetry term in the rugarch package, for all implemented models, follows the order of the arch parameter alpha.
Variance targeting, referred to in Engle and Mezrich (1996), replaces the intercept “omega” in the variance equation by 1 minus the persistence multiplied by the unconditional variance which is calculated by its sample counterpart in the squared residuals during estimation. In the presence of external regressors in the variance equation, the sample average of the external regresssors is multiplied by their coefficient and subtracted from the variance target.
In order to understand which parameters can be entered in the and optional arguments, the list below exposes the names used for the parameters across the various models:(note that when a parameter is followed by a number, this represents the order of the model. Just increment the number for higher orders, with the exception of the component sGARCH permanent component parameters which are fixed to have a lag-1 autoregressive structure.):

  • Mean Model

    • constant: mu

    • AR term: ar1

    • MA term: ma1

    • ARCH-in-mean: archm

    • exogenous regressors: mxreg1

    • arfima: arfima

  • Distribution Model

    • skew: skew

    • shape: shape

    • ghlambda: lambda (for GHYP distribution)

  • Variance Model (common specs)

    • constant: omega

    • ARCH term: alpha1

    • GARCH term: beta1

    • exogenous regressors: vxreg1

  • Variance Model (GJR, EGARCH)

    • assymetry term: gamma1

  • Variance Model (APARCH)

    • assymetry term: gamma1

    • power term: delta

  • Variance Model (FGARCH)

    • assymetry term1 (rotation): eta11

    • assymetry term2 (shift): eta21

    • power term1(shock): delta

    • power term2(variance): lambda

  • Variance Model (csGARCH)

    • permanent component autoregressive term (rho): eta11

    • permanent component shock term (phi): eta21

    • permanent component intercept: omega

    • transitory component ARCH term: alpha1

    • transitory component GARCH term: beta1


A uGARCHspec object containing details of the GARCH specification.


Alexios Ghalanos


# a standard specification
spec1 = ugarchspec()
# an example which keep the ar1 and ma1 coefficients fixed:
spec2 = ugarchspec(mean.model=list(armaOrder=c(2,2),,ma1=0.3)))
# an example of the EWMA Model
spec3 = ugarchspec(variance.model=list(model="iGARCH", garchOrder=c(1,1)), 
		mean.model=list(armaOrder=c(0,0), include.mean=TRUE),  

Want to suggest features or report bugs for Use the GitHub issue tracker.

comments powered by Disqus