Releases: StructuralEquationModels/StructuralEquationModels.jl
v0.2.4
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
- Main -> Devel by @Maximilian-Stefan-Ernst in #183
- CI: add julia-format action by @alyst in #182
- Reformat by @Maximilian-Stefan-Ernst in #191
- Apply reformatting to main branch by @Maximilian-Stefan-Ernst in #192
- Misc. fixes by @alyst in #196
- Misc.Fixes 2 by @alyst in #198
- Release 0.2.4 by @Maximilian-Stefan-Ernst in #200
Full Changelog: v0.2.3...v0.2.4
v0.2.3
StructuralEquationModels v0.2.3
Merged pull requests:
- Update CI (#165) (@alyst)
- Fix splatting (#167) (@alyst)
- Bump codecov/codecov-action from 2 to 4 (#171) (@dependabot[bot])
- Bump actions/checkout from 2 to 4 (#172) (@dependabot[bot])
- Bump actions/github-script from 5 to 7 (#173) (@dependabot[bot])
- main -> devel (#174) (@Maximilian-Stefan-Ernst)
- main -> devel (#175) (@Maximilian-Stefan-Ernst)
- fix local testing, fix nlopt constrained tests (#176) (@Maximilian-Stefan-Ernst)
Closed issues:
v0.2.2
StructuralEquationModels v0.2.2
Merged pull requests:
- Release/v0 2 0 (#145) (@Maximilian-Stefan-Ernst)
- Main -> Devel after release (#147) (@Maximilian-Stefan-Ernst)
- close #151 and add test for it (#152) (@Maximilian-Stefan-Ernst)
- Documentation/installation (#156) (@Maximilian-Stefan-Ernst)
- add DataFrames to docs dependencies (#162) (@Maximilian-Stefan-Ernst)
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
What's Changed
- sync devel by @aaronpeikert in #135
- preview documentation PRs by @aaronpeikert in #137
- Feed main back into devel by @Maximilian-Stefan-Ernst in #143
- Feat small changes by @LeonieHagitte in #141
- Update loss.md by @brandmaier in #133
- not all commits on main have to be tagged by @Maximilian-Stefan-Ernst in #138
- Main -> Devel by @Maximilian-Stefan-Ernst in #144
- Release/v0 2 0 by @Maximilian-Stefan-Ernst in #145
New Contributors
- @LeonieHagitte made their first contribution in #141
Full Changelog: v0.1.0...v0.2.0
Initial Release v0.1.0
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
What's Changed
- Change interface of model building blocks to be method based by @Maximilian-Stefan-Ernst in #96
- Add documentation and docstrings, change type names by @Maximilian-Stefan-Ernst in #101
- Remove SemForwardDiff by @Maximilian-Stefan-Ernst in #104
- Revise introduction of the package by @aaronpeikert in #106
- registration triggers new release on GitHub/Zenodo by @aaronpeikert in #115
- reduce export footprint of StenoGraph by @aaronpeikert in #119
- fixed typo by @nickhaf in #125
New Contributors
Full Changelog: https://github.com/StructuralEquationModels/StructuralEquationModels.jl/commits/v0.1.0