*! version 1 19jun2020
help ocmt

Title

ocmt -- Implements "A One Covariate at a Time, Multiple Testing Approach to Variable Selection in High-Dimensional Linear Regression Models"
based on Chudik, Kapetanios and Pesaran (2018)

Syntax

ocmt depvar [indepvars] [if] [in] [, options]

by is not allowed.

You must tsset your data before using ocmt; see [TS] tsset.

indepvars may contain time-series operators; see tsvarlist.

Sample may not contain gaps.

Description

ocmt Implements "A One Covariate at a Time, Multiple Testing Approach to Variable Selection in High-Dimensional Linear Regression Models"
based on Chudik, Kapetanios and Pesaran (2018).

Options

zvar(varlist) list of known preselected variables. No need to include the intercept term.

wvar(string) variable name to perform weighted least squares using analytic weights. Both dependent and independent variables (including the intercept) are weighted by the square root of wvar(string); see regress

signif(integer) specifies the statistical significance level.
For example, 1% must be entered as 1. By default a level of 5% is used.

delta1(positive constant) specifies the value of delta_1. By default delta_1 is set equal to 1, as in Chudik et al. (2018)

delta2(positive constant) specifies the value of delta_2 which must be greater than delta_1. By default, delta_2 is set equal to 2. Chudik et al. (2018) also use delta_2 equal to 1.5.

Examples

We illustrate the use of ocmt with the following example using the following data genrating process:

. clear all

. set obs 50

. set seed 123

. gen t = _n

. gen x1 = rnormal()

. gen x2 = rnormal()

. gen x3 = rnormal()

. gen x4 = rnormal()

. gen x5 = rnormal()

. gen x6 = rnormal()

. gen x7 = rnormal()

. gen x8 = rnormal()

. gen x9 = rnormal()

. gen x10 = rnormal()

. gen z1 = rnormal()

. gen w1 = runiform()

. gen y = 2 + 0.8*x1 + x2 - 3*x5 + x8 - 2*z1 + rnormal()

. tsset t

In this example y is generated by x1, x2, x5, x8 and z1. We could start by looking whether y
by generated by all variables x, z1 and w1. Using a 10% significance level and setting delta1=1 and delta2=2 we would
need to type:

. ocmt y x* w1 z1, sig(10) delta1(1) delta2(2)

Assuming z1 is a preselected regressor and using a 5% significance level:

. ocmt y x* w1, z(z1) sig(5) delta1(1) delta2(2)

Since the chosen significance level is 5%, it can be omitted from options, that is:

. ocmt y x* w1, z(z1) delta1(1) delta2(2)

Including lags of the x variables:

. ocmt y x* l.x* w1, z(z1) delta1(1) delta2(2)

To retrieve the list of selected regressors (including preselected variables) after completion simply type:

. display r(regressors)

Stored results

In addition to the results stored by the command regress, ocmt also stores:

Scalars

r(stages) number of stages at completion

r(threshold1) critical value function in the first stage

r(threshold2) critical value function in subsequent stages

Macros

r(regressors) list of regressors selected (including preselected variables)

References

Chudik A., G. Kapetanios and M. H. Pesaran. 2018. A One Covariate at a Time, Multiple Testing Approach to Variable Selection in High-Dimensional Linear Regression Models. Econometrica 86: 1479-1512.

Authors

Héctor M. Núñez

Centro de Investigación y Docencia Económicas (CIDE)

Aguscalientes, México

hector.nunez@cide.edu

Jesús Otero

Universidad del Rosario

Bogotá, Colombia

jesus.otero@urosario.edu.co