https://github.com/brandmaier/structuralequationmodels.jl
A fast and flexible Structural Equation Modelling Framework
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Last synced: 6 months ago
·
JSON representation
Repository
A fast and flexible Structural Equation Modelling Framework
Basic Info
- Host: GitHub
- Owner: brandmaier
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://structuralequationmodels.github.io/StructuralEquationModels.jl/dev/
- Size: 1.72 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of StructuralEquationModels/StructuralEquationModels.jl
Created over 3 years ago
· Last pushed over 3 years ago
https://github.com/brandmaier/StructuralEquationModels.jl/blob/main/
#StructuralEquationModels.jl | **Documentation** | **Build Status** | Citation | |:-------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:| | [](https://structuralequationmodels.github.io/StructuralEquationModels.jl/) [](https://structuralequationmodels.github.io/StructuralEquationModels.jl/dev/) | [](https://www.repostatus.org/#active) [](https://github.com/StructuralEquationModels/StructuralEquationModels.jl/actions/) [](https://codecov.io/gh/StructuralEquationModels/StructuralEquationModels.jl) | [](https://zenodo.org/badge/latestdoi/228649704) | # What is this Package for? 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 - Regularization - Multigroup SEM - Sums of arbitrary loss functions (everything the optimizer can handle). # What are the merrits? 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 extensible 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. # At the moment, we are still working on: - optimizing performance for big models (with hundreds of parameters) # Questions? If you have questions you may ask them here in the [issues](https://github.com/StructuralEquationModels/StructuralEquationModels.jl/issues/new). Please observe our [code of conduct](/CODE_OF_CONDUCT.md).
Owner
- Name: Andreas Brandmaier
- Login: brandmaier
- Kind: user
- Location: Berlin
- Website: http://www.brandmaier.de
- Twitter: brandmaier
- Repositories: 45
- Profile: https://github.com/brandmaier
Professor of Research Methods. Senior Research Scientist. Computer & Data Scientist in Lifespan Psychology.
StructuralEquationModels.jl
| **Documentation** | **Build Status** | Citation |
|:-------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:|
| [](https://structuralequationmodels.github.io/StructuralEquationModels.jl/) [](https://structuralequationmodels.github.io/StructuralEquationModels.jl/dev/) | [](https://www.repostatus.org/#active) [](https://github.com/StructuralEquationModels/StructuralEquationModels.jl/actions/) [](https://codecov.io/gh/StructuralEquationModels/StructuralEquationModels.jl) | [](https://zenodo.org/badge/latestdoi/228649704) |
# What is this Package for?
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
- Regularization
- Multigroup SEM
- Sums of arbitrary loss functions (everything the optimizer can handle).
# What are the merrits?
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 extensible 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.
# At the moment, we are still working on:
- optimizing performance for big models (with hundreds of parameters)
# Questions?
If you have questions you may ask them here in the [issues](https://github.com/StructuralEquationModels/StructuralEquationModels.jl/issues/new).
Please observe our [code of conduct](/CODE_OF_CONDUCT.md).