Nothing
test_that("Tests replication of Dehejia and Wahba psid3 model", {
#
# Replication of Dehejia and Wahba psid3 model
#
# Dehejia, Rajeev and Sadek Wahba. 1999.``Causal Effects in Non-Experimental Studies: Re-Evaluating the
# Evaluation of Training Programs.''Journal of the American Statistical Association 94 (448): 1053-1062.
#
suppressMessages(library(Matching))
suppressWarnings(RNGversion("3.5.3"))
# Replication of Dehejia and Wahba psid3 model.
# Dehejia, Rajeev and Sadek Wahba. 1999.``Causal Effects in
# Non-Experimental Studies: Re-Evaluating the # Evaluation of Training
# Programs.''Journal of the American Statistical Association 94 (448):
# 1053-1062.
set.seed(10391)
data(lalonde)
#
# Estimate the propensity model
#
glm1 <- glm(treat~age + I(age^2) + educ + I(educ^2) + black +
hisp + married + nodegr + re74 + I(re74^2) + re75 + I(re75^2) +
u74 + u75, family=binomial, data=lalonde)
#
#save data objects
#
X <- glm1$fitted
Y <- lalonde$re78
Tr <- lalonde$treat
#
# one-to-one matching with replacement (the "M=1" option).
# Estimating the treatment effect on the treated (the "estimand" option which defaults ATT).
#
rr <- Match(Y=Y,Tr=Tr,X=X,M=1);
summary(rr)
#
# Let's check for balance
#
mb <- MatchBalance(treat~age + I(age^2) + educ + I(educ^2) + black +
hisp + married + nodegr + re74 + I(re74^2) + re75 + I(re75^2) +
u74 + u75, data=lalonde, match.out=rr, nboots=0)
before_sdiff <- unlist(lapply(mb$BeforeMatching, function(x){return(x$sdiff)}))
after_sdfiff <- unlist(lapply(mb$AfterMatching, function(x){return(x$sdiff)}))
results <- data.frame(before = before_sdiff,
after = after_sdfiff)
results_saved <- data.frame(before = c(10.655038555334192, 9.293693091477756, 12.806026640590549,
17.012014396718083, 4.476700682905446, -20.340738543987911,
8.999512178599344, -27.750943560007322, -0.234370781139797,
-7.472147883152990, 8.236275506237831, 2.602407688369587,
-9.189507193658958, -17.225298606861006),
after = c(11.31676699418897, 10.27537464950881, -6.67488011805762,
-5.46597309818458, -4.44818666581684, 4.55913105296281,
5.73498325106821, 3.55722859109378, 9.64392627946963,
13.16663153873934, 7.28274018652368, 6.70756470721747,
5.16080465438050, -4.21815256629930))
for ( i in 1:nrow(results)) {
# Check the sdiff before matching
expect_equal(results[i,1], results_saved[i,1])
# Check the sdiff after matching
expect_equal(results[i,2], results_saved[i,2])
}
})
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.