endo.test | R Documentation |
Conduct the endogeneity test with high dimensional and possibly invalid instrumental variables.
endo.test( Y, D, Z, X, intercept = TRUE, invalid = FALSE, method = c("Fast.DeLasso", "DeLasso", "OLS"), voting = c("MP", "MaxClique"), alpha = 0.05, tuning.1st = NULL, tuning.2nd = NULL )
Y |
The outcome observation, a vector of length n. |
D |
The treatment observation, a vector of length n. |
Z |
The instrument observation of dimension n \times p_z. |
X |
The covariates observation of dimension n \times p_x. |
intercept |
Whether the intercept is included. (default = |
invalid |
If |
method |
The method used to estimate the reduced form parameters. |
voting |
The voting option used to estimate valid IVs. |
alpha |
The significance level for the confidence interval. (default = |
tuning.1st |
The tuning parameter used in the 1st stage to select relevant instruments. If |
tuning.2nd |
The tuning parameter used in the 2nd stage to select valid instruments. If |
When voting = MaxClique
and there are multiple maximum cliques, the null hypothesis is rejected if one of maximum clique rejects the null.
As for tuning parameter in the 1st stage and 2nd stage, if do not specify, for method "OLS" we adopt √{\log n} for both tuning parameters, and for other methods
we adopt \max{(√{2.01 \log p_z}, √{\log n})} for both tuning parameters.
endo.test
returns an object of class "endotest", which is a list containing the following components:
|
The test statistic. |
|
The estimated covaraince of the regression errors. |
|
The set of selected relevant IVs. |
|
The set of selected vaild IVs. |
|
The p-value of the endogeneity test. |
|
The indicator that H_0:Σ_{12}=0 is rejected. |
Guo, Z., Kang, H., Tony Cai, T. and Small, D.S. (2018), Testing endogeneity with high dimensional covariates, Journal of Econometrics, Elsevier, vol. 207(1), pages 175-187.
n = 500; L = 11; s = 3; k = 10; px = 10; beta = 1; gamma = c(rep(1,k),rep(0,L-k)) phi<-(1/px)*seq(1,px)+0.5; psi<-(1/px)*seq(1,px)+1 epsilonSigma = matrix(c(1,0.8,0.8,1),2,2) Z = matrix(rnorm(n*L),n,L) X = matrix(rnorm(n*px),n,px) epsilon = MASS::mvrnorm(n,rep(0,2),epsilonSigma) D = 0.5 + Z %*% gamma + X %*% psi + epsilon[,1] Y = -0.5 + Z %*% c(rep(1,s),rep(0,L-s)) + D * beta + X %*% phi + epsilon[,2] endo.test.model <- endo.test(Y,D,Z,X,invalid = TRUE) summary(endo.test.model)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.