Standardize model coefficients by Standard Deviation or Partial Standard Deviation.
1 2 3 4 5 6
a fitted model object.
logical, if set to
additional arguments passed to
Standardizing model coefficients has the same effect as centring and scaling the input variables. “Classical” standardized coefficients are calculated as βᵢ* = βᵢ (sₓᵢ / Sᵧ) , where β is the unstandardized coefficient, sₓᵢ is the standard deviation of associated dependent variable Xᵢ and Sᵧ is SD of the response variable.
If variables are intercorrelated, the standard deviation of Xᵢ used in computing the standardized coefficients βᵢ* should be replaced by the partial standard deviation of Xᵢ which is adjusted for the multiple correlation of Xᵢ with the other X variables included in the regression equation. The partial standard deviation is calculated as s*ₓᵢ = sₓᵢ √(VIFₓᵢ⁻¹) √((n-1)/(n-p)) , 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 βᵢ* = βᵢ s*ₓᵢ .
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.
Kamil Bartoń. Variance inflation factors calculation is based
vif from package car written by Henric Nilsson and John
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# 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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.