[R] logLIk(lme(...))?

Spencer Graves @pencer@gr@ve@ @end|ng |rom e||ect|vede|en@e@org
Tue Aug 29 23:57:59 CEST 2023


I found my problem:


The following function gave llGp1, llGp2 and ll22:


logLik_lm <- function(object){
   res <- resid(object)
   n <- length(res)
   s2MLE <- sum(res^2)/n
   lglk <- (-n/2)*(log(2*pi*s2MLE)+1)
   lglk
}
logLik(fitGp1)
logLik(fitGp1)-logLik_lm(fitGp1)
llGp1 - logLik_lm(fitGp1)


logLik(fitGp2)
logLik(fitGp2)-logLik_lm(fitGp2)
llGp2 - logLik_lm(fitGp2)

logLik(fit22)
logLik(fit22)-logLik_lm(fit22)
ll22 -logLik_lm(fit22)


	  These differences were all 0 to within roundoff error.  That 
confirmed for me that I could safely compare logLik.lm and logLik.lme.


	  What I thought should have been a linear operation wasn't.  Please 
excuse the waste of your time.


	  Thanks,
	  Spencer Graves


On 8/29/23 11:15 AM, Spencer Graves wrote:
> Hello, all:
> 
> 
>        I have a dataset with 2 groups.  I want to estimate 2 means and 2 
> standard deviations.  I naively think I should be able to use lme to do 
> that, e.g., lme(y~gp, random=y~1|gp, method='ML').  I think I should get 
> the same answer as from lm(y~1, ...) within each level of group.  I can 
> get the same means, but I don't know how to extract the within-gp 
> standard deviations, and the sum of logLik for the latter two does not 
> equal the former.
> 
> 
> TOY EXAMPLE:
> 
> 
> library(nlme)
> 
> 
> set.seed(1)
> 
> 
> lmePblm <- data.frame(y=c(rnorm(5, 1, 2), rnorm(5,3,5)),
>                        gp=factor(rep(1:2, each=5)))
> 
> 
> fit22 <- lme(y~gp, lmePblm, random=~1|gp, method='ML')
> 
> 
> fitGp1 <- lm(y~1, lmePblm[lmePblm$gp==1, ])
> 
> 
> fitGp2 <- lm(y~1, lmePblm[lmePblm$gp==2, ])
> 
> 
> (ll22 <- logLik(fit22))
> 
> 
> (llGp1 <- logLik(fitGp1))
> 
> 
> (llGp2 <- logLik(fitGp2))
> 
> 
> # Why isn't (ll22 = llGp1+llGp2)?
> 
> 
> (ll22 - llGp1-llGp2)
> 
> 
> # And secondarily, how can I get the residual standard deviations
> # within each gp from fit22?
> 
> 
>        Thanks,
>        Spencer Graves
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list