Glm additions#17
Conversation
Introduce an AbstractPrior hierarchy (NoPrior, RidgePrior) with neglogprior, neglogprior_grad!, and neglogprior_hess! helpers. Add BernoulliGLM and PoissonGLM types with DensityInterface, Random.rand, and StatsAPI.fit! implementations that minimize the weighted negative log-posterior via Optim (Newton) and compose with priors. Extend GaussianGLM to carry a prior and apply the prior Hessian in weighted least squares (Ridge support). Export new symbols and pull in extra LogExpFunctions helpers (log1pexp, logistic). Add comprehensive tests for priors, BernoulliGLM, and PoissonGLM and include the new test file in runtests.jl.
There was a problem hiding this comment.
Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit
JuliaFormatter
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 565 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 572 to 575 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 579 to 580 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 588 to 590 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 594 to 595 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 618 to 620 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 624 to 627 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 653 to 655 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 680 to 683 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 718 to 719 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 733 to 736 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 740 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 773 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 823 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 830 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 834 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 841 to 842 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 847 to 849 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 853 to 856 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 860 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 864 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 873 to 875 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 896 to 899 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 902 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 904 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 932 to 933 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 939 to 942 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 946 to 948 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 954 to 956 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 978 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 985 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 989 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 996 to 997 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1002 to 1004 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1008 to 1011 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 1015 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 1019 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1028 to 1030 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1050 to 1053 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 1056 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Line 1058 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1086 to 1087 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1093 to 1096 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1100 to 1102 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/glms/glm.jl
Lines 1108 to 1110 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/src/multivariate/t.jl
Line 317 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Lines 25 to 32 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Lines 41 to 43 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 47 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Lines 50 to 51 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Lines 54 to 58 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Lines 68 to 70 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 101 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 116 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 121 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 128 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 133 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 141 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/allocations.jl
Line 151 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 12 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 14 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 17 to 18 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 20 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 26 to 34 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 36 to 37 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 39 to 40 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 42 to 44 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 46 to 50 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 52 to 54 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 56 to 60 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 63 to 67 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 69 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 71 to 74 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 76 to 79 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 81 to 84 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 86 to 87 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 89 to 91 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 93 to 96 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 98 to 101 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 103 to 104 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 106 to 108 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 110 to 112 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 114 to 117 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 119 to 122 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 124 to 125 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 127 to 128 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 130 to 132 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 134 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 136 to 138 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 141 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 148 to 149 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 151 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 174 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 192 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 196 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 214 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 217 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 223 to 224 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 229 to 230 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 239 to 241 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 246 to 247 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 253 to 254 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 278 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 95 to 96 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 280 to 281 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 326 to 329 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 350 to 351 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 465 to 466 in 2ae43af
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #17 +/- ##
==========================================
+ Coverage 98.83% 99.24% +0.41%
==========================================
Files 2 3 +1
Lines 257 796 +539
==========================================
+ Hits 254 790 +536
- Misses 3 6 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit
JuliaFormatter
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Line 233 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 244 to 245 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/gaussian.jl
Lines 261 to 262 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 94 to 95 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 329 to 332 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 353 to 354 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
EmissionModels.jl/test/glm/test_bernoulli_poisson.jl
Lines 468 to 469 in 09348a0
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
[JuliaFormatter] reported by reviewdog 🐶
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…nto glm_additions
Gate JET linting on supported Julia versions Avoid resolving JET on prerelease Julia versions where no compatible registered release is available. Install JET only during supported lint runs so normal package tests can run on newer Julia prereleases.
…nto glm_additions
This pull request significantly expands and improves the documentation for
EmissionModels.jl, adds new emission models and priors, and introduces several usability and performance enhancements to the codebase. The main changes include a comprehensive rewrite of theREADME.md, the addition of detailed documentation pages for distributions, GLM emissions, priors, and custom model interfaces, as well as new exports and improved internal handling for multivariate t-distributions.Documentation improvements:
README.mdto include a clear package overview, quick start, model summaries, installation, and contribution guidelines. [1] [2]Feature additions:
GaussianGLM,BernoulliGLM,PoissonGLM, multivariate GLMs, and prior types such asRidgePrior, with their associated penalty and gradient functions. [1] [2]Multivariate t-distribution improvements:
MultivariateTandMultivariateTDiagstructs to include internal scratch buffers for more efficient and allocation-freefit!and density computations. [1] [2] [3] [4]logdensityofimplementations for both full and diagonal multivariate t-distributions to reduce allocations and improve thread safety. [1] [2]General usability:
HiddenMarkovModels.jl, including sampling, density evaluation, and parameter fitting.References: