Skip to contents

The k-class estimator whose k is the Anderson-Rubin variance ratio: kappa is the smallest eigenvalue of (Ybar' M_[W,Z] Ybar)^-1 (Ybar' M_W Ybar), with Ybar holding y and the ENDOGENOUS regressors only.

Usage

morie_caus_iv_liml(y, X, Z, fuller = NULL, endog = NULL)

Arguments

y

outcome.

X

regressors.

Z

full instrument set.

fuller

optional Fuller a, subtracting a/(n - m) from kappa to restore finite moments.

endog

optional column indices of X that are endogenous; detected by matching against Z when NULL.

Value

list: beta, se, kappa, kappa_minus_one, just_identified, equals_2sls, endogenous_columns, fuller_a, n_overid_restrictions, n, k, m, method.

Details

Two facts make this checkable. kappa >= 1 always, and when the model is EXACTLY identified kappa = 1 and LIML coincides with 2SLS to machine precision. An implementation that does not reproduce 2SLS in the just-identified case is wrong, and nothing else about it needs checking first.

Ybar must exclude the exogenous columns. An intercept there is annihilated exactly by M_W, which makes the matrix singular, drives kappa to zero, and silently turns the k-class estimator back into least squares – a finite, plausible, entirely wrong number.

Where LIML and 2SLS differ is with many or weak instruments: 2SLS is biased toward least squares and the bias grows with the instrument count, while LIML is approximately median-unbiased there at the cost of heavier tails.

References

Anderson and Rubin (1949), Annals of Mathematical Statistics 20:46-63; Fuller (1977), Econometrica 45:939-953.

Examples

set.seed(1)
Z <- matrix(stats::rnorm(100), 100)
D <- Z %*% 1.2 + stats::rnorm(100)
morie_caus_iv_liml(2 * D + stats::rnorm(100), D, Z)$kappa
#> [1] 1