Lavaan Structural Equation Modeling – How to Interpret a Lavaan Structural Equation Model

data visualizationlavaanmodelstructural-equation-modeling

I created following structural equation model from iris data set using lavaan package in R:

enter image description here

How do I interpret these numbers. The output (of sem() function of lavaan package) is given below. It did not give any P values:

lavaan (0.5-18) converged normally after  64 iterations

  Number of observations                           150

  Estimator                                         ML
  Minimum Function Test Statistic                   NA
  Degrees of freedom                                -4
  Minimum Function Value               0.0000000000000

Parameter estimates:

  Information                                 Expected
  Standard Errors                             Standard

                   Estimate  Std.err  Z-value  P(>|z|)
Latent variables:
  sepf =~
    Sepal.Length      1.000
    Sepal.Width      -0.469
  petf =~
    Petal.Length      1.000
    Petal.Width       0.507
  lenf =~
    Petal.Length      1.000
    Sepal.Length     -0.177
  widf =~
    Sepal.Width       1.000
  strf =~
    sepf              1.000
    petf              2.084
  bulkf =~
    lenf              1.000
    widf              0.579

Regressions:
  strf ~
    Species           0.842
  bulkf ~
    Species           0.290

Covariances:
  strf ~~
    bulkf             0.065

Variances:
    Sepal.Length      0.361
    Sepal.Width       0.129
    Petal.Length      0.231
    Petal.Width       0.047
    sepf             -0.120
    petf             -0.220
    lenf             -0.179
    widf              0.084
    strf              0.053
    bulkf            -0.025
-----------------------------------------------
Warning messages:
1: In lav_data_full(data = data, group = group, group.label = group.label,  :
  lavaan WARNING: unordered factor(s) with more than 2 levels detected in data: Species
2: In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,  :
  lavaan WARNING: could not compute standard errors!
  lavaan NOTE: this may be a symptom that the model is not identified.

3: In lavaan::lavaan(model = model, data = mydf, model.type = "sem",  :
  lavaan WARNING: some estimated variances are negative
4: In lavaan::lavaan(model = model, data = mydf, model.type = "sem",  :
  lavaan WARNING: covariance matrix of latent variables is not positive definite; use inspect(fit,"cov.lv") to investigate.
5: In sqrt(ETA2) : NaNs produced
6: In sqrt(ETA2) : NaNs produced
7: In sqrt(ETA2) : NaNs produced
> 

Do I just take large estimates as signficant? Thanks for your insight.

Best Answer

Moving comments above to an answer:

You really can't say anything at all about this model. On top of being completely unidentified it is badly broken (negative variance terms abound). So I would throw this model out and try something completely different.

Edit: This model is vastly over-identified and hence it is not unique (therefore, it's likelihood surface has no curvature, and no standard errors can be computed). The model converges to some location, but given some different starting values it will almost certainly converge to an entirely different location that fits equally well. Therefore, do not interpret this model at all, as it is largely meaningless, and lavaan surely printed a warning message saying that the model is probably not identified