rrinf: Generic residual randomization confidence intervals

Description Usage Arguments Details Value Note See Also Examples

View source: R/functions.R

Description

This function is a wrapper over rrtest and gives confidence intervals for all parameters.

Usage

1
2
3
4
5
6
7
8
rrinf(
  y,
  X,
  g_invar,
  cover = 0.95,
  num_R = 999,
  control = list(num_se = 6, num_breaks = 60)
)

Arguments

y

Vector of outcomes (length n)

X

Covariate matrix (n x p). First column should be ones to include intercept.

g_invar

Function that transforms residuals. Accepts n-vector and returns n-vector.

cover

Number from [0, 1] that denotes the confidence interval coverage (e.g., 0.95 denotes 95%)

num_R

Number of test statistic values to calculate in the randomization test (similar to no. of bootstrap samples).

control

A List that constrols the scope of the test inversion.

Details

This function has similar funtionality as standard confint. It generates confidence intervals by testing plausible values for each parameter. The plausible values are generated as follows. For some parameter beta_i we test successively

H0: beta_i = hat_beta_i - num_se * se_i

...up to...

H0: beta_i = hat_beta_i + num_se * se_i

broken in num_breaks intervals. Here, hat_beta_i is the OLS estimate of beta_i and se_i is the standard error. We then report the minimum and maximum values in this search space which we cannot reject at level alpha. This forms the desired confidence interval.

Value

Matrix that includes the confidence interval endpoints, and the interval midpoint estimate.

Note

If the confidence interval appears to be a point or is empty, then this means that the nulls we consider are implausible. We can try to improve the search through control.tinv. For example, we can both increase num_se to increase the width of search, and increase num_breaks to make the search space finer.

See Also

Life after bootstrap: residual randomization inference in regression models (Toulis, 2019)

https://www.ptoulis.com/residual-randomization

Examples

1
2
3
4
5
6
7
set.seed(123)
X = cbind(rep(1, 100), runif(100))
beta = c(-1, 1)
y = X %*% beta + rnorm(100)
g_invar = function(e) sample(e)  # Assume exchangeable errors.
M = rrinf(y, X, g_invar, control=list(num_se=4, num_breaks=20))
M  # Intervals cover true values

RRI documentation built on Dec. 19, 2019, 9:06 a.m.

Related to rrinf in RRI...