[R-sig-ME] p values with lmer (mcmcpvalue error)

Ben Bolker bbolker at gmail.com
Sat Apr 16 16:27:09 CEST 2011


On 11-04-16 09:29 AM, Douglas Bates wrote:
> On Sat, Apr 16, 2011 at 4:58 AM, Kaitlyn Gaynor <kaitlyng at gmail.com> wrote:
>> Hello,
> 
>> I am currently using lmer to make a fairly large model with 9 fixed
>> factors (8 of them with 2-4 levels, and 1 of them continuous) and 2
>> random factors, >1000 observations.  I realize there is a lot of
>> debate about p-values for parameter estimates but they’ve been
>> requested by a journal so I’m trying to calculate them.  I have been
>> trying to obtain p-values using the mcmcpvalue function:
> 
>> fit<-lmer(vig~Act+Height+FD+IGE+Pos.For+PR+Kin+PDDO+Rank+(1|Grp/Subj),
>> data=vigilance)
>> mcmcpvalue <- function(samp)
>> { std <- backsolve(chol(var(samp)),
>> cbind(0, t(samp)) - colMeans(samp),
>> transpose = TRUE)
>> sqdist <- colSums(std * std)
>> sum(sqdist[-1] > sqdist[1])/nrow(samp) }
>> markov1 <- mcmcsamp(fit, 5000)
>> HPDinterval(markov1)
> 
>> mcmcpvalue(as.matrix(markov1[,1]))
>> mcmcpvalue(as.matrix(markov1[,2]))

  I haven't looked carefully, but does this work better for you?

mcmcpvalue <- function(samp,type="fixef")
{
  s <- t(slot(samp,type))
  std <- backsolve(chol(var(s)),
                   cbind(0, t(s)) - colMeans(s),
                   transpose = TRUE)
  sqdist <- colSums(std * std)
  sum(sqdist[-1] > sqdist[1])/nrow(s)
}

mcmcpvalue(markov1)

  I can imagine that the structure of "merMCMC" objects (i.e. the
results of mcmcsamp()) has changed since the mcmcpvalue() function was
written.

  To sort this kind of problem out for yourself, use str(markov1) to see
what is contained in the object.




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