[R] How to extract R{i} from lme object?
Sundar Dorai-Raj
sundar.dorai-raj at pdf.com
Tue Mar 4 22:15:35 CET 2003
Peng wrote:
> Hi, lme() users,
>
> Can some one tell me how to do this.
> I model Orthodont with the same G for random
> variables, but different R{i}'s for boys and girls, so
> that I can get sigma1_square_hat for boys and
> sigma2_square_hat for girls.
>
> The model is Y{i}=X{i}beta + Z{i}b + e{i}
> b ~ iid N(0,G) and e{i} ~ iid N(0,R{i}) i=1,2
> orth.lme <- lme(distance ~ Sex * age, data=Orthodont,
> random=~age|Subject, weights=varIdent(form=~1|Sex),
> method="ML")
>
> I can see the numbers I need from summary(), but how
> can I extract them? I tried several functions in nlme,
> but I cannot find a correct one.
>
> Peng
>
Peng,
Is this what you need?
R> data(Orthodont)
R> orth.lme <- lme(distance ~ Sex * age,
+ data=Orthodont,
+ random=~age|Subject,
+ weights=varIdent(form=~1|Sex),
+ method="ML")
R> orth.lme$modelStruct$varStruct
Variance function structure of class varIdent representing
Male Female
1.0000000 0.4112708
R> rcov.unscaled <- as.matrix(orth.lme$modelStruct$reStruct[[1]])
R> rcov.scaled <- rcov.unscaled * orth.lme$sigma^2
R> Stdev <- sqrt(diag(rcov.scaled))
R> Stdev
(Intercept) age
1.7914848 0.1408001
R>
If there's nesting, look for more elements in $reStruct.
Regards,
Sundar
More information about the R-help
mailing list