Skip to content

mcmcsamp shortening variable names; how can i turn this feature off?

2 messages · Andrew Gelman, Peter Dalgaard

#
I have written a function called mcsamp() that is a wrapper that runs 
mcmcsamp() and automatically monitors convergence and structures the 
inferences into vectors and arrays as appropriate.

But I have run into a very little problem, which is that mcmcsamp() 
shortens the variable names.  For example:

 > set.seed (1)
 > group <- rep (1:5,10)
 > a <- rnorm (5,-3,3)
 > y <- rnorm (50, a[group], 2)
 > fit <- lmer (y ~ 1 + (1 | group))
 > mcmcsamp(fit)
     (Intercept) log(sigma^2) log(grop.(In))
[1,]   -2.771979    0.6909418       1.750876
attr(,"mcpar")
[1] 1 1 1
attr(,"class")
[1] "mcmc"


I want "grop" in the above output to be "group", and I want "(In)" to be 
"(Intercept)".  For my purposes (fitting models in general settings) it 
is important to have descriptive variable names, and I gain nothing by 
restricting names to 14 characters.

Is there a way to turn this feature off?
Thanks.
#
Andrew Gelman <gelman at stat.columbia.edu> writes:
Looks like they've been run through abbreviate() (which I thought
would be called abbr(), but apparently not...)
Peter Dalgaard
       "PtrDl"

Unfortunately, the 2 parts have been abbreviated separately, so the
long names are lost (in fact never generated). I suppose that it could
be possible to hack Matrix:::abbrvNms so that a long version is
returned in names(colnames(mcmc.out)). You have the sources...

Given how close even atanh(Sbj.(I).Dys) is to filling up the label
field of a Trellis plot, I must say that I think there is a case for
abbreviating. Those names easily get *very* long.