In a model I am trying to justify, a mortgage rate spread is estimated by regression on a swap spread using around 40 monthly data-points. The model fails the assumptions of heteroskedasticity and serial correlation but the coefficients are still significant after using white-corrected std. errors (using vcovHAC, sandwich package).

My questions are about how to go about testing the stationarity of the model. I have conducted ADF, KPSS and PP tests.

  1. For dependent and independent variables, all three tests point towards non-stationarity.

  2. For model residuals, KPSS and PP tests points towards non-stationarity while in ADF test, the null hypothesis of unit root is not rejected.

My first question is that can these tests be applied on residuals. Are same set of critical values be used for residuals as for X and Y?

My another question is that if residuals are stationary, can I ignore the non-stationarity of X any Y variables in this model? Is it possible only due to cointegration? What is the way forward if cointegration is not detected (I performed Johansen and Phillips-Ouliaris Cointegration Tests)?

I read in the R documentation for PP test that it is a non-parametric test and robust to heteroskedasticity. Given that PP test gives contradictory results to ADF test, shall I give it more weight in reaching the conclusion?

Plots of X, Y and residuals are attached. Please let me know if I should share any of the test outputs.enter image description hereenter image description here

  • $\begingroup$ The residuals are heteroscedastic and autocorrelated? On another Note - just keep in mind that tests for autocorrelation usually assume homoscedasticity and vice versa. $\endgroup$
    – shenflow
    Jan 30, 2018 at 7:28

2 Answers 2


No, these tests cannot be applied on residuals. Same set of critical values cannot be used for residuals as for X and Y. But in many websites and YouTube tutorials they have wrongly used the same critical values. Although the test statistic are constructed in the same way. When the tests are applied to the residuals from a spurious regression, the critical values that are used to interpret test statistic are different from those employed in case of x and y. The critical values found in MacKinnon (1991) or Engle and Yoo (1987) should be used . Here's the link for MacKinnon (1991): https://www.google.co.in/url?sa=t&source=web&rct=j&url=http://qed.econ.queensu.ca/working_papers/papers/qed_wp_1227.pdf&ved=0ahUKEwig9rCm1qTYAhUIOY8KHZhyDQ4QFggmMAA&usg=AOvVaw2y5Z4Hz4SvjxOUvYnWioVc . Here the critical values for Co integrating tests are calculated. Currently there is no package in R which has this. So you would be required to manually calculate these values using the number of observations and the type of test: "no constant", "no trend" or "with trend".

Now your second question, if residuals are stationary, can I ignore the non-stationarity of X any Y variables in this model? Is it possible only due to cointegration? First of all before checking Cointegration you should make sure that they are I(1). According to the definition of Cointegrated series in Time series Analysis by Hamilton, "An nx1 vector time series yt is said to be Cointegrated if each of the series taken individually is I(1) while some linear combination of the series is stationary or I(0)."
If they are Cointegrated then you can use a Cointegration model to estimate their relationship. Or you can fit a dynamic regression using auto.arima() function in R where in the residuals are an ARIMA process. See: https://www.otexts.org/fpp/9/1 So yeah, in dynamic regression you ignore their non-stationarity if they are Cointegrated. I will soon edit this answer and add a solid answer to "what is the way forward when Cointegration is not detected?"


From a holistic standpoint, your courses of action will differ depending on what you are ultimately trying to achieve.

When a time series is non-stationary, it means that the mean, variance, and autocorrelation are not constant. Therefore, this type of time series becomes harder to forecast. It is often the case that a differencing method is used to make the series stationary and then run the prediction.

You should also note that while you used robust standard errors to attempt to correct heteroscedasticity, this does not necessarily mean that you have fixed the problem of autocorrelation/serial correlation. You should test again with the Durbin-Watson test, and it may be necessary to difference the series to eliminate autocorrelation.

  1. As another answer mentioned, these tests cannot be applied on residuals. A residual is simply the difference between the forecasted value and actual value (also known as an error term). These values are distinct from the values in the time series itself.

  2. Cointegration is an indication of whether correlations between two time series are significant or simply due to change. It occurs when two time series are non-stationary but a linear combination of them makes them stationary. i.e. if you first-difference both and they are stationary, it indicates that they both follow an AR(1) process and your time series are cointegrated.

  3. Bear in mind that the ADF test may indicate stationarity, but this will depend on the lag length that has been specified. The p-value may be significant at certain lag lengths but insignificant at others. Moreover, while your residual graph still shows slight trends (e.g. from t 10-20). A true stationary series would look more like this, for example:

Stationary Time Series

My first course of action would be to test for autocorrelation once again, and you may need to apply a differencing technique depending on whether stationarity is still present or not.


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