std.coef {MuMIn} | R Documentation |
Standardized model coefficients
Description
Standardize model coefficients by Standard Deviation or Partial Standard Deviation.
Usage
std.coef(x, partial.sd, ...)
partial.sd(x)
# Deprecated:
beta.weights(model)
Arguments
x , model |
a fitted model object. |
partial.sd |
logical, if set to |
... |
additional arguments passed to |
Details
Standardizing model coefficients has the same effect as centring and
scaling the input variables. “Classical” standardized coefficients
are calculated as
\beta^{*}_i = \beta_i\frac{s_{X_{i}}}{s_{y}}
, where
\beta
is the unstandardized coefficient,
s_{X_{i}}
is the standard deviation of associated dependent variable
X_i
and
s_{y}
is SD of the response variable.
If variables are intercorrelated, the standard deviation of
X_i
used in computing the standardized coefficients
\beta_i^{*}
should be
replaced by the partial standard deviation of
X_i
which is adjusted for
the multiple correlation of
X_i
with the other X
variables
included in the regression equation. The partial standard deviation is
calculated as
s_{X_{i}}^{*}=s_{X_{i}} VIF(X_i)^{-0.5} (\frac{n-1}{n-p} )^{0.5}
,
where VIF is the variance inflation factor,
n is the number of observations and p, the number of predictors in
the model. The coefficient is then transformed as
\beta^{*}_i = \beta_i s_{X_{i}}^{*}
.
Value
A matrix with at least two columns for the standardized coefficient estimate and its standard error. Optionally, the third column holds degrees of freedom associated with the coefficients.
Author(s)
Kamil BartoĊ. Variance inflation factors calculation is based
on function vif
from package car written by Henric Nilsson and John
Fox.
References
Cade, B.S. 2015 Model averaging and muddled multimodel inferences. Ecology 96, 2370-2382.
Afifi, A., May, S., Clark, V.A. 2011 Practical Multivariate Analysis, Fifth Edition. CRC Press.
Bring, J. 1994 How to standardize regression coefficients. The American Statistician 48, 209–213.
See Also
partial.sd
can be used with stdize
.
coef
or coeffs
and coefTable
for
unstandardized coefficients.
Examples
# Fit model to original data:
fm <- lm(y ~ x1 + x2 + x3 + x4, data = GPA)
# Partial SD for the default formula: y ~ x1 + x2 + x3 + x4
psd <- partial.sd(lm(data = GPA))[-1] # remove first element for intercept
# Standardize data:
zGPA <- stdize(GPA, scale = c(NA, psd), center = TRUE)
# Note: first element of 'scale' is set to NA to ignore the first column 'y'
# Coefficients of a model fitted to standardized data:
zapsmall(coefTable(stdizeFit(fm, newdata = zGPA)))
# Standardized coefficients of a model fitted to original data:
zapsmall(std.coef(fm, partial = TRUE))
# Standardizing nonlinear models:
fam <- Gamma("inverse")
fmg <- glm(log(y) ~ x1 + x2 + x3 + x4, data = GPA, family = fam)
psdg <- partial.sd(fmg)
zGPA <- stdize(GPA, scale = c(NA, psdg[-1]), center = FALSE)
fmgz <- glm(log(y) ~ z.x1 + z.x2 + z.x3 + z.x4, zGPA, family = fam)
# Coefficients using standardized data:
coef(fmgz) # (intercept is unchanged because the variables haven't been
# centred)
# Standardized coefficients:
coef(fmg) * psdg