1# Replication of Guido Imbens lalonde_exper_04feb2.m file 2# See http://elsa.berkeley.edu/~imbens/estimators.shtml 3# with balance checks 4 5suppressMessages(library(Matching)) 6suppressWarnings(RNGversion("3.5.3")) 7 8data(lalonde) 9 10X <- lalonde$age 11Z <- X; 12V <- lalonde$educ; 13Y <- lalonde$re78/1000; 14T <- lalonde$treat; 15w.educ=exp((lalonde$educ-10.1)/2); 16 17res <- matrix(nrow=1,ncol=3) 18 19rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0, 20 sample=TRUE); 21summary(rr) 22 23res[1,] <- cbind(1,rr$est,rr$se) 24 25 26X <- cbind(lalonde$age, lalonde$educ, lalonde$re74, lalonde$re75) 27rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0, 28 sample=TRUE); 29summary(rr) 30 31res <- rbind(res,cbind(2,rr$est,rr$se)) 32 33rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=3,BiasAdj=FALSE,Weight=1,Var.calc=0, 34 sample=TRUE); 35summary(rr) 36res <- rbind(res,cbind(4,rr$est,rr$se)) 37 38rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATT",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0, 39 sample=TRUE); 40summary(rr) 41res <- rbind(res,cbind(5,rr$est,rr$se)) 42 43rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATC",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0, 44 sample=TRUE); 45summary(rr) 46res <- rbind(res,cbind(6,rr$est,rr$se)) 47 48rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=2,Var.calc=0, 49 sample=TRUE); 50summary(rr) 51res <- rbind(res,cbind(7,rr$est,rr$se)) 52 53rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=3,Var.calc=0, 54 Weight.matrix=diag(4), sample=TRUE); 55summary(rr) 56res <- rbind(res,cbind(8,rr$est,rr$se)) 57 58 59rr <- Match(Y=Y,Tr=T,X=X,Z=X,V=V,estimand="ATE",M=1,BiasAdj=TRUE,Weight=1,Var.calc=0, 60 sample=TRUE); 61summary(rr) 62res <- rbind(res,cbind(9,rr$est,rr$se)) 63 64Z <- cbind(lalonde$married, lalonde$age) 65rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=TRUE,Weight=1,Var.calc=0,sample=TRUE); 66summary(rr) 67res <- rbind(res,cbind(10,rr$est,rr$se)) 68 69V <- lalonde$age 70rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0,exact=TRUE, 71 sample=TRUE); 72summary(rr) 73res <- rbind(res,cbind(11,rr$est,rr$se)) 74 75V <- cbind(lalonde$married, lalonde$u74) 76rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0,exact=TRUE, 77 sample=TRUE); 78summary(rr) 79res <- rbind(res,cbind(12,rr$est,rr$se)) 80 81rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0,sample=FALSE); 82summary(rr) 83res <- rbind(res,cbind(13,rr$est,rr$se)) 84 85rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=3,sample=TRUE); 86summary(rr) 87res <- rbind(res,cbind(14,rr$est,rr$se)) 88 89rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V,estimand="ATE",M=1,BiasAdj=FALSE,Weight=1,Var.calc=0, 90 weights=w.educ,sample=TRUE); 91summary(rr) 92res <- rbind(res,cbind(15,rr$est,rr$se)) 93 94 95V <- lalonde$age 96Z <- cbind(lalonde$married, lalonde$age) 97X <- cbind(lalonde$age, lalonde$educ, lalonde$re74, lalonde$re75) 98weight <- w.educ 99Weight.matrix <- diag(4) 100 101rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V, 102 sample=FALSE, M=3, estimand="ATT", BiasAdj=TRUE, Weight=3, exact=TRUE,Var.calc=3, 103 weights=w.educ, Weight.matrix=Weight.matrix); 104summary(rr) 105res <- rbind(res,cbind(75,rr$est,rr$se)) 106 107 108V <- lalonde$married; 109Z <- cbind(lalonde$age, lalonde$re75); 110X <- cbind(lalonde$age, lalonde$educ, lalonde$re74); 111 112rr <- Match(Y=Y,Tr=T,X=X,Z=Z,V=V, 113 sample=TRUE, M=3, estimand="ATE", BiasAdj=TRUE, Weight=2, exact=TRUE,Var.calc=0, 114 weights=w.educ); 115summary(rr) 116res <- rbind(res,cbind(76,rr$est,rr$se)) 117 118cat("\nResults:\n") 119print(res) 120 121