Skip to content

Releases: StructuralEquationModels/StructuralEquationModels.jl

v0.2.4

22 Apr 21:42
f4e104e
Compare
Choose a tag to compare

Formatting/Refactoring

  • The whole codebase is now formatted to follow a specific JuliaFormatter style.
  • We now have JuliaFormatter running in the tests as well as in each PR.
  • A lot of cosmetic cleanups and simplifications.

Testing

  • Tests now give more specific feedback when failing.

Performance

  • Linear algebra tweaks in objective/gradient/hessian computation.
  • Optimizations in fabin 3 starting value computation.
  • Optimizations in RAM Matrices construction.

What's Changed

Full Changelog: v0.2.3...v0.2.4

v0.2.3

17 Apr 09:10
8cd36c3
Compare
Choose a tag to compare

StructuralEquationModels v0.2.3

Diff since v0.2.2

Merged pull requests:

Closed issues:

  • Usage for social research (#154)
  • Update for new version dependencies (#161)
  • v0.2.2 (#163)

v0.2.2

09 Jan 17:14
51ca4a9
Compare
Choose a tag to compare

StructuralEquationModels v0.2.2

Diff since v0.2.0

Merged pull requests:

Closed issues:

  • What types of models do not need an imply? (#108)
  • CI fails mysteriously from time to time (#117)
  • Release v0.2.0 (#122)
  • Update installation instructions (#128)
  • export optimizer field access method (#130)
  • TagBot file does not have an extension (#132)
  • update to julia 1.9 (#139)
  • Constant mean parameters do not work (#151)
  • Release v0.2.1 (#153)
  • Update installation instructions in docs (#155)

Major Release 0.2.0

14 Jun 11:23
e0ce63c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.1.0...v0.2.0

Initial Release v0.1.0

24 Jun 08:43
Compare
Choose a tag to compare

StructuralEquationModels v0.1.0

This is a package for Structural Equation Modeling.
It is still in development.
Models you can fit include

  • Linear SEM that can be specified in RAM (or LISREL) notation
  • ML, GLS and FIML estimation
  • Ridge Regularization
  • Multigroup SEM
  • Sums of arbitrary loss functions (everything the optimizer can handle).

We provide fast objective functions, gradients, and for some cases hessians as well as approximations thereof.
As a user, you can easily define custom loss functions.
For those, you can decide to provide analytical gradients or use finite difference approximation / automatic differentiation.
You can choose to mix and match loss functions natively found in this package and those you provide.
In such cases, you optimize over a sum of different objectives (e.g. ML + Ridge).
This mix and match strategy also applies to gradients, where you may supply analytic gradients or opt for automatic differentiation or mix analytical and automatic differentiation.

You may consider using this package if:

  • you want to extend SEM (e.g. add a new objective function) and need an extendable framework
  • you want to extend SEM, and your implementation needs to be fast (because you want to do a simulation, for example)
  • you want to fit the same model(s) to many datasets (bootstrapping, simulation studies)
  • you are planning a study and would like to do power simulations

The package makes use of

  • Symbolics.jl for symbolically precomputing parts of the objective and gradients to generate fast, specialized functions.
  • SparseArrays.jl to speed up symbolic computations.
  • Optim.jl and NLopt.jl to provide a range of different Optimizers/Linesearches.
  • FiniteDiff.jl and ForwardDiff.jl to provide gradients for user-defined loss functions.

Registration

JuliaRegistries/General#62956

What's Changed

New Contributors

Full Changelog: https://github.com/StructuralEquationModels/StructuralEquationModels.jl/commits/v0.1.0