Learn R Programming

arm (version 1.1-14)

balance: Functions to compute the balance statistics

Description

This function computes the balance statistics before and after matching.

Usage

balance(rawdata, matched, pscore.fit, factor=TRUE)

## S3 method for class 'balance':
print(x, \dots, digits = getOption("digits"))

## S3 method for class 'balance':
plot(x, longcovnames = NULL, 
    main = "Standardized Difference in Means",
    v.axis=TRUE, cex.main = 1, 
    cex.vars = 0.8, cex.pts = 0.8, 
    mar=c(0,3,5.1,2), plot=TRUE, ...)

Arguments

rawdata
data before using matching function, see the example below.
matched
matched data using matching function, see the example below.
pscore.fit
glm.fit object to get propensity scores.
factor
default is TRUE which will display the factorized categorical variables. In a situation where no equal levels of factorized categorical variables is observed, use factor=FALSE to proceed.
x
an object return by the balance function.
digits
minimal number of significant digits
longcovnames
long covariate names. If not provided, plot will use covariate variable name by default
main
The main title (on top) using font and size (character expansion) par("font.main") and color par("col.main"); default title is Standardized Difference in Means.
v.axis
default is TRUE, which shows the top axis--axis(3).
cex.main
font size of main title
cex.vars
font size of variabel names
cex.pts
point size of the estimates
mar
A numerical vector of the form c(bottom, left, top, right) which gives the number of lines of margin to be specified on the four sides of the plot. The default is c(0,3,5.1,2).
plot
default is TRUE, which will plot the plot.
...
other plot options may be passed to this function

Details

This function plots the balance statistics before and after matching. The open circle dots represent the unmatched balance statistics. The solid dots represent the matched balance statistics. The closer the value of the estimates to the zero, the better the treated and control groups are balanced after matching.

References

Andrew Gelman and Jennifer Hill, Data Analysis Using Regression and Multilevel/Hierarchical Models, Cambridge University Press, 2006. (Chater 10)

See Also

matching, par

Examples

Run this code
# matching first
old.par <- par(no.readonly = TRUE)
data(lalonde)
attach(lalonde)
fit <- glm(treat ~ re74 + re75 + age + factor(educ) + 
            black + hisp + married + nodegr + u74 + u75, 
            family=binomial(link="logit"))
pscores <- predict(fit, type="link")
matches <- matching(z=lalonde$treat, score=pscores)
matched <- lalonde[matches$matched,]

# balance check
b.stats <- balance(lalonde, matched, fit)
print(b.stats)
plot(b.stats)
par(old.par)

Run the code above in your browser using DataLab