summ()
prints output for a regression model in a fashion similar to
summary()
, but formatted differently with more options.
# S3 method for glm
summ(
model,
scale = FALSE,
confint = getOption("summ-confint", FALSE),
ci.width = getOption("summ-ci.width", 0.95),
robust = getOption("summ-robust", FALSE),
cluster = NULL,
vifs = getOption("summ-vifs", FALSE),
digits = getOption("jtools-digits", default = 2),
exp = FALSE,
pvals = getOption("summ-pvals", TRUE),
n.sd = 1,
center = FALSE,
transform.response = FALSE,
scale.only = FALSE,
data = NULL,
model.info = getOption("summ-model.info", TRUE),
model.fit = getOption("summ-model.fit", TRUE),
model.coefs = getOption("summ-model.coefs", TRUE),
which.cols = NULL,
vcov = NULL,
...
)
If saved, users can access most of the items that are returned in the output (and without rounding).
The outputted table of variables and coefficients
The model for which statistics are displayed. This would be
most useful in cases in which scale = TRUE
.
Much other information can be accessed as attributes.
A glm
object.
If TRUE
, reports standardized regression
coefficients by scaling and mean-centering input data (the latter can be
changed via the scale.only
argument). Default is FALSE
.
Show confidence intervals instead of standard errors? Default
is FALSE
.
A number between 0 and 1 that signifies the width of the
desired confidence interval. Default is .95
, which corresponds
to a 95% confidence interval. Ignored if confint = FALSE
.
If not FALSE
, reports heteroskedasticity-robust standard
errors instead of conventional SEs. These are also known as Huber-White
standard errors. There are several options provided by
sandwich::vcovHC()
: "HC0"
, "HC1"
, "HC2"
, "HC3"
, "HC4"
,
"HC4m"
, "HC5"
.
Default is FALSE
.
This requires the sandwich
package to compute the
standard errors.
For clustered standard errors, provide the column name of
the cluster variable in the input data frame (as a string). Alternately,
provide a vector of clusters. Note that you must set robust
to either
"HC1", "HC2", or "HC3" in order to have clustered standard errors ("HC4"
and "HC5" are not supported.
If TRUE
, adds a column to output with variance inflation
factors (VIF). Default is FALSE
.
An integer specifying the number of digits past the decimal to
report in the output. Default is 2. You can change the default number of
digits for all jtools functions with
options("jtools-digits" = digits)
where digits is the desired
number.
If TRUE
, reports exponentiated coefficients with
confidence intervals for exponential models like logit and Poisson models.
This quantity is known as an odds ratio for binary outcomes and incidence
rate ratio for count models.
Show p values? If FALSE
, these
are not printed. Default is TRUE
.
If scale = TRUE
, how many standard deviations should
predictors be divided by? Default is 1, though some suggest 2.
If you want coefficients for mean-centered variables but don't
want to standardize, set this to TRUE
. Note that setting this to
false does not affect whether scale
mean-centers variables. Use
scale.only
for that.
Should scaling/centering apply to response
variable? Default is FALSE
.
If you want to scale but not center, set this to TRUE
.
Note that for legacy reasons, setting scale = TRUE
and center = FALSE
will not achieve the same effect. Default is FALSE
.
If you provide the data used to fit the model here, that data
frame is used to re-fit the model (if scale
is TRUE
)
instead of the stats::model.frame()
of the model. This is particularly useful if you have variable
transformations or polynomial terms specified in the formula.
Toggles printing of basic information on sample size, name of DV, and number of predictors.
Toggles printing of model fit statistics.
Toggles printing of model coefficents.
Developmental feature. By providing columns by name, you can add/remove/reorder requested columns in the output. Not fully supported, for now.
You may provide your own variance-covariance matrix for the
regression coefficients if you want to calculate standard errors in
some way not accommodated by the robust
and cluster
options.
Among other things, arguments are passed to scale_mod()
or
center_mod()
when center
or scale
is TRUE
.
Jacob Long jacob.long@sc.edu
By default, this function will print the following items to the console:
The sample size
The name of the outcome variable
The chi-squared test, (Pseudo-)R-squared value and AIC/BIC.
A table with regression coefficients, standard errors, z values, and p values.
There are several options available for robust
. The heavy
lifting is done by sandwich::vcovHC()
, where those are better
described.
Put simply, you may choose from "HC0"
to "HC5"
. Based on the
recommendation of the developers of sandwich, the default is set to
"HC3"
. Stata's default is "HC1"
, so that choice may be better
if the goal is to replicate Stata's output. Any option that is understood by
vcovHC()
will be accepted. Cluster-robust standard errors are
computed
if cluster
is set to the name of the input data's cluster variable
or is a vector of clusters.
The scale
and center
options are performed via
refitting
the model with scale_mod()
and center_mod()
,
respectively. Each of those in turn uses gscale()
for the
mean-centering and scaling.
King, G., & Roberts, M. E. (2015). How robust standard errors expose methodological problems they do not fix, and what to do about it. Political Analysis, 23(2), 159–179. tools:::Rd_expr_doi("10.1093/pan/mpu015")
Lumley, T., Diehr, P., Emerson, S., & Chen, L. (2002). The Importance of the Normality Assumption in Large Public Health Data Sets. Annual Review of Public Health, 23, 151–169. tools:::Rd_expr_doi("10.1146/annurev.publhealth.23.100901.140546")
scale_mod()
can simply perform the standardization if
preferred.
gscale()
does the heavy lifting for mean-centering and scaling
behind the scenes.
Other summ:
summ.lm()
,
summ.merMod()
,
summ.rq()
,
summ.svyglm()
## Dobson (1990) Page 93: Randomized Controlled Trial :
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
print(d.AD <- data.frame(treatment, outcome, counts))
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson)
# Summarize with standardized coefficients
summ(glm.D93, scale = TRUE)
Run the code above in your browser using DataLab