This function calculates a set of summary statistics for the QQ
plot of two samples of data. The summaries are useful for determining
if the two samples are from the same distribution. If
standardize==TRUE
, the empirical CDF is used instead of the
empirical-QQ plot. The later retains the scale of the variable.
qqstats(x, y, standardize=TRUE, summary.func)
The mean difference between the QQ plots of the two samples.
The median difference between the QQ plots of the two samples.
The maximum difference between the QQ plots of the two samples.
If the user provides a summary.func
, the
user requested summary difference is returned.
If the user provides a summary.func
, the
function is returned.
The first sample.
The second sample.
A logical flag for whether the statistics should be standardized by the empirical cumulative distribution functions of the two samples.
A user provided function to summarize the
difference between the two distributions. The function should
expect a vector of the differences as an argument and return summary
statistic. For example, the quantile
function is a
legal function to pass in.
Jasjeet S. Sekhon, UC Berkeley, sekhon@berkeley.edu, https://www.jsekhon.com.
Sekhon, Jasjeet S. 2011. "Multivariate and Propensity Score Matching Software with Automated Balance Optimization.'' Journal of Statistical Software 42(7): 1-52. tools:::Rd_expr_doi("10.18637/jss.v042.i07")
Diamond, Alexis and Jasjeet S. Sekhon. Forthcoming. "Genetic Matching for Estimating Causal Effects: A General Multivariate Matching Method for Achieving Balance in Observational Studies.'' Review of Economics and Statistics. https://www.jsekhon.com
Also see ks.boot
,
balanceUV
, Match
,
GenMatch
,
MatchBalance
,
GerberGreenImai
, lalonde
#
# 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.
#
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 to 0).
#
rr <- Match(Y=Y,Tr=Tr,X=X,M=1);
summary(rr)
#
# Do we have balance on 1975 income after matching?
#
qqout <- qqstats(lalonde$re75[rr$index.treated], lalonde$re75[rr$index.control])
print(qqout)
Run the code above in your browser using DataLab