When you’re model building, a key decision is which interaction terms to include.
As a general rule, the default in regression is to leave them out. Add interactions only with a solid reason. It would seem like data fishing to simply add in all possible interactions.
And yet, that’s a common practice in most ANOVA models: put in all possible interactions and only take them out if there’s a solid reason. Even many software procedures default to creating interactions among categorical predictors.
Rather than ponder why we approach these differently or which is right, in this article I want to explain what it really means when an interaction is or is not in a model. It can be a bit counter-intuitive.
Let’s use this (made up) example from one of my website articles:
A model of the height of a shrub (Height) based on the amount of bacteria in the soil (Bacteria) and whether the shrub is located in partial or full sun (Sun).
Height is measured in cm; Bacteria is measured in thousand per ml of soil; and Sun = 0 if the plant is in partial sun, and Sun = 1 if the plant is in full sun.
Here’s the model without an interaction term: Height = 42 + 2.3*Bacteria + 11*Sun
And here is the model with one: Height = 35 + 1.2*Bacteria + 9*Sun + 3.2*Bacteria*Sun
There are a few things you can see here:
1. Adding the interaction allows the effect (slope) of Bacteria to differ in the two Sun conditions
2. It also allows the effect (mean difference) in the Sun condition (the height of the orange lines) to differ at different values of Bacteria.
3. The interaction coefficient itself (3.2) estimates this difference in effect for one predictor, depending on the value of the other.
If it turns out that the best estimate of the interaction coefficient was zero, not 3.2, then the bottom graph would have looked like the top one.
And here’s the counter-intuitive part:
When you include an interaction in a model, you’re estimating that coefficient from the data. Sometimes the estimate will be zero, or very close to zero, and sometimes not.
When you don’t specify an interaction term, the difference in effects doesn’t just go away. That difference always exists. By not specifying that you want the software to estimate the difference in those effects, you are setting it to zero.
Counter-intuitive, right? By not specifying it, you’re actually taking a more active stance: setting it to zero.
This is, incidentally, the same issue with removing an intercept from a model, when it theoretically should be zero or is not statistically different from zero.
In the case of the intercept, the general consensus is removing it will lead to unacceptable bias and poor fit. It’s a rare situation where removal is worthwhile.
Technically, the same is true for interactions, but they are generally held to a different standard. Why? First, interactions are often a little more exploratory in their nature. Second, they add more complexity to a model.
As with all issues of model complexity, sometimes the better coefficient estimates and model fit are worth it and sometimes they aren’t. Whether the complexity is worth it depend on the hypotheses, the sample size, and the purpose of the model.
So should you always include interactions to a model? No, but it’s always a good practice to stop and think about what it means to leave them out and whether that’s really what you want to test.