[R-sig-ME] Retrieve autocorrelation-corrected errors from gls (nlme) or gamm (mgcv)

Daniel Malter daniel at umd.edu
Tue Aug 21 22:23:43 CEST 2012


Hi, 

In the example below, I am modeling the dependent variable Y as a function of X when the errors are autoregressive at the first lag.  There is a number of ways/functions with which to model this. arima (tseries), gls (nlme), and gamm should produce similar results in the simulated example below, and they do. 

However, I need the residuals from this analysis and both gls and gamm seem to return the errors before correction for autocorrelation, whereas arima returns the corrected errors (i.e., the estimate of the innovation). My question is whether there is an easy way to retrieve the corrected errors from gamm or gls. My real data are panel data with AR3 errors for which I model nonlinear effects of the independent variables on the dependent variable. Hand-computing the appropriate errors would be painful. 

#simulate data with AR1 errors 

set.seed(394857395) 
e<-rnorm(101) 
e<-e[2:101]+0.5*e[1:100] 
x<-rnorm(100) 
y<-x+e 

#OLS for comparison 
reg<-lm(y~x) 
summary(reg) 
pacf(residuals(reg)) 

#arima 
require(tseries) 
reg1<-arima(y,order=c(1,0,0),xreg=x) 
reg1 

#gls 
require(nlme) 
reg2<-gls(y~x,correlation=corAR1()) 
summary(reg2) 

#gamm 
require(mgcv) 
reg3<-gamm(y~s(x),correlation=corAR1()) 
summary(reg3$lme) 

par(mfcol=c(1,3)) 
pacf(residuals(reg1),main="ARIMA",lag.max=10) 
pacf(residuals(reg2),main="GLS",lag.max=10) 
pacf(residuals(reg3$lme),main="GAMM",lag.max=10) 


Thanks, 
Daniel 



More information about the R-sig-mixed-models mailing list