By standard Semopy fixes the first loading of a factor as 1.0. For accounting for measurement errors of all observed variables, I would like the loading to be freely estimated instead of set to 1.0 (and fixating the covariance instead, if possible).
On the F.A.Q of semopy they write the following:
The problem is dealt by either fixing some of the covariances of a model, or by setting some loadings to a scalar value 1.0. The latter is the approach used by semopy and other SEM software. Only the first loading as listed by the "=~" operator is fixed. Note that it happens only if "=~" operator is used and if no other loadings in the right part were fixed by user to some scalar value. This mechanics can be disabled by naming each of the parameters in the right part of the equation, for example: eta =~ ay1 + by2 + c*y3
If I try to use this structure I receive the message:
WARNING:root:No fixed loadings for eta1
and the data processing never concludes (I've waited many minutes... and without the parameters-naming it takes 1 second).
Any ideas about why the f.a.q. suggestion doesn't work? or other alternatives?
My model and codes:
desc = """
eta1 =~ a*wr_acc + b*DI_dprime
eta2 =~ SR_score + SRC_score
dv ~ eta1 + eta2
eta1 ~~ eta2
"""
mod = semopy.Model(desc)
res = mod.fit(data)
est = mod.inspect()