I have a question about including single indicators of latent variables and also using
std.lv=TRUE for fixed factor scale setting. The way the syntax below is written, is the model specified correctly? The default is for the residuals for the single indicator latent variables to be fixed to 0, and for the latent variance to be fixed to 1, correct? When a mean structure is requested, I am a little confused by the the presentation of the observed value and the latent value (0) in the results.
I was under the impression that the defaults in place for cfa and sem in lavaan, while specifying
std.lv=T, while designating the single observed variables as single indicators of a latent construct would result in correct estimates in an identified model. I have seen some other ways of specifying models with single indicator latent constructs in lavaan, and so would just appreciate knowing that the way the model is specified is correct.
outcomesnomod<-'
assert=~w1ed_oa_as1 + w1ed_oa_as3 + w1ed_oa_as4 + w1ed_oa_as6 + w1ed_ra_as1 + w1ed_ra_as3 + w1ed_ra_as4 + w1ed_ra_as6
aggressO=~w1ed_oa_oag1 + w1ed_oa_oag3 + w1ed_ra_oag1 + w1ed_ra_oag3
AggressR=~ w1ed_oa_rag2 + w1ed_oa_rag4 + w1ed_ra_rag2 + w1ed_ra_rag4
neuAdult=~w1ed_oa_neu1 + w1ed_oa_neu3 + w1ed_ra_neu1 + w1ed_ra_neu3
neuComf=~ w1ed_oa_neu2 + w1ed_oa_neu4 + w1ed_ra_neu2 + w1ed_ra_neu4
OV =~ w1ov1 + w1ov2 + w1ov3
RV =~ w1rv1 + w1rv2 + w1rv3
OA=~oa_ave
RA=~ra_ave
accept =~ w1like
reject =~ w1dislike
pop=~ w1pop
unpop=~ w1notpop
depress =~ cesdmean
age1=~ age
OA~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender + age1
RA~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender + age1
OV~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender+ age1
RV~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender + age1
accept~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender + age1
reject~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender+ age1
pop~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender+ age1
unpop~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender+ age1
depress~ assert + aggressO + AggressR + neuAdult + neuComf + w1gender+ age1
'
#robust
fitoutcomesnomod<- sem(outcomesnomod, data=data, missing='fiml',
std.lv=TRUE, meanstructure=T, estimator="MLR",control=list(iter.max=100000000))
summary(fitoutcomesnomod, fit.measures = TRUE, standardized=TRUE, modindices = FALSE )