| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| NAVAL-SEM | 2026-08-01 | 125.6 MB | |
| NAVAL-SEM-Setup.msi | 2026-08-01 | 111.8 MB | |
| NAVAL-SEM.dmg | 2026-08-01 | 15.3 MB | |
| NAVAL-SEM.exe | 2026-08-01 | 112.3 MB | |
| naval-sem_1.1.3_amd64.deb | 2026-08-01 | 124.2 MB | |
| NAVAL-SEM v1.1.3 source code.tar.gz | 2026-08-01 | 5.4 MB | |
| NAVAL-SEM v1.1.3 source code.zip | 2026-08-01 | 5.4 MB | |
| README.md | 2026-08-01 | 5.2 kB | |
| Totals: 8 Items | 500.0 MB | 0 | |
NAVAL-SEM v1.1.3
Fully offline PLS-SEM / CB-SEM desktop application — no internet required after install.
What's new in v1.1.3:
Added
Formative construct (Mode B) support — PLS-SEM
- Added
<~lavaan-style operator for formative measurement blocks (e.g.Quality <~ q1 + q2 + q3), alongside the existing=~reflective operator. Checked before=~inparse_lavaan()'s operator chain so<~lines aren't swallowed by the plain~branch;preprocess_lavaan()now also treats a trailing<~as a line-continuation marker for multi-line formative blocks. parse_lavaan()returns two new keys:formative_lvs(LVs declared with<~) andconstruct_modes({lv: "A"|"B"}for every LV in the model, defaulting to"A"when a construct has no formative declaration).PLSEstimator's outer-weight update now branches per construct onconstruct_modes: Mode B blocks solvew = (X'X + ridge·I)⁻¹ X'η_inner(ridge = 1e-4, falling back to the unregularised solve only if that raisesLinAlgError), normalised soVar(η) = 1; Mode A blocks are unchanged.PLSResultgains aconstruct_modesfield carrying the per-LV mode through to the response.- Affects
app/parser.py,app/pls.py.
Changed
compute_vif()now skips Mode A (reflective) constructs — VIF/multicollinearity is only a meaningful diagnostic for formative blocks; reflective indicators are expected to correlate highly since they share a common cause. Models composed entirely of reflective constructs now return an empty VIF list instead of one entry per indicator. Affectsapp/engine.py.
Fixed
- HOC / measurement (
=~) loadings never received bootstrap SE, z, or CI whenbootstrap_n > 0— the bootstrap significance back-fill in_run_diagnostics()previously only scanned structural (~) parameters when deciding whether a back-fill was needed, and only wrotesignificant/p_value/CI onto matched parameters. Measurement loadings — including higher-order construct loadings produced by the repeated-indicator HOC expansion (e.g.x1 =~ g) — were never flagged for back-fill and kept the PLS point-estimate placeholders (std_error=0.0,z_value=0.0,p_value=1.0) in every report regardless ofbootstrap_n. The trigger condition and the back-fill body now cover any hypothesis-tested parameter (opin{"~", "=~"};"~~"covariance rows stay excluded, since they are never hypothesis-tested), andstd_error/z_valueare populated from the bootstrap resampling distribution alongside significance and CI bounds. Affectsapp/engine.py. - Gaussian Copula bootstrap CI always
None/copula_significantalwaysFalse— incompute_gaussian_copula(), the bootstrap loop computed the resampled copula coefficient (c_bs) on every iteration but never appended it tobs_cop_coef, so_ci_from_bootstrap()always received an empty list. Added the missingbs_cop_coef.append(float(c_bs[-1])). Affectsapp/engine.py. - Fornell-Larcker off-diagonal used mean indicator correlation instead of LV composite correlation —
_compute_fornell_larcker()computed each off-diagonal cell as the mean of all cross-indicator correlations between two LV blocks rather than the Pearson r between LV composite scores required by Fornell & Larcker (1981). Added an optionalcompositesparameter and a_phi()helper that correlates composite scores directly when supplied, falling back to the previous mean-cross-indicator behaviour otherwise;_compute_measurement_validity()now builds composites via_build_composites()and passes them through. Affectsapp/engine.py. - Both-paths (Hayes Model 58/59) combined indirect effect never computed — when a model had both an a-path interaction (
X*W) and a b-path interaction (M*W) for the sameX→M→Ychain, each was returned as a separateModMediationPathentry and the combined conditional indirect effect was never computed.run_mod_mediation()now detects such chains and appends amoderated_path="both"entry usingIE(w) = (a + a₃w)(b + b₃w)andimm = a₃b + ab₃; CIs on this combined entry areNonepending a simultaneous a/b bootstrap. Affectsapp/engine_mod_mediation.py.
Downloads
| Platform | File | Notes |
|---|---|---|
| Windows | NAVAL-SEM-Setup.msi |
Recommended — installs with Start Menu + uninstall |
| Windows | NAVAL-SEM.exe |
Portable — drop anywhere and run |
| macOS | NAVAL-SEM.dmg |
Drag to Applications |
| Linux | naval-sem_*.deb |
Debian/Ubuntu installer |
| Linux | NAVAL-SEM |
Portable binary |
💛 Support Development
NAVAL-SEM is free to use. If you find it useful, please consider donating. 👉 https://www.paypal.com/paypalme/singhn9
🐛 Bug Reports & Feedback
👉 https://forms.gle/N4AmCkJyCK6HHsZz8
⚠️ Windows Security Note
Windows may show a SmartScreen warning on first run — click: More info → Run anyway
⚠️ macOS Note
Right-click → Open the first time to bypass Gatekeeper.