# Should I ever standardise/normalise the target data/ dependent variables in regression models?

After standardising the explanatory variables the difference in magnitude between the explanatory variables and the target data is ~3 orders of magnitudes. I want to know if transformation of the target data will still give valid results.

Thanks a lot folks!

• Is there a reason why you want/need to standardize the dependent variable? Then your dependent variable, rather than being in a natural scale like "meters," is in a scale with units of the standard deviation found in your particular sample. Similarly for the explanatory variables. Staying in the original scales can help with interpretation and with the ability of others to reproduce your results.
– EdM
Jan 5, 2016 at 22:27
• The coefficients in a regression model take care of differences in scale. (There are sometimes reasons to standardize but from your description you don't seem to be in need of it.) Jan 6, 2016 at 0:27
• It only makes sense to normalize your data if it is normally distributed in the first place. If the distribution of your explanatory variables cannot be made to be normal, then modelling them as such will be incorrect and you will likely wind up with z-scores that are very large in magnitude and have poor explanatory power.
– Carl
May 18, 2021 at 15:10

Scaling or zeroing will will not change the regression or classification results. The only down side is lose of interpretability.

Here are working examples in R showing that any combination of scaling or zeroing produces the same regression line.

Coefficients can be different, and that is okay. Here are the coefficients calculated in the models below in order.

  (Intercept)         disp
1    29.59985  -0.04121512
2    20.09062  -0.04121512
3    26.66946 -16.52314159
4    26.66946 -16.52314159


No zeroing or scaling

# orginal data
df <- mtcars
png("mtcars_original.png")
plot(df$disp, df$mpg, main="MPG VS Displacment")
abline(lm(mpg ~ disp, df), col = 2)
dev.off()


Zeroed

# zeroed displacement
df <- mtcars
df$disp <- df$disp - mean(df$disp) png("mtcars_zeroed.png") plot(df$disp, df$mpg, main="MPG VS Zeroed Displacement") abline(lm(mpg ~ disp, df), col = 2) dev.off()  Scaled # scaled displacment df <- mtcars df$disp <- (df$disp - min(df$disp)) / ( max(df$disp) - min(df$disp))
png("mtcars_scaled.png")
plot(df$disp, df$mpg, main="MPG VS Scaled Displacment")
abline(lm(mpg ~ disp, df), col = 2)
dev.off()


Zeroed & Scaled

# zeroed & scaled displacment
df <- mtcars
dt$disp <- df$disp - mean(df$disp) df$disp <- (df$disp - min(df$disp)) / ( max(df$disp) - min(df$disp))
png("mtcars_zeroed_scaled.png")
plot(df$disp, df$mpg, main="MPG VS Scaled & Zeroed Displacment")
abline(lm(mpg ~ disp, df), col = 2)
dev.off()


It will. Your measurements are coordinates. For every value on the explanatory variable, you have a coordinate measurement on the target variable. If you don't change the order of either, then the relation remains intact. Right?