gas_filter {gasmodel} | R Documentation |
Filter GAS Model
Description
A function for obtaining filtered time-varying parameters of generalized autoregressive score (GAS) models of Creal et al. (2013) and Harvey (2013).
It captures parameter uncertainty and can also be used for forecasting.
Method "simulated_coefs"
computes a path of time-varying parameters for each simulated coefficient set under assumption of asymptotic normality with given variance-covariance matrix (see Blasques et al., 2016).
Method "given_coefs"
computes a path of time-varying parameters for each supplied coefficient set.
Instead of supplying arguments about the model, the function can be applied to the gas
object obtained by the gas()
function.
Usage
gas_filter(gas_object = NULL, method = "simulated_coefs",
coef_set = NULL, rep_gen = 1000L, t_ahead = 0L, x_ahead = NULL,
rep_ahead = 1000L, quant = c(0.025, 0.975), y = NULL, x = NULL,
distr = NULL, param = NULL, scaling = "unit", regress = "joint",
p = 1L, q = 1L, par_static = NULL, par_link = NULL,
par_init = NULL, coef_fix_value = NULL, coef_fix_other = NULL,
coef_fix_special = NULL, coef_bound_lower = NULL,
coef_bound_upper = NULL, coef_est = NULL, coef_vcov = NULL)
Arguments
gas_object |
An optional GAS estimate, i.e. a list of S3 class |
method |
A method used for parameter uncertainty. Supported methods are |
coef_set |
A numeric matrix of coefficient sets in rows for |
rep_gen |
A number of generated coefficient sets for |
t_ahead |
A number of observations to forecast. |
x_ahead |
Out-of-sample exogenous variables. For a single variable common for all time-varying parameters, a numeric vector. For multiple variables common for all time-varying parameters, a numeric matrix with observations in rows. For individual variables for each time-varying parameter, a list of numeric vectors or matrices in the above form. The number of observation must be equal to |
rep_ahead |
A number of simulation repetitions for forecasting when |
quant |
A numeric vector of probabilities determining quantiles. |
y |
A time series. For univariate time series, a numeric vector or a matrix with a single column. For multivariate times series, a numeric matrix with observations in rows. |
x |
Optional exogenous variables. For a single variable common for all time-varying parameters, a numeric vector. For multiple variables common for all time-varying parameters, a numeric matrix with observations in rows. For individual variables for each time-varying parameter, a list of numeric vectors or matrices in the above form. The number of observation must be equal to the number of observations of |
distr |
A conditional distribution. See |
param |
A parametrization of the conditional distribution. If |
scaling |
A scaling function for the score. The supported scaling functions are the unit scaling ( |
regress |
A specification of the regression and dynamic equation with regard to exogenous variables. The supported specifications are exogenous variables and dynamics within the same equation ( |
p |
A score order. For order common for all parameters, a numeric vector of length 1. For individual order for each parameter, a numeric vector of length equal to the number of parameters. Defaults to |
q |
An autoregressive order. For order common for all parameters, a numeric vector of length 1. For individual order for each parameter, a numeric vector of length equal to the number of parameters. Defaults to |
par_static |
An optional logical vector indicating static parameters. Overrides |
par_link |
An optional logical vector indicating whether the logarithmic/logistic link should be applied to restricted parameters in order to obtain unrestricted values. Defaults to applying the logarithmic/logistic link for time-varying parameters and keeping the original link for constant parameters. |
par_init |
An optional numeric vector of initial values of time-varying parameters. For |
coef_fix_value |
An optional numeric vector of values to which coefficients are to be fixed. |
coef_fix_other |
An optional square numeric matrix of multiples of the estimated coefficients, which are to be added to the fixed coefficients. This allows the fixed coefficients to be linear combinations of the estimated coefficients. A coefficient given by row is fixed on coefficient given by column. By this logic, all rows corresponding to the estimated coefficients should contain only |
coef_fix_special |
An optional character vector of predefined structures of |
coef_bound_lower |
An optional numeric vector of lower bounds on coefficients. |
coef_bound_upper |
An optional numeric vector of upper bounds on coefficients. |
coef_est |
A numeric vector of estimated coefficients. |
coef_vcov |
A numeric matrix of estimated covariances between coefficients. |
Value
A list
of S3 class gas_filter
with components:
data$y |
The time series. |
data$x |
The exogenous variables. |
data$x_ahead |
The out-of-sample exogenous variables. Only when |
model$distr |
The conditional distribution. |
model$param |
The parametrization of the conditional distribution. |
model$scaling |
The scaling function. |
model$regress |
The specification of the regression and dynamic equation. |
model$t |
The length of the time series. |
model$t_ahead |
The length of the out-of-sample time series. Only when |
model$n |
The dimension of the model. |
model$m |
The number of exogenous variables. |
model$p |
The score order. |
model$q |
The autoregressive order. |
model$par_static |
The static parameters. |
model$par_link |
The parameters with the logarithmic/logistic links. |
model$par_init |
The initial values of the time-varying parameters. |
model$coef_fix_value |
The values to which coefficients are fixed. |
model$coef_fix_other |
The multiples of the estimated coefficients, which are added to the fixed coefficients. |
model$coef_fix_special |
The predefined structures of |
model$coef_bound_lower |
The lower bounds on coefficients. |
model$coef_bound_upper |
The upper bounds on coefficients. |
model$coef_set |
The coefficient sets. |
filter$method |
The method used for parameter uncertainty. |
filter$par_tv_mean |
The mean of the time-varying parameters. |
filter$par_tv_sd |
The standard deviation of the time-varying parameters. |
filter$par_tv_quant |
The quantiles of the time-varying parameters. |
filter$score_tv_mean |
The mean of the scores. |
filter$score_tv_sd |
The standard deviation of the scores. |
filter$score_tv_quant |
The quantiles of the scores. |
filter$y_ahead_mean |
The mean of the forecasted time series. Only when |
filter$y_ahead_sd |
The standard deviation of the forecasted time series. Only when |
filter$y_ahead_quant |
The quantiles of the forecasted time series. Only when |
filter$par_tv_ahead_mean |
The mean of the forecasted time-varying parameters. Only when |
filter$par_tv_ahead_sd |
The standard deviation of the forecasted time-varying parameters. Only when |
filter$par_tv_ahead_quant |
The quantiles of the forecasted time-varying parameters. Only when |
filter$score_tv_ahead_mean |
The mean of the forecasted scores. Only when |
filter$score_tv_ahead_sd |
The standard deviation of the forecasted scores. Only when |
filter$score_tv_ahead_quant |
The quantiles of the forecasted scores. Only when |
Note
Supported generic functions for S3 class gas_filter
include summary()
ans plot()
.
References
Blasques, F., Koopman, S. J., Łasak, K., and Lucas, A. (2016). In-Sample Confidence Bands and Out-of-Sample Forecast Bands for Time-Varying Parameters in Observation-Driven Models. International Journal of Forecasting, 32(3), 875–887. doi: 10.1016/j.ijforecast.2015.11.018.
Creal, D., Koopman, S. J., and Lucas, A. (2013). Generalized Autoregressive Score Models with Applications. Journal of Applied Econometrics, 28(5), 777–795. doi: 10.1002/jae.1279.
Harvey, A. C. (2013). Dynamic Models for Volatility and Heavy Tails: With Applications to Financial and Economic Time Series. Cambridge University Press. doi: 10.1017/cbo9781139540933.
See Also
Examples
# Load the Daily Toilet Paper Sales dataset
data("toilet_paper_sales")
y <- toilet_paper_sales$quantity
x <- as.matrix(toilet_paper_sales[3:9])
# Estimate GAS model based on the negative binomial distribution
est_negbin <- gas(y = y, x = x, distr = "negbin", regress = "sep")
est_negbin
# Filter the time-varying parameters by the "simulated_coefs" method
flt_negbin <- gas_filter(est_negbin, rep_gen = 100)
flt_negbin
# Plot the time-varying parameters with confidence bands
plot(flt_negbin)