# CIs are NA but their status is OK - is this OK?

4 posts / 0 new
Offline
Joined: 08/18/2013 - 15:33
CIs are NA but their status is OK - is this OK?

Hello OpenMx community,

I am trying to compute confidence intervals for the parameters that I define as matrix algebra
summary(model) gives the following (only CIs showing):

confidence intervals:
lbound     estimate ubound note
ACE.Variance_components[1,1]        NA 6.601569e-01     NA  !!!
ACE.Variance_components[2,1]        NA 3.638004e-01     NA  !!!
ACE.Variance_components[3,1]        NA 7.779408e-01     NA  !!!
ACE.Variance_components[4,1]        NA 3.401663e-01     NA  !!!
ACE.Variance_components[5,1]        NA 3.728521e-01     NA  !!!
ACE.Variance_components[6,1]        NA 5.272372e-01     NA  !!!
ACE.Variance_components[7,1]        NA 6.268351e-01     NA  !!!
ACE.Variance_components[8,1]        NA 4.262247e-01     NA  !!!

summary(model, verbose = TRUE) gives the following output (also truncated):

CI details:
parameter  side     value      fit              diagnostic statusCode            method ACE.mean[1,1]
1  ACE.Variance_components[1,1] lower 0.6308384 342452.3   active box constraint         OK neale-miller-1997  -0.005694432
2  ACE.Variance_components[1,1] upper 0.6893814 342452.3   active box constraint         OK neale-miller-1997  -0.005786365
3  ACE.Variance_components[2,1] lower 0.3225724 342452.3   active box constraint         OK neale-miller-1997  -0.005760040
4  ACE.Variance_components[2,1] upper 0.4051682 342452.3   active box constraint         OK neale-miller-1997  -0.005729072
5  ACE.Variance_components[3,1] lower 0.7592378 342452.3   active box constraint         OK neale-miller-1997  -0.005746466
6  ACE.Variance_components[3,1] upper 0.7939006 342452.3   active box constraint         OK neale-miller-1997  -0.005738854
7  ACE.Variance_components[4,1] lower 0.3079076 342452.3   active box constraint         OK neale-miller-1997  -0.005746881
8  ACE.Variance_components[4,1] upper 0.3735943 342452.3   active box constraint         OK neale-miller-1997  -0.005738552
9  ACE.Variance_components[5,1] lower 0.3407635 342452.3   active box constraint         OK neale-miller-1997  -0.005762424
10 ACE.Variance_components[5,1] upper 0.3928472 349204.8 alpha level not reached         OK neale-miller-1997  -0.005742996

My questions are:
1) Can I use the intervals that have status OK or OK/green?
2) Is there some documentation that explains the status codes of CIs?

Thank you,
Ivan

Offline
Joined: 01/24/2014 - 12:15
optimizer status codes & confidence-limit diagnostics
My questions are:
1) Can I use the intervals that have status OK or OK/green?

You probably shouldn't. While it's true that the optimizer's status code is "OK", the diagnostic is telling you that there are active box constraints at the solutions of the confidence-limit searches, meaning that the confidence intervals may be wrong because they are too narrow. That's why the limits are reported as NA in the vanilla summary() output. Getting rid of unnecessary lbounds in your mxMatrix() calls might resolve the issue. Also, if you're not currently using SLSQP as the optimizer, try switching to it.

2) Is there some documentation that explains the status codes of CIs?

Yes. The optimizer status codes you're seeing in the verbose summary() output have the same meaning as they always do.
See the man page for as.statusCode().

Offline
Joined: 08/18/2013 - 15:33
---

Thank you, this is very helpful.
Do SE's suffer from this in the same way?

Offline
Joined: 01/24/2014 - 12:15
SEs
Do SE's suffer from this in the same way?

No. SEs are a function of the second partial derivatives of the loglikelihood at the ML solution, and do not require additional searches by the optimizer. However, confidence intervals calculated from SEs do not have the attractive theoretical properties that profile-likelihood confidence intervals do. Specifically, profile-likelihood confidence intervals (1) respect constraints on the parameter space, (2) are not necessarily symmetric around the point estimate, and (3) are invariant under transformation of the parameter.

If you're going to form confidence intervals from the SEs, you should at least get robust SEs first, from imxRobustSE().