Learn R Programming

MuMIn (version 1.15.1)

std.coef: 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 TRUE, model coefficients are multiplied by partial SD, otherwise they are multiplied by the ratio of the standard deviations of the independent variable and dependent variable.
...
additional arguments passed to coefTable, e.g. dispersion.

Value

  • A matrix with at least two columns for standardized coefficient estimate and its standard error. Optionally, third column holds degrees of freedom associated with the coefficients.

encoding

utf-8

newcommand

\myequation

ifelse

  • latex
  • html

eqn

$#1$

enc

$#2$

Details

Standardizing model coefficients has the same effect as centring and scaling the input variables. Classical standardized coefficients are calculated as \beta^{*}_i = \beta_is_{X_{i}}{s_{y}}{\betaᵢ* = \betaᵢ (sₓᵢ / Sᵧ) }{Bi* = Bi * (SXi / Sy)} , where \beta{\beta}{B} is the unstandardized coefficient, s_{X_{i}}{sₓᵢ}{SXi} is the standard deviation of associated depenent variable X_i{Xᵢ}{Xi} and s_{y}{Sᵧ}{Sy} is SD of the response variable.

If the variables are intercorrelated, the standard deviation of X_i{Xᵢ}{Xi} used in computing the standardized coefficients \beta_i^{*}{\betaᵢ*}{Bi*} should be replaced by a partial standard deviation of X_i{Xᵢ}{Xi} which is adjusted for the multiple correlation of X_i{Xᵢ}{Xi} 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} (n-1{n-p} )^{0.5}{s*ₓᵢ = sₓᵢ √(VIFₓᵢ���¹) √((n-1)/(n-p)) }{sXi* = SXi * sqrt(1/VIF(Xi)) * sqrt((n-1)/(n-p))}, where VIF is the variance inflation factor, n is the number of observations and p number of predictors in the model. Coefficient is then transformed as \beta^{*}_i = \beta_i s_{X_{i}}^{*}{\betaᵢ* = \betaᵢ s*ₓᵢ }{Bi* = Bi * SXi*}.

References

Cade, B.S. (in press) Model averaging and muddled multimodel inference. Ecology. Online: http://dx.doi.org/10.1890/14-1639.1

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

Run this code
# 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, data = 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

Run the code above in your browser using DataLab