You are here

Not getting rA with umxACEv and a warning

3 posts / 0 new
Last post
noamm's picture
Offline
Joined: 10/10/2018 - 17:20
Not getting rA with umxACEv and a warning

Hi,

I'm using umxACEv to check correlations between ACE components of 4 characteristics.
The model runs without a problem, and I get correlations for C and E components, but not for A, and I get the following warning:

Warning message:
In sqrt(I * A) : NaNs produced

I don't see something suspicious with the A std paths so I have no idea how to start finding out what might be the problem and would appreciate your help!

multiArcs <- umxACEv(selDVs = c("distArch1", "distArch2", "distArch3", "distArch4"), sep = "_", selCovs = "sex",
              dzData = MZs, mzData = DZs,addStd = TRUE)
umxSummaryACEv(multiArcs, std=TRUE, showRg = TRUE,extended=T)
 
ACEv -2 × log(Likelihood) = 9998.1
Standardized solution
 
 
|           |    A1|A2   |A3    |A4    |    C1|C2    |C3   |C4   |    E1|E2    |E3   |E4   |
|:----------|-----:|:----|:-----|:-----|-----:|:-----|:----|:----|-----:|:-----|:----|:----|
|distArch1_ | -0.39|NA   |NA    |NA    |  0.80|NA    |NA   |NA   |  0.59|NA    |NA   |NA   |
|distArch2_ | -0.41|0.21 |NA    |NA    |  0.20|0.2   |NA   |NA   | -0.14|0.59  |NA   |NA   |
|distArch3_ |  0.54|0.19 |-0.85 |NA    | -0.76|-0.18 |1.03 |NA   | -0.32|-0.33 |0.82 |NA   |
|distArch4_ |  0.37|0.1  |-0.09 |-0.63 | -0.65|-0.15 |0.32 |0.95 | -0.29|-0.2  |0.13 |0.68 |
Means: Intercepts from model$top$expMean
 
 
|          | distArch1_1| distArch2_1| distArch3_1| distArch4_1| distArch1_2| distArch2_2| distArch3_2| distArch4_2|
|:---------|-----------:|-----------:|-----------:|-----------:|-----------:|-----------:|-----------:|-----------:|
|intercept |        6.06|        8.14|        7.64|        6.52|        6.06|        8.14|        7.64|        6.52|
Unstandardized path coefficients
 
 
|           |    A1|A2   |A3    |A4    |    C1|C2    |C3   |C4  |    E1|E2    |E3   |E4   |
|:----------|-----:|:----|:-----|:-----|-----:|:-----|:----|:---|-----:|:-----|:----|:----|
|distArch1_ | -1.41|     |      |      |  2.90|      |     |    |  2.14|      |     |     |
|distArch2_ | -1.16|0.47 |      |      |  0.57|0.43  |     |    | -0.39|1.3   |     |     |
|distArch3_ |  1.51|0.41 |-1.82 |      | -2.13|-0.39 |2.21 |    | -0.88|-0.72 |1.75 |     |
|distArch4_ |  1.09|0.23 |-0.21 |-1.47 | -1.89|-0.34 |0.72 |2.2 | -0.85|-0.46 |0.3  |1.59 |
Genetic correlations
 
 
|           |rA1 |rA2 |rA3 |rA4 |   rC1|rC2   |rC3  |rC4 |   rE1|rE2   |rE3  |rE4 |
|:----------|:---|:---|:---|:---|-----:|:-----|:----|:---|-----:|:-----|:----|:---|
|distArch1_ |    |    |    |    |  1.00|      |     |    |  1.00|      |     |    |
|distArch2_ |    |    |    |    |  0.51|1     |     |    | -0.23|1     |     |    |
|distArch3_ |    |    |    |    | -0.84|-0.4  |1    |    | -0.45|-0.48 |1    |    |
|distArch4_ |    |    |    |    | -0.75|-0.34 |0.33 |1   | -0.46|-0.32 |0.18 |1   |
Standardized variance-based models may yield negative variances...
[1] "?umxPlotACEv options: std=, means=, digits=, strip_zero=, file=, min=, max ="
Warning message:
In sqrt(I * A) : NaNs produced
Leo's picture
Leo
Offline
Joined: 01/09/2020 - 14:36
some of your A variances are

some of your A variances are negative (first non-NA row of each column) whereas this is not the case with C and E. The approach you use, direct symmetric approach allows for negative variances as it says in the output and this might interfere with estimating correlations. See Verhulst (2019) paper for discussion. If you do not want to bother, just go for Cholesky (umxACE without the v) which forces variances to be positive.

AdminNeale's picture
Offline
Joined: 03/01/2013 - 14:09
MZ & DZ data flipped?

I think the reason the A variances turn out negative may be because the MZ data are supplied as the DZ data, and vice versa.

multiArcs <- umxACEv(selDVs = c("distArch1", "distArch2", "distArch3", "distArch4"), sep = "_", selCovs = "sex",
              dzData = MZs, mzData = DZs,addStd = TRUE)

should perhaps be:

multiArcs <- umxACEv(selDVs = c("distArch1", "distArch2", "distArch3", "distArch4"), sep = "_", selCovs = "sex",
              dzData = DZs, mzData = MZs,addStd = TRUE)

Unless the mzdata were labeled as DZs etc...?