[R] Standardized Beta?

John Fox jfox at mcmaster.ca
Mon Mar 4 18:38:37 CET 2002

At 03:04 PM 3/4/2002 +0100, Fredrik Karlsson wrote:

>When doing regression, is there a way of automatically obtaining the
>standardized correlation coefficients?

Dear Fredrik,

I assume that you mean standardized *regression* coefficients. If so, a 
simple approach is to use the scale function to standardize the variables 
and then to perform a regression with lm; you can include -1 on the 
right-hand side of the model formula to suppress the constant; it will be 0 
within rounding error anyway.

For example, using the Duncan data frame in the car package:

         > Duncan.s <- as.data.frame(scale(Duncan[, 2:4])) # omits a factor 
in col. 1
         > lm(prestige ~ income + education - 1, data=Duncan.s)

         lm(formula = prestige ~ income + education - 1, data = Duncan.s)

         income  education
          0.4643     0.5155

Of course, you could also compute the standardized coefficients from the 
unstandardized coefficients and the standard deviations of the variables; 
for example

         > mod <- lm(prestige ~ income + education, data=Duncan)
         > coef(mod)
         (Intercept)      income   education
          -6.0646629   0.5987328   0.5458339
         > coef(mod)[2:3]*sd(Duncan[,c('income', 
         income education
         0.4642947 0.5155284

Finally, it's not hard to encapsulate this in a function:

         > std.coef <- function (mod){
         +     sy <- sd(response(mod))
         +     sx <- sd(model.matrix(mod)[,-1])
         +     b <- coef(mod)[-1]
         +     b*sx/sy
         +     }

         > std.coef(mod)
         income education
         0.4642947 0.5155284

Is that what you had in mind?

John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list