Interpretation of estimates from a SEM without intercepts I am building a model using structural equation modeling in R with the lavaan package. There are only observed variables (no latent variables) and 5000 observations with which to fit the model. I use this kind of model because of the multicolinearity among the variables in the dataset.
Here is the code that I used:
library(lavaan)

model <- '  
                SEP ~ Age_Gest + MOTCOG
                MOTCOG ~ Age_Gest + CMU + CSPTOT + SEXE + Zs_poids
                Zs_poids ~ SEXE + JUMEAU + Age_Gest
                Age_Gest ~ JUMEAU + CMU + CSPTOT
                SEP ~ CMU + CSPTOT + URB + Zs_poids 
                CSPTOT ~ URB 
                CMU ~ CSPTOT
'
Divorce[, c("SEP","MOTCOG","CMU","CSPTOT")] <- 
     lapply(Divorce[, c("SEP","MOTCOG","CMU","CSPTOT")], ordered)

fit1 <- sem(model1, data=Divorce, link="logit")



*

*Binary variables (capital letters): SEP, MOTCOG, CMU, CSPTOT, SEXE, JUMEAU, URB.

*Continuous variables (lower case letters): Age_Gest and Zs_poids.
I use the ordered function to define the binary variables used as endogenous variables.
Using this code, the model converged and the results look fine. However, when I add the intercepts, 
modelbis <- '  
             # regressions
                SEP ~ Age_Gest + MOTCOG
                MOTCOG ~ Age_Gest + CMU + CSPTOT + SEXE + Zs_poids
                Zs_poids ~ SEXE + JUMEAU + Age_Gest
                Age_Gest ~ JUMEAU + CMU + CSPTOT
                SEP ~ CMU + CSPTOT + URB + Zs_poids 
                CSPTOT ~ URB 
                CMU ~ CSPTOT
             # intercepts
                SEP ~ 1
                MOTCOG ~ 1 
                Zs_poids ~ 1
                Age_Gest ~ 1
                CSPTOT ~ 1
                CMU ~ 1
'

the model is not identifiable anymore.
My question concern the interpretation of the estimates in the model without intercepts. Can the exponentiated estimates be interpreted as odds ratios?
 A: When you have an ordered variable with more than two categories, you can't define it's value by the mean (or intercept), instead it has thresholds - the number of thresholds is $k - 1$ where $k$ is the number of categories.  
You have to free the thresholds. Here's a reproducible example which shows this:
 library(lavaan)
 set.seed(1234)
 d <- data.frame(x = rnorm(1000), y=cut(rnorm(1000), breaks=4))
 d$y <- ordered(d$y)

 modelNoInt <- 'y ~ x'
 fitNoInt <- sem(modelNoInt, data=d)
 summary(fitNoInt)


 modelWithInt <- 'y ~ x
  y ~ 1'
 fitWithInt <- sem(modelWithInt, data=d)
 summary(fitWithInt)


 modelWithThres <- 'y ~ x
  y  | a * t1  + b * t2 +  c * t3 '
  fitWithThres <- sem(modelWithThres, data=d)
 summary(fitWithThres)


 modelWithThresAndInt <- 'y ~ x
 y  | a * t1  + b * t2 +  c * t3 '
 y ~ 1
 fitWithThresAndInt <- sem(modelWithThresAndInt, data=d)
 summary(fitWithThresAndInt)

The first model works, the second is not identified, because we didn't freed the intercepts and didn't explicitly give the thresholds.
The third one, we explicitly stated the (three) thresholds:
 y  | a * t1  + b * t2 +  c * t3 

And the fourth one we free the intercept and threshholds.  That doesn't work either, because it's got a free intercept and thresholds.
In your model, you don't need to worry about thresholds and intercepts. These parts of the model are just identified, and don't add, or subtract from the model.
