An R package to implement the Cragg-Donald test for weak instruments.
The Cragg-Donald (1993) test is a common way to test for weak instruments in an IV regression but has never been implemented in R. The cragg package provides an implementation of the Cragg-Donald test in R and provides access to the critical values for the Cragg-Donald statistic developed in Stock and Yogo (Stock 2005). These tests quantify the degree to which weak instruments can undermine regression estimates for models with multiple endogenous variables / treatments.
Calculates Cragg-Donald statistics for weak instruments.
Recommends critical values for the Cragg-Donald Statistic based on the largest allowable bias relative to regular OLS or the maximum allowable size distortion of the Wald test statistic.
#install.packages("devtools")
::install_github("beniaminogreen/cragg") devtools
The cragg package has two main functions cragg_donald()
,
and stock_yogo_test()
.
cragg_donald()
implements the Cragg-Donald test for weak
instruments in R. It can be thought of as the matrix-equivalent of the
first-stage F-test for weak instruments, and is used to evaluate models
with multiple endogenous variables. This function has been tested
against the results from STATA’s ivreg2 package (Baum, Mark, Stillman
2002) to ensure accuracy.
The syntax is show below:
library(cragg)
#Cragg-Donald Test
cragg_donald(
~X1+X2+X3, #Controls
~D1 + D2, #Treatments
~Z1 + Z2 + Z3, #Instruments
data =example_data
)#> Cragg-Donald test for weak instruments:
#>
#> Data: example_data
#> Controls: ~X1 + X2 + X3
#> Treatments: ~D1 + D2
#> Instruments: ~Z1 + Z2 + Z3
#>
#> Cragg-Donald Statistic: 186.1346
#> Df: 993
stock_yogo_test()
implements the Stock and Yogo test for
weak instruments. The test developed by Stock and Yogo (2005) is a
decision rule meant to ensure that weak instruments do not pose a
problem. Stock and Yogo suggest two methods to select the critical
values: one based on maximum allowable bias relative to normal OLS and
another based on the maximum size of a Wald test on all of the
instruments. Both of these decision rules are implemented.
stock_yogo_test(
~X1+X2+X3, #Controls
~D1, #Treatments
~Z1 + Z2, #Instruments
B=.1, #Maximum Allowable Size Distortion
size_bias="size", #Calculate critical value for size distortions
data =example_data
)#> Results of Stock and Yogo test for weak instruments:
#>
#> Null Hypothesis: Instruments are weak
#> Alternative Hypothesis: Instruments are not weak
#>
#> Data: example_data
#> Controls: ~X1 + X2 + X3
#> Treatments: ~D1
#> Instruments: ~Z1 + Z2
#>
#> Alpha: 0.05
#> Acceptable level of bias: 10% Wald test distortion.
#> Critical Value: 19.93
#>
#> Cragg-Donald Statistic: 360.5978
#> Df: 994