summ()
prints output for a regression model in a fashion similar to
summary()
, but formatted differently with more options.
# S3 method for lm summ( model, scale = FALSE, confint = getOption("summconfint", FALSE), ci.width = getOption("summci.width", 0.95), robust = getOption("summrobust", FALSE), cluster = NULL, vifs = getOption("summvifs", FALSE), digits = getOption("jtoolsdigits", 2), pvals = getOption("summpvals", TRUE), n.sd = 1, center = FALSE, transform.response = FALSE, data = NULL, part.corr = FALSE, model.info = getOption("summmodel.info", TRUE), model.fit = getOption("summmodel.fit", TRUE), which.cols = NULL, vcov = NULL, ... )
model  A 

scale  If 
confint  Show confidence intervals instead of standard errors? Default
is 
ci.width  A number between 0 and 1 that signifies the width of the
desired confidence interval. Default is 
robust  If not Default is This requires the 
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. 
vifs  If 
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

pvals  Show p values? If 
n.sd  If 
center  If you want coefficients for meancentered variables but don't
want to standardize, set this to 
transform.response  Should scaling/centering apply to response
variable? Default is 
data  If you provide the data used to fit the model here, that data
frame is used to refit the model (if 
part.corr  Print partial (labeled "partial.r") and
semipartial (labeled "part.r") correlations with the table?
Default is 
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. 
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 variancecovariance matrix for the
regression coefficients if you want to calculate standard errors in
some way not accommodated by the 
...  Among other things, arguments are passed to 
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
.
By default, this function will print the following items to the console:
The sample size
The name of the outcome variable
The Rsquared value plus adjusted Rsquared
A table with regression coefficients, standard errors, tvalues, 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. Clusterrobust 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
meancentering and scaling.
If using part.corr = TRUE
, then you will get these two common
effect size metrics on the far right two columns of the output table.
However, it should be noted that these do not go hand in hand with
robust standard error estimators. The standard error of the coefficient
doesn't change the point estimate, just the uncertainty. However,
this function uses tstatistics in its calculation of the
partial and semipartial correlation. This provides what amounts to a
heteroskedasticityadjusted set of estimates, but I am unaware of any
statistical publication that validates this type of use. Please
use these as a heuristic when used alongside robust standard errors; do
not report the "robust" partial and semipartial correlations in
publications.
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. https://doi.org/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. https://doi.org/10.1146/annurev.publhealth.23.100901.140546
scale_mod()
can simply perform the standardization if
preferred.
gscale()
does the heavy lifting for meancentering and scaling
behind the scenes.
Other summ:
summ.glm()
,
summ.merMod()
,
summ.rq()
,
summ.svyglm()
# Create lm object fit < lm(Income ~ Frost + Illiteracy + Murder, data = as.data.frame(state.x77)) # Print the output with standardized coefficients and 3 digits summ(fit, scale = TRUE, digits = 3)#> MODEL INFO: #> Observations: 50 #> Dependent Variable: Income #> Type: OLS linear regression #> #> MODEL FIT: #> F(3,46) = 4.049, p = 0.012 #> R² = 0.209 #> Adj. R² = 0.157 #> #> Standard errors: OLS #>  #> Est. S.E. t val. p #>      #> (Intercept) 4435.800 79.773 55.605 0.000 #> Frost 65.188 109.686 0.594 0.555 #> Illiteracy 372.251 129.914 2.865 0.006 #> Murder 85.179 114.217 0.746 0.460 #>  #> #> Continuous predictors are meancentered and scaled by 1 s.d.