Is it true that in order to check for possible nonlinearities in a simple linear regression model like $E[Y_i]=\beta_1+\beta_2X_i$, with $X_i$ scalar and nonrandom.

We regress the LS residuals $\hat U_i=Y_i-\hat\beta_1-\hat\beta_2X_i$ (all of them are estimators) on the squared values $X_i^2$ of the regressors. If the true regression model is quadratic, then by the Frisch-Waugh theorem this second step regression yields an unbiased estimator of $\beta_3$, but the original LS estimates of $\beta_1$ and $\beta_2$ will be biased in general?

  • 1
    $\begingroup$ FWL is just a computational/theoretical device, so I cannot see how it can help establish unbiasedness. $\endgroup$ Oct 20, 2016 at 6:16
  • $\begingroup$ @J.doe Minor point: you're missing a `\` in front of "beta_2". $\endgroup$
    – Ami Tavory
    Oct 20, 2016 at 7:19

1 Answer 1


What you seem to be proposing does not seem to correspond to a FWL-based strategy to compute $\hat\beta_3$ in the model $$ Y_i=\beta_1+\beta_2X_i+\beta_3X_i^2+U_i $$ If this model is indeed the correct one, then either OLS on this model would be an unbiased estimation strategy for $\beta_3$, or of course FWL, as it is numerically equivalent to OLS.

Now, FWL to compute $\hat\beta_3$ would entail to first partial out the remaining regressors, i.e., in a regression of $Y_i$ on a constant and $X_i$ and in a regeression of $X_i^2$ on a constant and $X_i$, to then use the residuals of these two regressions for a third regression. The coefficient of that regression would be $\hat\beta_3$.

Your strategy, in turn, takes residuals of a regression for $Y_i$ only and does not partial out the effect of the constant and $X_i$ in $X_i^2$, which leads to other and hence - I did not think that through in detail - biased estimates.

Here is a little illustration:

# generate some data
n <- 100
X <- runif(n)
Xsq <- X^2
y <- rnorm(n)

OLS <- lm(y ~ X + Xsq)
(Intercept)           X         Xsq 
  0.4905833  -2.1985898   1.6743698 

FWL.first.stage.Y <- lm(y ~ X)
Uhat <- FWL.first.stage.Y$residuals
FWL.first.stage.Xsq <- lm(Xsq ~ X)
FWL.second.stage <- lm(Uhat ~ FWL.first.stage.Xsq$residuals-1)
coef(FWL.second.stage) # same as above

# your FWL suggestion
FWL.second.stage <- lm(Uhat ~ Xsq-1)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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