¿Cómo extraigo la parte de Correlación de efectos fijos de la salida de lmer?

Cuando tiene un modelo multinivel con muchos factores e interacciones, el tamaño de la correlación de la matriz de efectos fijos puede ser bastante grande y poco claro.

Puedo usar elsymbolic.cor=T parámetro en el método de impresión para hacer una impresión más clara del resumen como a continuación:

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)

Esto traza una matriz de correlación algo más clara para matrices grandes. Aunque la matriz de este ejemplo no es tan grande. Pero sería bueno si pudiera trazar un mapa de calor de las correlaciones.
¿Cómo extraigo la correlación de los efectos fijos para poder hacer este mapa de calor?

EDITAR:

Aquí está la función que creé gracias a las respuestas.

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)
}

Tienes que descargar la función my.plotcorr desdeaquí. La gráfica resultante del ejemplo anterior usando el comandofixeff.plotcorr(mod) ahora se ve así:

Respuestas a la pregunta(3)

Su respuesta a la pregunta