Learn R Programming

stats (version 3.4.0)

summary.lm: Summarizing Linear Model Fits

Description

summary method for class "lm".

Usage

# S3 method for lm
summary(object, correlation = FALSE, symbolic.cor = FALSE, …)

# S3 method for summary.lm print(x, digits = max(3, getOption("digits") - 3), symbolic.cor = x$symbolic.cor, signif.stars = getOption("show.signif.stars"), …)

Arguments

object
an object of class "lm", usually, a result of a call to lm.
x
an object of class "summary.lm", usually, a result of a call to summary.lm.
correlation
logical; if TRUE, the correlation matrix of the estimated parameters is returned and printed.
digits
the number of significant digits to use when printing.
symbolic.cor
logical. If TRUE, print the correlations in a symbolic form (see symnum) rather than as numbers.
signif.stars
logical. If TRUE, ‘significance stars’ are printed for each coefficient.
further arguments passed to or from other methods.

Value

The function summary.lm computes and returns a list of summary statistics of the fitted linear model given in object, using the components (list elements) "call" and "terms" from its argument, plus
residuals
the weighted residuals, the usual residuals rescaled by the square root of the weights specified in the call to lm.
coefficients
a \(p \times 4\) matrix with columns for the estimated coefficient, its standard error, t-statistic and corresponding (two-sided) p-value. Aliased coefficients are omitted.
aliased
named logical vector showing if the original coefficients are aliased.
sigma
the square root of the estimated variance of the random error $$\hat\sigma^2 = \frac{1}{n-p}\sum_i{w_i R_i^2},$$ where \(R_i\) is the \(i\)-th residual, residuals[i].
df
degrees of freedom, a 3-vector \((p, n-p, p*)\), the first being the number of non-aliased coefficients, the last being the total number of coefficients.
fstatistic
(for models including non-intercept terms) a 3-vector with the value of the F-statistic with its numerator and denominator degrees of freedom.
r.squared
\(R^2\), the ‘fraction of variance explained by the model’, $$R^2 = 1 - \frac{\sum_i{R_i^2}}{\sum_i(y_i- y^*)^2},$$ where \(y^*\) is the mean of \(y_i\) if there is an intercept and zero otherwise.
adj.r.squared
the above \(R^2\) statistic ‘adjusted’, penalizing for higher \(p\).
cov.unscaled
a \(p \times p\) matrix of (unscaled) covariances of the \(\hat\beta_j\), \(j=1, \dots, p\).
correlation
the correlation matrix corresponding to the above cov.unscaled, if correlation = TRUE is specified.
symbolic.cor
(only if correlation is true.) The value of the argument symbolic.cor.
na.action
from object, if present there.

Details

print.summary.lm tries to be smart about formatting the coefficients, standard errors, etc. and additionally gives ‘significance stars’ if signif.stars is TRUE. Aliased coefficients are omitted in the returned object but restored by the print method. Correlations are printed to two decimal places (or symbolically): to see the actual correlations print summary(object)$correlation directly.

See Also

The model fitting function lm, summary. Function coef will extract the matrix of coefficients with standard errors, t-statistics and p-values.

Examples

Run this code

##-- Continuing the  lm(.) example:
coef(lm.D90)  # the bare coefficients
sld90 <- summary(lm.D90 <- lm(weight ~ group -1))  # omitting intercept
sld90
coef(sld90)  # much more

## model with *aliased* coefficient:
lm.D9. <- lm(weight ~ group + I(group != "Ctl"))
Sm.D9. <- summary(lm.D9.)
Sm.D9. #  shows the NA NA NA NA  line
stopifnot(length(cc <- coef(lm.D9.)) == 3, is.na(cc[3]),
          dim(coef(Sm.D9.)) == c(2,4), Sm.D9.$df == c(2, 18, 3))

Run the code above in your browser using DataLab