specs_opt {specs}R Documentation

SPECS with data transformation and penalty optimization

Description

This function estimates SPECS and selects the optimal penalty parameter based on a selection rule. All arguments correspond to those of the function specs(...), but it contains the additional arguments rule and CV_cutoff. Selection of the penalty parameter can be carried out by BIC or AIC or by time series cross-validation (TSCV). The degrees of freedom for the information criteria (BIC or AIC) are approximated by the number of non-zero coefficients in the estimated model. TSCV cuts the sample in two, based on the argument CV_cutoff which determines the proportion of the training sample. SPECS is estimated on the first part and the estimated model is used to predict the values in the second part. The selection is then based on the lowest Mean-Squared Forecast Error (MSFE) obtained over the test sample.

Usage

specs_opt(
  y,
  x,
  p = 1,
  rule = c("BIC", "AIC", "TSCV"),
  CV_cutoff = 2/3,
  deterministics = c("constant", "trend", "both", "none"),
  ADL = FALSE,
  weights = c("ridge", "ols", "none"),
  k_delta = 1,
  k_pi = 1,
  lambda_g = NULL,
  lambda_i = NULL,
  thresh = 1e-04,
  max_iter_delta = 1e+05,
  max_iter_pi = 1e+05,
  max_iter_gamma = 1e+05
)

Arguments

y

A vector containing the dependent variable in levels.

x

A matrix containing the independent variables in levels.

p

Integer indicating the desired number of lagged differences to include. Default is 1.

rule

A charcater object indicating which selection rule the optimal choice of the penalty parameters is based on. Default is "BIC".

CV_cutoff

A numeric value between 0 and 1 that decides the proportion of the training sample as a fraction of the complete sample. Applies only when rule="TSCV". Default is 2/3.

deterministics

A character object indicating which deterministic variables should be added ("none","constant","trend","both"). Default is "constant".

ADL

Logical object indicating whether an ADL model without error-correction term should be estimated. Default is FALSE.

weights

Choice of penalty weights. The weights can be automatically generated by ridge regression (default) or ols. Alternatively, a conformable vector of non-negative weights can be supplied.

k_delta

The power to which the weights for delta should be raised, if weights are set to "ridge" or "ols".

k_pi

The power to which the weights for pi should be raised, if weights are set to "ridge" or "ols".

lambda_g

An optional user-specified grid for the group penalty may be supplied. If left empty, a 10-dimensional grid containing 0 as the minimum value is generated.

lambda_i

An optional user-specified grid for the individual penalty may be supplied. If left empty, a 10-dimensional grid containing 0 as the minimum value is generated.

thresh

The treshold for convergence.

max_iter_delta

Maximum number of updates for delta. Default is 10^5.

max_iter_pi

Maximum number of updates for pi. Default is 10^5.

max_iter_gamma

Maximum number of updates for gamma. Default is 10^5.

Value

D

A matrix containing the deterministic variables included in the model.

gammas

A matrix containing the estimated coefficients of the stochastic variables in the conditional error-correction model.

gamma_opt

A vector containing the estimated coefficients corresponding to the optimal model.

lambda_g

The grid of group penalties.

lambda_i

The grid of individual penalties.

Mv

A matrix containing the independent variables, after regressing out the deterministic components.

My_d

A vector containing the dependent variable, after regressing out the deterministic components.

theta

The estimated coefficients for the constant and trend. If a deterministic component is excluded, its coefficient is set to zero.

theta_opt

The estimated coefficients for the constant and trend in the optimal model.

v

A matrix containing the independent variables (excluding deterministic components).

weights

The vector of penalty weights.

y_d

A vector containing the dependent variable, i.e. the differences of y.

Examples


#Estimate an automatically optimized model for unemployment and ten google trends

#Organize data
y <- Unempl_GT[,1]
index_GT <- sample(c(2:ncol(Unempl_GT)),10)
x <- Unempl_GT[,index_GT]

#Estimate a CECM with 1 lagged difference and penalty chosen by the minimum BIC
my_specs <- specs_opt(y,x,p=1,rule="BIC")
coefs <- my_specs$gamma_opt

[Package specs version 1.0.1 Index]