I’m using the {MuMIn} package in R to select models (dredge, get top models, average etc). My question is about whether I need to, or should, standardise my variables.

I have five continuous variables (one of them the response variable), all on a scale from 0 to 100. I also have three categorical variables (two binary, one is categorical with three levels).

I would like answers for two options; one option where an interaction between a continuous and a categorical (3 levels) variable is included, and one where there are no interactions.

m1 <- lmer(cont1 ~ cont2 + cont3 + cont4 + cat1 + cat2 + cont5*cat3 + (1|ID), na.action = na.fail, data = dat)

m2 <- lmer(cont1 ~ cont2 + cont3 + cont4 + cat1 + cat2 + cont5 + cat3 + (1|ID), na.action = na.fail, data = dat)

I have read that scaling is useful to improve the stability of models and the accuracy of parameter estimates if variables in a model are on large or vastly different scales. I assume this only refer to continuous variables (which are on the same scale in these data) and does not include having categorical predictors as well.

When interactions are present, most sources agree I should centre continuous variables to avoid multicollinearity issues, and that centering variables permits interpretation of main effects when interactions are present. But I am not sure whether to then only centre/scale continuous variables and leave categorical predictors alone?

I have also read that centering predictors is essential when model averaging is employed (which I will do), and standardization facilitates the interpretation of the relative strength of parameter estimates – although its not fully clear whether they mean in general or only when interactions are present.

Would it be okay to use the standardize() function from the {arm} package (Gelman et al., 2009) in R for my interaction option, which standardises predictors by centring and dividing by 2 SDs. Here is a description of what the function does:

“Numeric variables that take on more than two values are each rescaled to have a mean of 0 and a sd of 0.5; Binary variables are rescaled to have a mean of 0 and a difference of 1 between their two categories; Non-numeric variables that take on more than two values are unchanged; Variables that take on only one value are unchanged.”

Is that an alright thing to do? Most sources I’ve come across only talk about centring continuous predictors. Moreover, I am not wholly sure whether to standardise the outcome variable too (currently I’d say not, and then each coefficient represents the expected change of the response in the responses units per 2 SD change in the predictor?).

As multiple sources say not to standardise unless absolutely necessary, I was going to not standardise / centre / scale anything for the one without interactions - is that right?

Any insights would be greatly appreciated!


1 Answer 1


This maybe should be considered a duplicate of this question, but that doesn't directly address model-comparison/averaging concerns.

Gelman's standardize() function is directed to comparisons of regression coefficient magnitudes within a single model. He writes in a blog post:

  1. For comparing coefficients for different predictors within a model, standardizing gets the nod. (Although I don’t standardize binary inputs. I code them as 0/1, and then I standardize all other numeric inputs by dividing by two standard deviation, thus putting them on approximately the same scale as 0/1 variables.)

  2. For comparing coefficients for the same predictors across different data sets, it’s better not to standardize–or, to standardize only once. Baguley discusses the slipperiness of standardized effect sizes when the denominator starts changing under your feet.

That said, there's no need for centering or scaling in your application, with one potential exception discussed later. You don't seem to be interested in comparisons among regression coefficients within any model, and all your models are based on a single data set. Whether you express the values in their original scales or in transformed scales, each of your models will provide coefficients in the corresponding scale. Just be consistent for all models.

With respect to centering, Frank Harrell says: "I almost never use centering, finding it completely unncessary and confusing." Some "main effect" coefficients for predictors involved in interactions might be easier to interpret if continuous predictors are centered, but model predictions for specific scenarios will be the same regardless. See this question for an outline of the considerations, and this question for extensive discussion.

Sample-dependent scaling, like division by a multiple of the standard deviation, will slightly complicate application of the model to new data samples. It also means that coefficients are expressed in terms of standard-deviation units rather than in the original predictor units. I prefer seeing results in units, say, of "yield change per degree of temperature" rather than "yield change per standard deviation of whatever temperature data happened to be used for building the model." That said, such results can all be re-expressed however you want to see them.

Some analyses run into numerical problems with data on widely different scales when things like exponentiations are involved. In analyses like Cox survival models where this occurs, the software typically knows to do that internally, then re-transform to original scales. So, again, there's no need for you to pre-transform unless you are writing your own code for such an analysis.

The possible exception: scaling is important if any of your models uses a penalized approach like ridge regression or LASSO, where predictors are assumed to be on comparable scales so that their coefficients are penalized fairly. Then, however, you have to think very hard about how you want to deal with binary or multi-level categorical predictors, as explained on this page.

A final warning: you seem to be engaged in some type of automated model selection. That's dangerous. At least, document the reliability of your automated approach by repeating it on multiple bootstrapped samples of your data and applying the models to the full data set, as in the optimism bootstrap.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.