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

Posted on
Picture of user. tbates Joined: 07/31/2009
Forums
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

Replied on Wed, 03/25/2020 - 11:00
Picture of user. AdminNeale Joined: 03/01/2013

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.

Replied on Thu, 03/26/2020 - 10:05
Picture of user. mhunter Joined: 07/31/2009

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.