Skip to main content

semopy

Visit our website for a detailed introduction

semopy is a Python package that includes numerous Structural Equation Modelling (SEM) techniques.

Features

  • Write down a model description in a user-friendly syntax
  • Estimate model's parameters using a variety of objective functions
  • Estimate models with population structure via random effects
  • Restricted Maximum Likelihood
  • Integration with gaussian processes/mixture models to tackle huge variety of phenomena
  • Calculate numerous statistics and fit indices
  • Estimate model's parameters in presence of ordinal variables
  • A vast number of settings to fit a researcher's needs
  • Fast and accurate
  • Automatically create fancy HTML reports

Installation

semopy is available at PyPi and can be installed by typing the following line into terminal:

pip install semopy

Syntax

To specify SEM models, The semopy uses the syntax, which is natural to describe regression models in R. The syntax supports three operator symbols characterising relationships between variables:

  • ~ to specify structural part,
  • =~ to specify measurement part,
  • ~~ to specify common variance between variables.

For example, let a linear equation in the structural part of SEM model take the form:

y = β1 x1 + β2 x2 + ε

Then, in semopy syntax it becomes:

y ~ x1 + x2

Parameters β1, β2 are to be estimated by semopy. In some cases a user might want to fix some of parameters to particular value. For instance, let's assume that we want β1 to stay equal to 2.0 and we are only interested in estimating β2:

y ~ 2*x1 + x2

Likewise, if a latent variable η is explained by manifest variables y1, y2, y3, then in semopy syntax it can be written down this way:

eta =~ y1 + y2 + y3

Quickstart

The pipeline for working with SEM models in semopy consists of three steps:

  1. Specifying a model
  2. Loading a dataset.
  3. Estimating parameters of the model.

Main object required for scpecifying and estimating an SEM model is Model.

Model is responsible for setting up a model from the proposed SEM syntax:

# The first step
from semopy import Model
mod = """ x1 ~ x2 + x3
          x3 ~ x2 + eta1
          eta1 =~ y1 + y2 + y3
          eta1 ~ x1
      """
model = Model(mod)

Then a dataset should be provided:

# The second step
from pandas import read_csv
data = read_csv("my_data_file.csv", index_col=0)

To estimate parameters of the model we run a fit method with the dataset as an argument:

# The third step
model.fit(data)

The default objective function for estimating parameters is the likelihood function and the optimisation method is SLSQP (Sequential Least-Squares Quadratic Programming). However, the semopy supports a wide range of other objective functions and optimisation schemes being specified as parameters in the fit method.

Finally, user can inspect parameters' estimates:

model.inspect()

Would you like to know more?

Tutorial and overview of semopy features are available at the project's website.

Requirements

numpy, pandas, scipy, sympy, sklearn, statmodels

Authors

  • Mescheryakov A. Georgy - Developer - georgy.m - student, SPbPU
  • Igolkina A. Anna - Supervisor - iganna - Engineer, SPbPU

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Release files for semopy 2.3.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for semopy 2.3.11
File Size Uploaded
semopy-2.3.11.tar.gz 1.6 MB Details

Release files / semopy-2.3.11.tar.gz

Download URL semopy-2.3.11.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
eb6336f8438f0ea6fcfdceb91d448196c3940827ff11a0948889ce6755895653
BLAKE2b-256 checksum
How to use checksums
f2d57cd2dcd8d24670f902794695986be856f0fa2bc695484f8746df066c7535
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

2.3.11 This release

1 release file

2.3.10

1 release file

2.3.9

1 release file

2.3.8

1 release file

2.3.7

1 release file

2.3.6

1 release file

2.3.5

1 release file

2.3.4

1 release file

2.3.3

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.7

1 release file

2.2.6

1 release file

2.2.5

1 release file

2.2.4

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.8

1 release file

2.1.7

1 release file

2.1.6

1 release file

2.1.5

1 release file

2.1.4

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.20

1 release file

2.0.19

1 release file

2.0.18

1 release file

2.0.17

1 release file

2.0.16

1 release file

2.0.15

1 release file

2.0.14

1 release file

2.0.13

1 release file

2.0.12

1 release file

2.0.11

1 release file

2.0.10

1 release file

2.0.9

1 release file

2.0.8

1 release file

2.0.7

1 release file

2.0.6

1 release file

2.0.5

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.3.7

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.5

1 release file

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.12

1 release file

1.0.11

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page