As a financial institution, we often run into analysis of time series data. A lot of times we end up doing regression using time series variables. As this happens, we often encounter residuals with time series structure that violates basic assumption of independent errors in OLS regression. Recently we are building another model in which I believe we have regression with autocorrelated errors.The residuals from linear model have lm(object)
has clearly a AR(1) structure, as evident from ACF and PACF. I took two different approaches, the first one was obviously to fit the model using Generalized least squares gls()
in R. My expectation was that the residuals from gls(object) would be a white noise (independent errors). But the residuals from gls(object)
still have the same ARIMA structure as in the ordinary regression. Unfortunately there is something wrong in what I am doing that I could not figure out. Hence I decided to manually adjust the regression coefficients from the linear model (OLS estimates). Surprisingly that seems to be working when I plotted the residuals from adjusted regression (the residuals are white noise). I really want to use gls()
in nlme
package so that coding will be lot simpler and easier. What would be the approach I should take here? Am I supposed to use REML? or is my expectation of non-correlated residuals (white noise) from gls() object wrong?
gls.bk_ai <- gls(PRNP_BK_actINV ~ PRM_BK_INV_ENDING + NPRM_BK_INV_ENDING,
correlation=corARMA(p=1), method='ML', data = fit.cap01A)
gls2.bk_ai <- update(gls.bk_ai, correlation = corARMA(p=2))
gls3.bk_ai <- update(gls.bk_ai, correlation = corARMA(p=3))
gls0.bk_ai <- update(gls.bk_ai, correlation = NULL)
anova(gls.bk_ai, gls2.bk_ai, gls3.bk_ai, gls0.bk_ai)
## looking at the AIC value, gls model with AR(1) will be the best bet
acf2(residuals(gls.bk_ai)) # residuals are not white noise
Is there something wrong with what I am doing???????