Do control variables in regression models have to be confounders? So everything I'm reading on this throws out a different answer. Do control variables in regression models have to be confounders, that affect both the independent and dependent variables?
I have an exam on this tomorrow (contributing to my degree): I have read multiple times from various sources that in a regression model, you should only control for confounders. My professor has given us a reading list with papers that also state this, but in his own examples for us has included controls that affect the dependent variable. I have also looked up his own published papers and he again seems to have included control variables that are not confounders, but only affect the dependent variable.
I am extremely confused!
So, for example: If I'm using survey data to look at whether childhood household income impacts height as an adult, should I be using control variables that are confounders? Or can I control for things such as 'sex' which obviously has a bearing on height, but no bearing on their childhood family income?
I would really appreciate any help to clarify this!
Thanks

If you are interested in a causal effect estimation, which you are because you're talking about confounders, then you should condition on confounders, should not condition on colliders (common effects, the dependent variable, etc.) should not condition on mediators (effects of X that are also causes o Y) and may but need not condition on other causes of the outcome that do not also cause the independent variable.
Why 'can' not 'should'?
tl;dr Conditioning on other causes of the dependent variable often improves precision, but cannot improve causal identification.
In more detail: Let X be the independent variable whose effect you are interested in, Y be an outcome it affects, Z be an important cause of Y but not X, and C be a common cause of X and Y.
If you are interested in, say, an average treatment effect of X, then you are interested in comparing the expected value of Y given X vs X', for example: average outcome given treatment vs average outcome given no-treatment.
Simple differences of average Y given X and average Y given X' will not (except by accident) identify the causal effect of X on Y (because C is a confounder) and will be unnecessarily noisy (because C and Z would have helped you predict those average Ys, and hence their difference, more precisely.)
Controlling for Z but not C will also not identify the effect of X on Y (except by accident) because C confounds, although the estimate will be less noisy (because Z predicts Y well)
Controlling for C but not Z will identify the causal effect because C is a confounder and Z only 'adds noise' to Y. The estimate will be noisier because you have ignored something that would have helped estimate the Y averages you want.
Controlling for C and Z will (if you manage to do it decently well) both identify the effect of X on Y and do so with the most precision.
There are a lot more nuances to this story and some things depend more or less on functional form and graph specifics, but the basic message is: non-colliding non-confounders can help precision, just not identification.
