## You are here

The OpenMx website will be down for maintenance from 9 AM EDT on Tuesday, September 17th, and is expected to return by the end of the day on Wednesday, September 18th. During this period, the backend will be updated and the website will get a refreshed look.

# How do I get a CI on a parameter derived from a model?

3 posts / 0 new
Offline
Joined: 07/31/2009 - 14:25
How do I get a CI on a parameter derived from a model?

umxSummary reports the rA, rC, and rE for models. But this is done in the summary, and doesn't include CIs by default.

It’s computed as

solve(sqrt(I*A)) %*% A %*% solve(sqrt(I*A))

So you can add an mxAlgebra computing that into the model, then do mxSE on that

m2 = mxModel(m1,
mxAlgebra(name="ra", solve(sqrt(top.I*top.A)) %*% top.A %*% solve(sqrt(top.I*top.A)))
)
m2 = mxRun(m2)
mxSE(ra, m2)

That returns SEs, and CI= ± 1.96 * SE

best, t

Offline
Joined: 03/01/2013 - 14:09
mxSE vs mxCI

Note that correlations (phenotypic, genetic, whatever) are defined on a -1 to +1 scale. Also note that a large correlation has a smaller SE than has a small correlation. In finite samples, the error distribution of a correlation can be asymmetric, with a narrower interval on the side nearer 1 (or -1 if the estimated correlation is negative).

mxCI takes longer to run than mxSE, but the results of mxCI, which permits asymmetric confidence intervals, can be more informative.

Offline
Joined: 07/31/2009 - 15:26
confint

The standard S3 method confint is also available. This use is like

confint(yourModel)
# or
confint(yourModel, level=.82) # for 82% confidence intervals
# or
confint(yourModel, level=.70, parm='Greg') # 70% CI on a parameter named 'Greg'

However, these confidence intervals are based on the standard errors (Wald-type CIs), so the same caveats as Mike Neale alluded to still apply. In my experience, SE-based CIs are often "good enough" for unbounded parameters, but profile likelihood CIs (e.g. from mxCI) are far superior for bounded parameters like variances.