*! version 1.1.0 1aug2022

Title

regsensitivity breakdown -- Regression sensitivity analysis, Breakdown analysis

Syntax

regsensitivity breakdown
depvar indepvar
controls
[if] [in]
[,analysis
options]

depvar is the dependent variable.

indepvar is the primary independent variable.

controls are additional covariates included in the regression. Can include
factor and time series variables.

analysis

dmp Diegert, Masten, and Poirier (2022); the default

oster Oster (2019) and Masten and Poirier (2022)

analysis specifies the sensitivity analysis to be performed.

options

Calibration
compare(varlist) Subset of controls used to calibrate
deviations from identifying assumptions, default all controls

nocompare(varlist) Include all controls in comparison controls except these

Sensitivity parameters (dmp)
cbar(param_spec) Maximum correlation
between the comparison controls and the omitted variable; default 1

Sensitivity parameters (oster)
r2long(param_spec) R-squared of a regression of depvar on indepvar, the comparison controls, and the omitted variable; default 1

Breakdown Hypothesis
beta(hypothesis) Calculate breakdown point relative to this hypothesis; default sign

Other
ngrid(#) Number of points in a grid when expanding values of a sensitivity parameter

plot Plot the results

Description

regsensitivity breakdown calculates one or more breakdown points for a given
hypothesis or hypotheses about the parameter beta. Beta is the coefficient
on indepvar in the infeasible long regression of depvar on indepvar, controls,
and the omitted variable. Although the omitted variable is not observed, using a set of assumptions indexed by
one or more sensitivity parameters, we can bound the impact of this omitted variable. This gives us a set of
feasible values for beta, called the identified set. A breakdown point is the smallest value of the sensitivity parameter such that the hypothesis about beta no longer holds for all values in the identified
set for beta.

When dmp is selected, the sensitivity analysis in Diegert, Masten, and Poirier
(2022) is implemented. In that analysis, there are three sensitivity parameters,
rxbar, rybar, and cbar. The breakdown point is calculated for
rxbar, holding the values of rybar and cbar
fixed. The value of cbar are given in cbar option, while rybar is
fixed at +inf.

When oster is selected, the analysis in Oster (2019) is implemented, along with the Masten and Poirier (2022) extensions. In
that analysis, there are two sensitivity parameters, delta, and R-squared(long).
The breakdown point is calculated for delta, holding
the values of R-squared(long) fixed. The value of R-squared is given in
r2long option.

The hypothesis to be tested is specified in the beta option.
When multiple hypotheses are specified in the beta option, the breakdown point
is calculated for each hypothesis. When multiple hypotheses are
specified, only one value cbar or R-squared(long) can be specified.

Results of the analysis are displayed in a table and saved in e(). To see
a plot of the results, use the plot option. For details on the analyses
see Remarks.

Options

Analysis

analysis is one of two sensitivity analyses proposed in the literature. Only one
statistic can be specified.

dmp selects the sensitivity analysis proposed in Diegert, Masten, and Poirier (2022)

oster selects the sensitivity analysis proposed in Oster (2019) and extended in Masten and Poirier (2022)

Calibration

The sensitivity parameters used in the analyses in
Diegert, Masten, and Poirier (2022), Oster (2019), and Masten and Poirier (2022) are defined relative to
a set of observed variables. These options are used to select the variables
included in the comparison controls.

compare(varlist) Selects the variables to include
in the comparison controls

nocompare(varlist) Selects the variables to exclude
from the comparison controls

Sensitivity Parameters

The sensitivity parameters used to relax the no omitted variable bias
assumption as proposed in the paper referenced for each analysis. The options
have been named to follow the notation in each corresponding paper. For more
details on the definition of each sensitivity parameter, see the referenced paper.

Diegert, Masten, and Poirier (2022)

cbar(param_spec) The maximum correlation between the comparison controls and an unobserved variable.

Oster (2019)

r2long(param_spec) The R-squared in the infeasible long regression of depvar
on indepvar, controls, and the unobserved variable.

maxovb(param_spec) Maximum absolute value of the omitted variable bias, defined in Masten and Poirier (2022).

The param_spec option has the following format:

numlist [,eq bound relative]

The numlist specifies the values of the
sensitivity parameters to use in the analysis.

When the eq option is selected ("equal"), the identified set is calculated
under the assumption that the sensitivity parameter is equal to the values provided.

When the bound option is selected, the identified set is calculated
under the assumption that the norm of the sensitivity parameter is bounded by the values provided.

When the relative option is selected, the input is interpreted relative to a reference
value. For r2long, the reference value is R-squared(medium). For maxovb, the
reference value is the absolute value of Beta(medium). For r2long, for example,
r2long(1.3, relative) is converted to 1.3*R-squared(medium).

The following table describes the defaults and availability of the options for
each analysis:

|equal bound relative

+

DMP (2022) |
|
rxbar |Not Implemented Default Not Implemented
|
cbar |Not Implemented Default Not Implemented
|

+

Oster (2019) |
|
delta |Default Implemented Not Implemented
|
r2long |Default Not Implemented Implemented
|
maxovb |Not Implemented Default Implemented

Breakdown Hypothesis

This option specifies the hypothesis or hypotheses for which the breakdown point(s)
will be calculated.

beta(hypothesis) The coefficient
on indepvar in a theoretical regression of depvar on
indepvar, controls, and an omitted variable.

The hypothesis option has the following format:

numlist [,lb ub eq]

or

sign

Hypothesese are of the format beta > b, beta < b, or beta != b.
The value(s) of b are given in the numlist.

The sign of the (in)equality of the hypothesis is specified by the optional
arguments. lb, and ub ("lower bound" and "upper bound") specify the
hypotheses beta > # and beta < # respectively. eq specifies the hypothesis,
beta != 0.

sign tests the hypothesis that sign(beta) = sign(beta_med),
where beta_med is the coefficient on indepvar of a regression of depvar
on indepvar, controls. For example if the beta_med > 0, then
sign specifies the hypothesis beta > 0.

Note that the eq option can only be used when the oster option has
been selected and the delta option has been specified with the option eq.
If eq has been specified for either delta or beta, the other
is set to eq automatically.

Additional options

ngrid(#) The number of points to include in a grid of points for the
sensitivity parameter or range of hypothesis. This is only used for the number
of points stored in e(breakfront).

plot Produce a plot of the results.

Remarks

See here for links to the articles
this package is based on, more detailed documentation on the implementation in
this package, and examples of its use.

Stored results

regsensitivity breakdown stores the following in e():

Scalars

e(N) Number of observations

e(hypoval) Value of the hypothesis

Macros

e(cmd) regsensitivity

e(subcmd) breakdown

e(cmdline) Command as typed

e(depvar) Dependent variable

e(indvar) Primary independent variable

e(controls) Additional controls

e(compare) Subset of controls used as a reference for the sensitivity analysis

e(analysis) Sensitivity analysis performed

e(hyposign) Sign of the hypothesis

Matrices

e(sumstats) Summary statistics displayed in the table header

e(breakfront) Breakdown points including all ngrid points

e(breakfront_table) Breakdown points exactly as shown in the output

Examples

. sysuse bfg2020, clear

Loads Bazzi, Fiszbein, and Gebresilasse (2020) dataset included with regsensitivity package.

. local y avgrep2000to2016

. local x tye_tfe890_500kNI_100_l6

. local w1 log_area_2010 lat lon temp_mean rain_mean elev_mean d_coa d_riv d_lak ave_gyi

. local w0 i.statea

Set the variables to use in the analysis

. regsensitivity breakdown `y' `x' `w1' `w0', compare(`w1') cbar(0(.1)1), plot

Calculates the breakdown frontier for the hypothesis that beta > 0 for a
range of values of cbar. Displays a table with the results and stores the
results in e(), and plots the results.

For more examples see this vignette.