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")
devtools::install_github("beniaminogreen/cragg")
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
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.