Title: | Desparsified Lasso Inference for Time Series |
---|---|
Description: | Calculates the desparsified lasso as originally introduced in van de Geer et al. (2014) <doi:10.1214/14-AOS1221>, and provides inference suitable for high-dimensional time series, based on the long run covariance estimator in Adamek et al. (2020) <arXiv:2007.10952>. Also estimates high-dimensional local projections by the desparsified lasso, as described in Adamek et al. (2022) <arXiv:2209.03218>. |
Authors: | Robert Adamek [cre, aut], Stephan Smeekes [aut], Ines Wilms [aut] |
Maintainer: | Robert Adamek <[email protected]> |
License: | GPL (>=2) |
Version: | 0.3.0 |
Built: | 2024-10-25 05:32:43 UTC |
Source: | https://github.com/robertadamek/desla |
Creates state dummies for use in HDLP
.
create_state_dummies(x)
create_state_dummies(x)
x |
Contains the variables that define the states. Each column should either represent a categorical variable indicating the state of each observation, or each column should be a binary indicator for one particular state. |
The function first checks if x
is already in the correct output format by evaluating if each row sums up to one. If this is not the case, each column is treated as a categorical variable for which its unique entries define the states it can take. If x
contains more than one column, interactions between the variables are created. Example, inputting two variables that can take two states each, results in a total of four possible states, and hence the output matrix contains four columns.
A matrix where each column is a binary indicator for one state.
Calculates the desparsified lasso as originally introduced in van de Geer et al. (2014), and provides inference suitable for high-dimensional time series, based on the long run covariance estimator in Adamek et al. (2021).
desla( X, y, H, alphas = 0.05, penalize_H = TRUE, R = NULL, q = NULL, demean = TRUE, scale = TRUE, progress_bar = TRUE, parallel = TRUE, threads = NULL, PI_constant = NULL, LRV_bandwidth = NULL )
desla( X, y, H, alphas = 0.05, penalize_H = TRUE, R = NULL, q = NULL, demean = TRUE, scale = TRUE, progress_bar = TRUE, parallel = TRUE, threads = NULL, PI_constant = NULL, LRV_bandwidth = NULL )
X |
|
y |
|
H |
indexes of relevant regressors |
alphas |
(optional) vector of significance levels (0.05 by default) |
penalize_H |
(optional) boolean, true if you want the variables in H to be penalized ( |
R |
(optional) matrix with number of columns the dimension of |
q |
(optional) vector of size same as the rows of |
demean |
(optional) boolean, true if |
scale |
(optional) boolean, true if |
progress_bar |
(optional) boolean, displays a progress bar while running if true, tracking the progress of estimating the nodewise regressions (TRUE by default) |
parallel |
boolean, whether parallel computing should be used (TRUE by default) |
threads |
(optional) integer, how many threads should be used for parallel computing if |
PI_constant |
(optional) constant, used in the plug-in selection method (0.8 by default). For details see Adamek et al. (2021) |
LRV_bandwidth |
(optional) vector of parameters controlling the bandwidth |
Returns a list with the following elements:
bhat |
desparsified lasso estimates for the parameters indexed by |
standard_errors |
standard errors of the estimates for variables indexed by |
intervals |
matrix containing the confidence intervals for parameters indexed in |
betahat |
lasso estimates from the initial regression of |
DSL_matrices |
list containing the matrices |
residuals |
list containing the vector of residuals from the initial lasso regression ( |
lambdas |
values of lambda selected in the initial lasso regression ( |
selected_vars |
vector of indexes of the nonzero parameters in the initial lasso ( |
wald_test |
list containing elements for inference on |
Adamek R, Smeekes S, Wilms I (2021).
“LASSO inference for high-dimensional time series.”
arXiv preprint arXiv:2007.10952.
Andrews DW (1991).
“Heteroskedasticity and autocorrelation consistent covariance matrix estimation.”
Econometrica, 59(3), 817–858.
van de Geer S, Buhlmann P, Ritov Y, Dezeure R (2014).
“On asymptotically optimal confidence regions and tests for high-dimensional models.”
Annals of Statistics, 42(3), 1166–1202.
X<-matrix(rnorm(50*50), nrow=50) y<-X[,1:4] %*% c(1, 2, 3, 4) + rnorm(50) H<-c(1, 2, 3, 4) d<-desla(X, y, H)
X<-matrix(rnorm(50*50), nrow=50) y<-X[,1:4] %*% c(1, 2, 3, 4) + rnorm(50) H<-c(1, 2, 3, 4) d<-desla(X, y, H)
Calculates impulse responses with local projections, using the desla function to estimate the high-dimensional linear models, and provide asymptotic inference. The naming conventions in this function follow the notation in Plagborg-Moller and Wolf (2021), in particular Equation 1 therein. This function also allows for estimating state-dependent responses, as in Ramey and Zubairy (2018).
HDLP( x, y, r = NULL, q = NULL, state_variables = NULL, y_predetermined = FALSE, cumulate_y = FALSE, hmax = 24, lags = 12, alphas = 0.05, penalize_x = FALSE, PI_constant = NULL, progress_bar = TRUE, OLS = FALSE, parallel = TRUE, threads = NULL )
HDLP( x, y, r = NULL, q = NULL, state_variables = NULL, y_predetermined = FALSE, cumulate_y = FALSE, hmax = 24, lags = 12, alphas = 0.05, penalize_x = FALSE, PI_constant = NULL, progress_bar = TRUE, OLS = FALSE, parallel = TRUE, threads = NULL )
x |
|
y |
|
r |
(optional) vector or matrix with |
q |
(optional) vector or matrix with |
state_variables |
(optional) matrix or data frame with |
y_predetermined |
(optional) boolean, true if the response variable |
cumulate_y |
(optional) boolean, true if the impulse response of |
hmax |
(optional) integer, the maximum horizon up to which the impulse responses are computed. Should not exceed the |
lags |
(optional) integer, the number of lags to be included in the local projection model. Should not exceed |
alphas |
(optional) vector of significance levels (0.05 by default) |
penalize_x |
(optional) boolean, true if the parameter of interest should be penalized ( |
PI_constant |
(optional) constant, used in the plug-in selection method (0.8 by default). For details see Adamek et al. (2021) |
progress_bar |
(optional) boolean, true if a progress bar should be displayed during execution (true by default) |
OLS |
(optional) boolean, whether the local projections should be computed by OLS instead of the desparsified lasso. This should only be done for low-dimensional regressions (FALSE by default) |
parallel |
boolean, whether parallel computing should be used. Default is TRUE. |
threads |
(optional) integer, how many threads should be used for parallel computing if |
The input to state_variables
is transformed to a suitable matrix where each column represents one state using the function create_state_dummies
. See that function for further details.
Returns a list with the following elements:
intervals |
list of matrices containing the point estimates and confidence intervals for the impulse response functions in each state, for significance levels given in |
Thetahat |
matrix (row vector) calculated from the nodewise regression at horizon 0, which is re-used at later horizons |
betahats |
list of matrices (column vectors), giving the initial lasso estimate at each horizon |
Adamek R, Smeekes S, Wilms I (2021).
“LASSO inference for high-dimensional time series.”
arXiv preprint arXiv:2007.10952.
Plagborg-Moller M, Wolf CK (2021).
“Local projections and VARs estimate the same impulse responses.”
Econometrica, 89(2), 955–980.
Ramey VA, Zubairy S (2018).
“Government spending multipliers in good times and in bad: evidence from US historical data.”
Journal of Political Economy, 126(2), 850–901.
X<-matrix(rnorm(50*50), nrow=50) y<-X[,1:4] %*% c(1, 2, 3, 4) + rnorm(50) s<-matrix(c(rep(1,25),rep(0,50),rep(1,25)), ncol=2, dimnames = list(NULL, c("A","B"))) h<-HDLP(x=X[,4], y=y, q=X[,-4], state_variables=s, hmax=5, lags=1) plot(h)
X<-matrix(rnorm(50*50), nrow=50) y<-X[,1:4] %*% c(1, 2, 3, 4) + rnorm(50) s<-matrix(c(rep(1,25),rep(0,50),rep(1,25)), ncol=2, dimnames = list(NULL, c("A","B"))) h<-HDLP(x=X[,4], y=y, q=X[,-4], state_variables=s, hmax=5, lags=1) plot(h)
Plot Impulse Responses obtained from HDLP.
## S3 method for class 'hdlp' plot( x, y = NULL, response = NULL, impulse = NULL, states = NULL, units = NULL, title = NULL, ... )
## S3 method for class 'hdlp' plot( x, y = NULL, response = NULL, impulse = NULL, states = NULL, units = NULL, title = NULL, ... )
x |
Output of the |
y |
Has no function, included for compatibility with |
response |
Name of the response variable ( |
impulse |
Name of the shock variable ( |
states |
Optional names of the states (when applicable). If not provided, names
will be determined from |
units |
Units of the response variable (y-axis label). |
title |
String containing title of the plot; can be used to overwrite default
generated based on the names of the |
... |
Other arguments forwarded to plot function (currently inactive). |
A ggplot
object.