summ()
prints output for a regression model in a fashion similar to
summary()
, but formatted differently with more options.
Usage
# S3 method for class '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,
...
)
Arguments
- model
A
glm
object.- scale
If
TRUE
, reports standardized regression coefficients by scaling and mean-centering input data (the latter can be changed via thescale.only
argument). Default isFALSE
.- confint
Show confidence intervals instead of standard errors? Default is
FALSE
.- ci.width
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 ifconfint = FALSE
.- robust
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 bysandwich::vcovHC()
:"HC0"
,"HC1"
,"HC2"
,"HC3"
,"HC4"
,"HC4m"
,"HC5"
.Default is
FALSE
.This requires the
sandwich
package to compute the standard errors.- cluster
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.- vifs
If
TRUE
, adds a column to output with variance inflation factors (VIF). Default isFALSE
.- digits
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.- exp
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.- pvals
Show p values? If
FALSE
, these are not printed. Default isTRUE
.- n.sd
If
scale = TRUE
, how many standard deviations should predictors be divided by? Default is 1, though some suggest 2.- center
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 whetherscale
mean-centers variables. Usescale.only
for that.- transform.response
Should scaling/centering apply to response variable? Default is
FALSE
.- scale.only
If you want to scale but not center, set this to
TRUE
. Note that for legacy reasons, settingscale = TRUE
andcenter = FALSE
will not achieve the same effect. Default isFALSE
.- data
If you provide the data used to fit the model here, that data frame is used to re-fit the model (if
scale
isTRUE
) instead of thestats::model.frame()
of the model. This is particularly useful if you have variable transformations or polynomial terms specified in the formula.- model.info
Toggles printing of basic information on sample size, name of DV, and number of predictors.
- model.fit
Toggles printing of model fit statistics.
- model.coefs
Toggles printing of model coefficents.
- which.cols
Developmental feature. By providing columns by name, you can add/remove/reorder requested columns in the output. Not fully supported, for now.
- vcov
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
andcluster
options.- ...
Among other things, arguments are passed to
scale_mod()
orcenter_mod()
whencenter
orscale
isTRUE
.
Value
If saved, users can access most of the items that are returned in the output (and without rounding).
- coeftable
The outputted table of variables and coefficients
- model
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.
Details
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.
References
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. 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. doi:10.1146/annurev.publhealth.23.100901.140546
See also
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()
Author
Jacob Long jacob.long@sc.edu
Examples
## 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))
#> treatment outcome counts
#> 1 1 1 18
#> 2 1 2 17
#> 3 1 3 15
#> 4 2 1 20
#> 5 2 2 10
#> 6 2 3 20
#> 7 3 1 25
#> 8 3 2 13
#> 9 3 3 12
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson)
# Summarize with standardized coefficients
summ(glm.D93, scale = TRUE)
#> MODEL INFO:
#> Observations: 9
#> Dependent Variable: counts
#> Type: Generalized linear model
#> Family: poisson
#> Link function: log
#>
#> MODEL FIT:
#> χ²(4) = 5.45, p = 0.24
#> Pseudo-R² (Cragg-Uhler) = 0.46
#> Pseudo-R² (McFadden) = 0.10
#> AIC = 56.76, BIC = 57.75
#>
#> Standard errors:MLE
#> ------------------------------------------------
#> Est. S.E. z val. p
#> ----------------- ------- ------ -------- ------
#> (Intercept) 3.04 0.17 17.81 0.00
#> outcome2 -0.45 0.20 -2.25 0.02
#> outcome3 -0.29 0.19 -1.52 0.13
#> treatment2 0.00 0.20 0.00 1.00
#> treatment3 0.00 0.20 0.00 1.00
#> ------------------------------------------------
#>
#> Continuous predictors are mean-centered and scaled by 1 s.d. The outcome variable remains in its original units.