When performing a multiple regression with dummy variables, is it really necessary to include an intercept term in the design matrix?

By dummy variables, I mean indicator variables; a one in the design matrix if some effect is present, and a zero if not. It seems to me that without the intercept it is simpler to interpret the OLS solution. Instead of

$\beta_{0}$ = $\mu_{A}$ (where $\beta_{0}$ is the intercept)

$\beta_{1}$ = $\mu_{B} - \mu_{A}$

$\beta_{2}$ = $\mu_{C} - \mu_{A}$


We have

$\beta_{1}$ = $\mu_{A}$

$\beta_{2}$ = $\mu_{B}$

$\beta_{3}$ = $\mu_{C}$


Do the computations of $R^{2}$, the F-statistic and t-statistics change?

What if a continuous independent variable is then included?

  • 2
    $\begingroup$ Biggest problem: this approach doesn't generalize well. If you have two factors, you still have to leave something out. $\endgroup$
    – Glen_b
    Commented May 23, 2013 at 4:04
  • $\begingroup$ Also discussed here: stats.stackexchange.com/questions/215779/… $\endgroup$ Commented Jul 5, 2019 at 20:46

2 Answers 2


Things like the predictions, residuals, full-reduced model tests, etc. will not be affected by the change that you propose, but what does change is the interpretation and tests on the individual terms.

Most regression routines will provide an automatic test of whether a term is 0 or not. This is meaningful when a term represents the difference between two group means (what we get when we include an intercept), but is testing whether each of the group means equals 0 meaningful? The same goes for the confidence intervals and we usually want to know if groups differ from each other. If every term just represents a mean then we compute confidence intervals for the means, then people try to interpret the amount of a difference by seeing if the intervals overlap, but this is very inferior to looking at a confidence interval on a difference.

  • $\begingroup$ Thank you for the great answer! This makes a lot of sense to me. You didn't mention if adding a continuous independent variable changes the interpretation. Sorry if it's obvious, I am having a hard time understanding. Thanks again! $\endgroup$
    – bill_e
    Commented May 23, 2013 at 1:08
  • $\begingroup$ @PeterRabbit, adding a continuous variable does not change things, you still get an overall slope, the difference is whether each group has its own intercept (no intercept model) or if the individual terms represent a change from the overall intercept. Both models have their place. $\endgroup$
    – Greg Snow
    Commented May 23, 2013 at 1:11
  • 1
    $\begingroup$ @PeterRabbit, You could see this for yourself by fitting both models to the same dataset (either an example dataset or just simulate some data) and see what is different in the summaries and what stays the same. $\endgroup$
    – Greg Snow
    Commented May 23, 2013 at 1:12
  • $\begingroup$ As @Glen_b pointed out, things get more complicated with multiple factors. E.g., in an unbalanced two-factorial ANOVA, SS type III model comparisons depend on the coding scheme - it has to be a sum-to-zero scheme like Helmert or effect coding. $\endgroup$
    – caracal
    Commented May 23, 2013 at 8:09
  • 1
    $\begingroup$ @caracal, I agree that multiple factors complicate things. The fact that this messes with type III SS is an argument against using type III SS, see stats.ox.ac.uk/pub/MASS3/Exegeses.pdf. $\endgroup$
    – Greg Snow
    Commented May 23, 2013 at 14:25

@GregSnow is right that this change doesn't really matter. Let me add a few details to extend that. What you are talking about is sometimes called level means coding, whereas the default coding scheme is called reference level coding. Note that there are many possible valid coding schemes. If you have a categorical variable with only two levels, then the t-test of the beta that comes by default in the regression output with any statistical software is more meaningful when you had used reference level coding.

On the other hand, when you have a categorical variable with multiple categories, which coding scheme you use is just a matter of taste. To get a predicted value, you will have to solve the regression equation for $\hat y$ at the relevant spot in the covariate space either way. To test if the categorical variable is related to the response, you will need to use an F change test (discussed here) either way, etc.

To address your specific questions more concretely: if you use level means coding instead of reference level coding, the F-statistic will be the same; the t-statistics will change in that they will now test whether your level means are zero, as @GregSnow explains; and the inclusion of continuous covariates will be the same.


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.