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.

problems with simple ACE model

5 posts / 0 new
Last post
vadim's picture
Offline
Joined: 08/03/2024 - 16:47
problems with simple ACE model

Dear experts,

I am running a simple ACE model for twin analysis with age and gender as confounds (115 DZ pairs and 60 MZ pairs). I use the model from International Statistical Genetics Workshop:
https://ibg.colorado.edu/cdrom2022/day2/00_ACEvc_contin.R

When I run the model, I get the following results:

free parameters:
name matrix row col Estimate Std.Error A lbound ubound
1 interC intercept 1 1 1.5044971 0.64957699
2 betaS bS 1 1 -0.5795265 0.12804871
3 betaA bA 1 1 -0.0236737 0.01893570
4 VA11 VA 1 1 0.9179206 0.34811542
5 VC11 VC 1 1 -0.4279909 0.32400691
6 VE11 VE 1 1 0.4132866 0.05129183

confidence intervals:
lbound estimate ubound note
ACEvc.VarC[1,4] 0.3595914 1.0162799 1.7306621
ACEvc.VarC[1,5] -1.1498335 -0.4738520 0.1515639
ACEvc.VarC[1,6] 0.3540964 0.4575721 0.5850078

CI details:

        parameter  side      value      fit diagnostic statusCode            method   interC      betaS       betaA      VA11       VC11      VE11
1 ACEvc.VarC[1,4] lower  0.3595914 921.3400    success         OK neale-miller-1997 1.397043 -0.5711129 -0.02000247 0.3277627  0.1253068 0.4584169
2 ACEvc.VarC[1,4] upper  1.7306621 921.3660    success         OK neale-miller-1997 1.643095 -0.5960471 -0.02823600 1.6357127 -1.0803400 0.3897642
3 ACEvc.VarC[1,5] lower -1.1498335 921.3463    success         OK neale-miller-1997 1.655002 -0.5904675 -0.02897582 1.6119600 -1.0772610 0.4021853
4 ACEvc.VarC[1,5] upper  0.1515639 921.3503    success         OK neale-miller-1997 1.382750 -0.5690776 -0.01958674 0.3453931  0.1397735 0.4370419
5 ACEvc.VarC[1,6] lower  0.3540964 921.3554    success         OK neale-miller-1997 1.474451 -0.5694362 -0.02322113 1.1770877 -0.5488576 0.3444075
6 ACEvc.VarC[1,6] upper  0.5850078 921.3530    success         OK neale-miller-1997 1.522639 -0.5798345 -0.02417389 0.6512583 -0.2910815 0.5077355

Critically, I also get the following error:
Running CE with 5 parameters
Error: The job for model 'CE' exited abnormally with the error message: fit is not finite (The continuous part of the model implied covariance (loc2) is not positive definite in data 'DZ.data' row 59. Detail:
covariance = matrix(c( # 2x2
-0.014704266851264, -0.427990888364092
, -0.427990888364092, -0.014704266851264), byrow=TRUE, nrow=2, ncol=2)
)

Following suggestion in this post: https://openmx.ssri.psu.edu/node/4593 I set the lbound=1e-4 to covC.
As a result, the error disappears, but the results become very different to those I got before. In addition, I am not sure how to treat the confidence interval of VA, given that it is constrained.

free parameters:
name matrix row col Estimate Std.Error A lbound ubound
1 interC intercept 1 1 1.41722921 0.67171698
2 betaS bS 1 1 -0.57166848 0.13325128
3 betaA bA 1 1 -0.02073634 0.01960500
4 VA11 VA 1 1 0.48480850 0.25577544
5 VC11 VC 1 1 0.00010000 0.24940786 ! 1e-04!
6 VE11 VE 1 1 0.42938467 0.05552459

confidence intervals:
lbound estimate ubound note
ACEvc.VarC[1,4] 0.227153 0.5302549731 NA !!!
ACEvc.VarC[1,5] NA 0.0001093741 0.2708948 !!!
ACEvc.VarC[1,6] NA 0.4696356528 NA !!!

CI details:

        parameter  side        value      fit            diagnostic statusCode            method   interC      betaS       betaA      VA11      VC11      VE11
1 ACEvc.VarC[1,4] lower 2.271530e-01 923.3903               success         OK neale-miller-1997 1.383110 -0.5685890 -0.01955053 0.2076383 0.2297972 0.4766547
2 ACEvc.VarC[1,4] upper 6.390220e-01 923.3817 active box constraint         OK neale-miller-1997 1.406398 -0.5723281 -0.02036513 0.6334840 0.0001000 0.3577496
3 ACEvc.VarC[1,5] lower 9.411526e-05 923.4075 active box constraint         OK neale-miller-1997 1.417229 -0.5716684 -0.02073514 0.5589758 0.0001000 0.5034512
4 ACEvc.VarC[1,5] upper 2.708948e-01 923.3912               success         OK neale-miller-1997 1.359038 -0.5664194 -0.01889902 0.2312665 0.2535373 0.4511215
5 ACEvc.VarC[1,6] lower 3.606429e-01 923.4018 active box constraint         OK neale-miller-1997 1.412693 -0.5717267 -0.02061276 0.6350086 0.0001000 0.3582465
6 ACEvc.VarC[1,6] upper 6.013603e-01 923.3829 active box constraint         OK neale-miller-1997 1.444580 -0.5744477 -0.02149105 0.3475080 0.0001000 0.5243773

How should I interpret these results? Which of the models is correct? According to Falconer’s formula, h-square is about 1, which is close to the first result. But in the first results, not only that I get an error, but there is also negative VC. I would very much appreciate your help .

Best wishes,
Vadim

AdminNeale's picture
Offline
Joined: 03/01/2013 - 14:09
Bad starting values?

Hi

When the model is rerun to fit CE, I suspect that it is doing so from the solution of the ACE model, and the C component happens to be negative, so the CE model has a likelihood that cannot be computed. To avoid this, modify the ACE model before it was run, instead of the result of running the ACE model.

vadim's picture
Offline
Joined: 08/03/2024 - 16:47
Thank you very much for your

Thank you very much for your answer, but can you please elaborate a bit more. I will very appreciate it.
The fitACE is indeed passed as the parameter to estimation of CE.
fitCE <- omxSetParameters(fitACE, labels = "VA11", values = 0, free = F, name = "CE")
fitCE <- mxRun( fitCE, intervals=F )
So, what should I modify?

AdminRobK's picture
Offline
Joined: 01/24/2014 - 12:15
try this

Try this:

fitCE <- omxSetParameters(modelACE, labels = "VA11", values = 0, free = F, name = "CE")
fitCE <- mxRun( fitCE, intervals=F )
vadim's picture
Offline
Joined: 08/03/2024 - 16:47
Thank you for your help.

Thank you for your help.
When I run the original code (without lbound constraint) after I replaced my two lines with your code, the error disappeared. But the variance result is the same as before (with the negative variance VC):
name matrix row col Estimate Std.Error A
1 interC intercept 1 1 1.53784349 0.65261107
2 betaS bS 1 1 -0.58236697 0.12811632
3 betaA bA 1 1 -0.02468047 0.01903097
4 betaM bM 1 1 0.02468528 0.04961712
5 VA11 VA 1 1 0.92411484 0.35230753
6 VC11 VC 1 1 -0.43334699 0.32837219
7 VE11 VE 1 1 0.41226047 0.05112496