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