[R-sig-ME] reference for standard error of estimated variance components
Ben Bolker
bbolker at gmail.com
Sat Nov 16 02:43:32 CET 2013
Another option for diagnosing problems with the fit is to
compute the Hessian of the variance-covariance parameters, which
are fitted with a Cholesky-factor parameterization ... this
doesn't actually get you the uncertainty of the variance-covariance
matrices, but it gives something that is arguably more useful.
https://github.com/lme4/lme4/issues/120 has some useful machinery
written by Rune Haubo which we eventually hope to integrate into
the package.
This should be a lot cheaper than likelihood profiling too
(takes only O(p^2) function evaluations where p is the number
of model parameters)
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
dd <- update(fm1,devFunOnly=TRUE)
library(numDeriv)
h <- hessian(dd,getME(fm1,"theta"))
Various diagnostics:
rcond(h)
diag(solve(h))
On 13-11-15 08:10 PM, John Maindonald wrote:
> See help(mcmcsamp), which tells you that mcmcsamp() is no longer
> available, but gives a number of other recourses. For example:
>
>> library(DAAG) science1.lmer <- lmer(like ~ sex + PrivPub +
>> (1:school:class), data=science, na.action=na.exclude)
>> confint(science1.lmer)
> Computing profile confidence intervals ...
>> round(confint(science1.lmer), 2)
> Computing profile confidence intervals ... 2.5 % 97.5 % .sig01
> 0.42 0.71 .sigma 1.68 1.82 (Intercept) 4.40 5.04
> sexm -0.01 0.37 PrivPubpublic 0.05 0.78
>
> These are in the same ballpark as the estimates we gave in 'Data
> Analysis & Graphics Using R', CUP, 3rd edn 2010, p.316, using
> mcmcsamp():
>
> Compare
>> round(confint(science1.lmer)[1:2,]^2, 2) ## Convert to variances
> Computing profile confidence intervals ... 2.5 % 97.5 % .sig01 0.18
> 0.51 .sigma 2.83 3.30
>
> with mcmcsamp(), from a pre-1.0 version of lme4 0.148 0.43 2.84
> 3.28
>
> John Maindonald email: john.maindonald at anu.edu.au phone :
> +61 2 (6125)3473 fax : +61 2(6125)5549 Centre for Mathematics &
> Its Applications, Room 1194, John Dedman Mathematical Sciences
> Building (Building 27) Australian National University, Canberra ACT
> 0200.
>
>
> On 16/11/2013, at 10:49 AM, Jake Westfall <jake987722 at hotmail.com>
> wrote:
>
>> Hi all,
>>
>> Wondering if anyone knew off the top of their head, or could very
>> quickly locate, a reference describing how to compute the
>> variance/standard error of a variance component as, e.g., estimated
>> by lmer(). I am fully aware that this might not be a very sensible
>> thing to do because we strongly expect for the distribution of
>> these estimates to be asymmetric and etc. Let me explain my
>> motivation.
>>
>> I am interested in these standard errors for purely for
>> troubleshooting purposes; specifically, helping diagnose situations
>> where we have a bad model specification given the data at hand. I
>> find that in many situations, particularly those involving crossed
>> random effects, lmer() happily provides estimates for models that
>> include certain variance components that we know are in-principle
>> inestimable given the structure of the dataset.
>>
>> For example, random factors A and B are crossed, but there is only
>> 1 observation at each level of the crossing, so the A*B variance is
>> confounded with the residual variance, yet lmer() lists distinct
>> estimates for A*B variance and residual variance. Another example:
>> random A and random B are crossed, but B is nested in fixed X, yet
>> somehow lmer() will provide estimates for both the random A*X
>> interaction (which can be estimated fine) and also a random B*X
>> interaction (which cannot be).
>>
>> Furthermore, there is no error message indicating that anything
>> fishy is going on in these cases, and the estimated variances even
>> look rather sensible (I suspect it is doing something like
>> double-counting random terms that are confounded and thus providing
>> similar but non-identical estimates for the two confounded
>> variances, but I don't know). So a less experienced user may never
>> get any clue that the model does not make sense given the data.
>> (FYI, I report this behavior using lme4 version < 1.0, and have not
>> yet verified on version > 1.0, but my understanding is that if
>> anything the newer lme4 functions tend to provide *fewer* warnings
>> and errors rather than more, so I would be pretty surprised if
>> everything blows up the way it really ought to with these models in
>> the newest versions.)
>>
>> My suspicion is that if one were to compute the standard errors of
>> the confounded variance components, they would be unreasonably
>> large, and this might serve as the only obvious clue to many users
>> that all is not well. So I want to try this to see if it works as a
>> reasonably informative indicator of model misspecification.
>>
>> I was sure I would be able to find the variance formula I needed
>> from Littell et al. "SAS System for Mixed Models," but no luck so
>> far. Googling has also not turned it up yet, although some
>> searching remains to be done. So I thought I would ask here to see
>> if any of you had leads.
>>
>> Jake [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-sig-mixed-models at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
More information about the R-sig-mixed-models
mailing list