[R-sig-ME] [FORGED] Re: Question about gls

Rolf Turner r.turner at auckland.ac.nz
Fri Mar 23 22:52:34 CET 2018


On 24/03/18 08:58, Andrzej Galecki wrote:

> Hi Louise,
> 
> One possible way ...
> 
> mSt <- fit.gls$modelStruct
> cSt <- mSt$corStruct
> coef(cSt, unconstrained = FALSE)
> 
> #       Phi
> # 0.1748786

Not exactly obvious, but, is it?  How on earth would one ever figure 
this out, except by appealing to r-sig-mixed-models?

Looking at str(fit.gls) one sees that there is a (list) component 
"modelStruct" and that this component in turn has a component 
"corStruct".  If one is an optimist, one might try

     fit.gls$modelStruct$corStruct

which (mirabile dictu!) gives:

Correlation structure of class corAR1 representing
       Phi
0.1748786

Again if one is an optimist, one might try stripping away all the 
unwanted baggage by doing

     as.vector(fit.gls$modelStruct$corStruct)

giving:

[1] 0.3533897

Bingo.

Still it's all pretty obscure.  And typical of the obfuscation that 
results from using S4 classes and methods.

cheers,

Rolf

> 
> On Fri, Mar 23, 2018 at 3:27 PM, Louise Ryan <Louise.M.Ryan at uts.edu.au>
> wrote:
> 
>> Hi there,
>>
>> I am using your function gls in R to fit some AR models (it is part of a
>> larger thing I am trying to do). I can see from the printed output that the
>> function is estimating the AR parameter.  But I CANNOT for the life of me
>> figure out how to extract this parameter so I can use it for something else.
>>
>> Here’s a bit of code that simulates some data and runs the model.
>>
>> #####
>> # Set true parameter values:
>> beta0True <- 0.3
>> beta1True <- 1.6
>> sigmaTrue <- 0.5
>> rhoTrue <- 0.2
>>
>> # Generate data:
>> set.seed(1)
>> n <- 500
>> x <- seq(0,1,length=n)
>> epsilon <- rep(NA,n)
>> epsilon[1] <- sigmaTrue*rnorm(1)
>> for (i in 2:n) {epsilon[i] <- rhoTrue*epsilon[i-1] + sigmaTrue*rnorm(1)}
>> y <- beta0True + beta1True*x + epsilon
>>
>> fit.gls <- gls(y~x,  correlation=corAR1())
>> print(summary(fit.gls))
>> ###########################
>>
>> For my little simulation, the parameter Phi is being estimated as .1748786.
>>
>> I have looked at attributes(fit.gls) and just cannot figure out where this
>> estimate is stored!
>>
>> I’d appreciate your help!



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