11.3 Summary#
Specifying a Model#
desc = '''# Measurement model
latent_factor1 =~ x1 + x2 + x3
latent_factor2 =~ x7 + x8 + x9
latent_factor3 =~ x4 + x5 + x6
# Addding higher order factors
latent_factor1 =~ latent_factor2
latent_factor1 =~ latent_factor3
# Structural model
latent_factor1 ~ latent_factor2
# Adding a covariance
latent_factor2 ~~ latent_factor3
# Setting a covariance to zero
latent_factor1 ~~ 0*latent_factor3
# Setting a factor variance to 1
latent_factor1 ~~ 1 * latent_factor1'''
Summed up, you can use the following operators:
=~
to associate measured variables with latent factors (or latent factors with higher order latent factors)~
for regressions~~
for variances and covariances
Fitting a Model#
mod = semopy.Model(desc)
res_opt = mod.fit(data)
Extracting Model Estimates#
estimates = mod.inspect()
print(estimates)
Extracting Model Fit Measures#
stats = semopy.calc_stats(mod)
print(stats.T)
Visualizing the Model#
semopy.semplot(mod, plot_covs = True, filename='data/cfa_plot.pdf')