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@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.

______________________________________________
R-help@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.

Reply via email to