Jak wyodrębnić korelację części efektów stałych lmera

Kiedy masz model wielopoziomowy z wieloma czynnikami i interakcjami, rozmiar korelacji macierzy efektów stałych może stać się dość duży i niejasny.

Mogę użyćsymbolic.cor=T parametr w metodzie drukowania, aby wyraźniej wydrukować podsumowanie, jak poniżej:

ratbrain <-
within(read.delim("http://www-personal.umich.edu/~bwest/rat_brain.dat"),
{
treatment <- factor(treatment,
labels = c("Basal", "Carbachol"))
region <- factor(region,
labels = c("BST", "LS", "VDB"))
})

print(mod<-lmer(activate ~ region * treatment + (0 + treatment | animal),ratbrain),symbolic.cor=T)

Przedstawia to nieco jaśniejszą macierz korelacji dla dużych macierzy. Chociaż matryca tego przykładu nie jest tak duża. Ale byłoby miło, gdybym mógł narysować mapę korelacji.
Jak wyodrębnić korelację stałych efektów, abym mógł utworzyć tę mapę ciepła?

EDYTOWAĆ:

Oto funkcja, którą stworzyłem dzięki odpowiedziom.

fixeff.plotcorr<-function(mod,...)
{
  #require(GGally) # contains another correlation plot using ggplot2
  require(lme4)

  fixNames<-names(fixef(mod))

  # Simon O'Hanlon's answer:
  # so <- summary(mod)
  # df<-as.matrix(so@vcov@factors$correlation) for version lme4<1.0
  # df<-as.matrix(so$vcov@factors$correlation)  # lme4 >= 1.0

  df<-as.matrix(cov2cor(vcov(mod))) #Ben Bolker's solution

  rownames(df)<-fixNames
  colnames(df)<-abbreviate(fixNames, minlength = 11)

  colsc=c(rgb(241, 54, 23, maxColorValue=255), 'white', rgb(0, 61, 104, maxColorValue=255))
  colramp = colorRampPalette(colsc, space='Lab')
  colors = colramp(100)
  cols=colors[((df + 1)/2) * 100]
  # I'm using function my.plotcorr which you can download here:
  # http://hlplab.wordpress.com/2012/03/20/correlation-plot-matrices-using-the-ellipse-library/
  my.plotcorr(df, col=cols, diag='none', upper.panel="number", mar=c(0,0.1,0,0),...)

  # Another possibility is the corrplot package:
  # cols <- colorRampPalette(c("#67001F", "#B2182B", "#D6604D", "#F4A582", "#FDDBC7", 
  #                              "#FFFFFF", "#D1E5F0", "#92C5DE", "#4393C3", "#2166AC", "#053061"))
  # require(corrplot,quiet=T)
  # corrplot(df, type="upper", method="number", tl.pos='tl', tl.col='black', tl.cex=0.8, cl.pos='n', col=cols(50))
  # corrplot(df,add=TRUE,  method='ellipse', type='lower', tl.pos='n', tl.col='black', cl.pos='n', col=cols(50), diag=FALSE)
}

Musisz pobrać funkcję my.plotcorr ztutaj. Wynikowy wykres powyższego przykładu za pomocą poleceniafixeff.plotcorr(mod) teraz wygląda tak:

questionAnswers(3)

yourAnswerToTheQuestion