trivariate cholesky to estimate residual variance

9 views
Skip to first unread message

Holly Poore

unread,
Jan 16, 2026, 11:32:13 AM (7 days ago) Jan 16
to Genomic SEM Users
Hi all - 

I'm trying to estimate the residual variance of problematic alcohol use (pau) after accounting for what it shares with internalizing and externalizing. I've set up the trivariate cholesky like this: 

model <- "INT =~ 1*int + ext_ + pau
          EXT =~ 1*ext + pau
          SUD =~ 1*pau

          INT ~~ NA*INT
          EXT ~~ NA*EXT
          SUD ~~ NA*SUD
         
          INT ~~ 0*EXT
          INT ~~ 0*SUD
          EXT ~~ 0*SUD
         
          int ~~ 0*int
          ext ~~ 0*ext
          pau ~~ 0*pau
         
          int ~~ 0*ext_noalcp
          int ~~ 0*pau
          ext_noalcp ~~ 0*pau"

pau <- usermodel(covstruc = LDSCoutput, model = model, estimation = "DWLS",
                    CFIcalc = TRUE, std.lv = TRUE, imp_cov = FALSE)

I'm taking the variance of the SUD factor as the residual variance of pau, but those estimates are higher than I was expecting and I'm wondering if I'm parameterizing the model incorrectly. I'd appreciate any input!

Thank you,
Holly

Elliot Tucker-Drob

unread,
Jan 16, 2026, 2:37:50 PM (7 days ago) Jan 16
to Holly Poore, Genomic SEM Users
are INT and int, and EXT and ext different variables? That variable naming is a big confusing with respect to what you intend to model. Also you have ext_ in one spot but then refer to ext in another. Is that a typo? Later you also have ext_noalcp. Is that yet another variable?
The EXT factor seems to have only two indicators so it is not identified without a further constraint.


--
You received this message because you are subscribed to the Google Groups "Genomic SEM Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to genomic-sem-us...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/genomic-sem-users/5b5f6aad-486a-477c-9e94-9e527031ea70n%40googlegroups.com.

Holly Poore

unread,
Jan 16, 2026, 8:05:45 PM (7 days ago) Jan 16
to Genomic SEM Users
Apologies for the typos - I was trying to edit my variable names to be more readable, but accidentally introduced typos. the correct syntax is below:

model <- "INT =~ 1*int + ext + pau

          EXT =~ 1*ext + pau
          SUD =~ 1*pau

          INT ~~ NA*INT
          EXT ~~ NA*EXT
          SUD ~~ NA*SUD
         
          INT ~~ 0*EXT
          INT ~~ 0*SUD
          EXT ~~ 0*SUD
         
          int ~~ 0*int
          ext ~~ 0*ext
          pau ~~ 0*pau
         
          int ~~ 0*ext
          int ~~ 0*pau
          ext ~~ 0*pau"


pau <- usermodel(covstruc = LDSCoutput, model = model, estimation = "DWLS",
                    CFIcalc = TRUE, std.lv = TRUE, imp_cov = FALSE)

yes, int and ext are gwas indicators. I thought I could get an estimate of the residual variance of pau by freely estimating the factor variances (of the SUD factor specifically), but perhaps that is not correct?
choesky_ex.png

Elliot Tucker-Drob

unread,
Jan 16, 2026, 8:40:01 PM (7 days ago) Jan 16
to Holly Poore, Genomic SEM Users
Ah yes. Ok that makes sense. The model looks good to me.  It’s always good to see the input ldsc object and output to make sure it looks as expected. But given what you’ve shared it all looks appropriate from my perspective. 


Reply all
Reply to author
Forward
0 new messages