A ran a regression analysis predicting Salary from gender. In the data Female was coded as 2 and male was coded as 1. Then I was asked to change females to -1 and male to 5. In the analyis ɑ, b, t,and SEb changed.

Why? What is the reasoning behind the coding system here?

  • $\begingroup$ We need more information. Why were you asked to change the coding? Is this part of an assignment? It does not make sense to code a dummy variable like this. $\endgroup$ – T.E.G. Feb 12 '17 at 3:12
  • $\begingroup$ Thank you for responding. It is part of an assignment and I think the whole point is explaining why some values changed when the coding changed. I am assuming it has to do with the numbers used for coding. I have read that it is common to use Male= 0 and Female= 1 (where male is the reference group). $\endgroup$ – SLeca Feb 12 '17 at 3:25
  • $\begingroup$ Yes, that is the common practice. If the sole aim of the assignment is to show the reason why we use 0 and 1, then I think the question is now redundant. $\endgroup$ – T.E.G. Feb 12 '17 at 3:29
  • $\begingroup$ This question might be of interest: stats.stackexchange.com/questions/16689/… $\endgroup$ – T.E.G. Feb 12 '17 at 3:30

It is hard to see without further information why one would lie to code a binary variable as $(-1,5)$, but it is fairly easy to see how the coefficient changes with a simple experiment:

lets create a random data.frame in R with 100 observations, where salary has a mean of 60K with a standard deviation of 15K:

df <- data.frame(salary = rnorm(100, mean = 60000, sd = 15000), gender = rbinom(100, 1, 0.42))
df$gender5 <- ifelse(df$gender == 0, -1, 5)

Now gender is coded $(0,1)$ and gender5 is coded $(-1,5)$. Lets regress salary with gender with the original encoding and with the new one:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept)    61291       1994  30.736   <2e-16 ***
gender         -6421       2765  -2.322   0.0223 *  

            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  60220.7     1692.1  35.589   <2e-16 ***
gender5      -1070.2      460.9  -2.322   0.0223 * 


coefficient: The coefficient has a simple meaning always - whats the average difference in salary between the two categories. The first coding $(0,1)$ is very intuitive and so is used often, and is easily understood when viewed through the regression equation: $\hat{salary}=61,291-6,421\times gender$. If males are coded $1$ and females $0$, than males predicted average salary is $61,421-6,421\times 1=54,870$ or simply $6,421$$ less than females.

When the coding changes, so does the meaning. Now instead a gap of $1$, we have a gap of $6$. Now if we want to predict men, we will do: $\hat{salary}=60,220.7-1,070.2\times 5 = 54,870$. Exactly the same (with a rounding error). The gap is not $1$ now, but $6$. Multiplying slope coefficient by $6$, e.g., $-1,070.2\times 6=-6,421$ and we arrive back at the slope coefficient using the first coding scheme $(0,1)$. This is just much less intuitive to calculate.

Standard Error: Same shtick. The $s.e.$ is dependent on the distribution. if you change it, you change the deviation. so $2765/6=460.9$

T and significance value: Should not change. If it did, there probably is a problem somewhere. re-coding the variables changes the coefficients, but not the significance values.

| cite | improve this answer | |
  • $\begingroup$ @SLeca you are very welcome. If you feel this is satisfactory, feel free to accept this answer which will mark the question as resolved :) $\endgroup$ – Yuval Spiegler Feb 17 '17 at 13:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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