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)
Arguments
x: The first sample.
y: The second sample.
standardize: A logical flag for whether the statistics should be standardized by the empirical cumulative distribution functions of the two samples.
summary.func: 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.
Returns
meandiff: The mean difference between the QQ plots of the two samples.
mediandiff: The median difference between the QQ plots of the two samples.
maxdiff: The maximum difference between the QQ plots of the two samples.
summarydiff: If the user provides a summary.func, the user requested summary difference is returned.
summary.func: If the user provides a summary.func, the function is returned.
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
See Also
Also see ks.boot, balanceUV, Match, GenMatch, MatchBalance, GerberGreenImai, lalonde
Examples
## 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)