The following estimation methods can be specified in method
:
Deterministic periodicity method ("detper"
)
Parameters:
dailyvol |
A string specifying the estimation method for the daily
component \(s_t\). Possible values are "bipower", "rv", "medrv" .
Default = "bipower" . |
periodicvol |
A string specifying the estimation method for the
component of intraday volatility, that depends in a deterministic way on the
intraday time at which the return is observed. Possible values are
"TML", "SD", "WSD", "OLS" . See Boudt et al. (2011) for details.
Default = "TML" . |
P1 |
A positive integer corresponding to the number of cosinus
terms used in the flexible Fourier specification of the periodicity function,
see Andersen et al. (1997) for details. Default = 5. |
P2 |
Same as P1 , but for the sinus terms. Default = 5. |
Outputs (see 'Value' for a full description of each component):
The spot volatility is decomposed into a deterministic periodic factor
\(f_{i}\) (identical for every day in the sample) and a daily factor
\(s_{t}\) (identical for all observations within a day). Both components
are then estimated separately. For more details, see Taylor and Xu (1997)
and Andersen and Bollerslev (1997). The jump robust versions by Boudt et al.
(2011) have also been implemented.
Stochastic periodicity method ("stochper"
)
Parameters:
P1 |
A positive integer corresponding to the number of cosinus
terms used in the flexible Fourier specification of the periodicity function.
Default = 5. |
P2 |
Same as P1 , but for the sinus terms. Default = 5. |
init |
A named list of initial values to be used in the
optimization routine ("BFGS" in optim ). Default =
list(sigma = 0.03, sigma_mu = 0.005, sigma_h = 0.005, sigma_k = 0.05,
phi = 0.2, rho = 0.98, mu = c(2, -0.5), delta_c = rep(0, max(1,P1)),
delta_s = rep(0, max(1,P2))) .
See Beltratti & Morana (2001) for a definition
of each parameter. init can contain any number of these parameters.
For parameters not specified in init , the default initial value will
be used. |
Outputs (see 'Value' for a full description of each component):
This method by Beltratti and Morana (2001) assumes the periodicity factor to
be stochastic. The spot volatility estimation is split into four components:
a random walk, an autoregressive process, a stochastic cyclical process and
a deterministic cyclical process. The model is estimated using a
quasi-maximum likelihood method based on the Kalman Filter. The package
FKF
is used to apply the Kalman filter. In addition to
the spot volatility estimates, all parameter estimates are returned.
Nonparametric filtering ("kernel"
)
Parameters:
type |
String specifying the type of kernel to be used. Options
include "gaussian", "epanechnikov", "beta" . Default = "gaussian" . |
h |
Scalar or vector specifying bandwidth(s) to be used in kernel.
If h is a scalar, it will be assumed equal throughout the sample. If
it is a vector, it should contain bandwidths for each day. If left empty,
it will be estimated. Default = NULL . |
est |
String specifiying the bandwidth estimation method. Possible
values include "cv", "quarticity" . Method "cv" equals
cross-validation, which chooses the bandwidth that minimizes the Integrated
Square Error. "quarticity" multiplies the simple plug-in estimator
by a factor based on the daily quarticity of the returns. est is
obsolete if h has already been specified by the user. Default =
"cv" . |
lower |
Lower bound to be used in bandwidth optimization routine,
when using cross-validation method. Default is \(0.1n^{-0.2}\). |
upper |
Upper bound to be used in bandwidth optimization routine,
when using cross-validation method. Default is \(n^{-0.2}\). |
Outputs (see 'Value' for a full description of each component):
This method by Kristensen (2010) filters the spot volatility in a
nonparametric way by applying kernel weights to the standard realized
volatility estimator. Different kernels and bandwidths can
be used to focus on specific characteristics of the volatility process.
Estimation results heavily depend on the bandwidth parameter \(h\), so it
is important that this parameter is well chosen. However, it is difficult to
come up with a method that determines the optimal bandwidth for any kind of
data or kernel that can be used. Although some estimation methods are
provided, it is advised that you specify \(h\) yourself, or make sure that
the estimation results are appropiate.
One way to estimate \(h\), is by using cross-validation. For each day in
the sample, \(h\) is chosen as to minimize the Integrated Square Error,
which is a function of \(h\). However, this function often has multiple
local minima, or no minima at all (\(h -> \infty\)). To ensure a reasonable
optimum is reached, strict boundaries have to be imposed on \(h\). These
can be specified by lower
and upper
, which by default are
\(0.1n^{-0.2}\) and \(n^{-0.2}\) respectively, where \(n\) is the
number of observations in a day.
When using the method "kernel"
, in addition to the spot volatility
estimates, all used values of the bandwidth \(h\) are returned.
Piecewise constant volatility ("piecewise"
)
Parameters:
type |
String specifying the type of test to be used. Options
include "MDa", "MDb", "DM" . See Fried (2012) for details. Default =
"MDa" . |
m |
Number of observations to include in reference window.
Default = 40 . |
n |
Number of observations to include in test window.
Default = 20 . |
alpha |
Significance level to be used in tests. Note that the test
will be executed many times (roughly equal to the total number of
observations), so it is advised to use a small value for alpha , to
avoid a lot of false positives. Default = 0.005 . |
volest |
String specifying the realized volatility estimator to be
used in local windows. Possible values are "bipower", "rv", "medrv" .
Default = "bipower" . |
online |
Boolean indicating whether estimations at a certain point
\(t\) should be done online (using only information available at
\(t-1\)), or ex post (using all observations between two change points).
Default = TRUE . |
Outputs (see 'Value' for a full description of each component):
This nonparametric method by Fried (2012) assumes the volatility to be
piecewise constant over local windows. Robust two-sample tests are applied to
detect changes in variability between subsequent windows. The spot volatility
can then be estimated by evaluating regular realized volatility estimators
within each local window.
Along with the spot volatility estimates, this method will return the
detected change points in the volatility level. When plotting a
spotvol
object containing cp
, these change points will be
visualized.
GARCH models with intraday seasonality ("garch"
)
Parameters:
model |
String specifying the type of test to be used. Options
include "sGARCH", "eGARCH" . See ugarchspec in the
rugarch package. Default = "eGARCH" . |
garchorder |
Numeric value of length 2, containing the order of
the GARCH model to be estimated. Default = c(1,1) . |
dist |
String specifying the distribution to be assumed on the
innovations. See distribution.model in ugarchspec for
possible options. Default = "norm" . |
solver.control |
List containing solver options.
See ugarchfit for possible values. Default = list() . |
P1 |
A positive integer corresponding to the number of cosinus
terms used in the flexible Fourier specification of the periodicity function.
Default = 5. |
P2 |
Same as P1 , but for the sinus terms. Default = 5. |
Outputs (see 'Value' for a full description of each component):
This method generates the external regressors needed to model the intraday
seasonality with a Flexible Fourier form. The rugarch
package
is then employed to estimate the specified GARCH(1,1) model.
Along with the spot volatility estimates, this method will return the
ugarchfit
object used by the rugarch
package.