laplace_sample: expose CmdStan's diagnostic_file (the Hessian at the mode)
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Start from CmdStanModel.laplace_sample and compare it with how sample handles save_diagnostics, since the issue proposes mirroring that argument. The result would be exposed on CmdStanLaplace as a hessian attribute. Pull request #870 is already open against this issue, so check it before starting. Done means the diagnostic file is requested, parsed, and its Hessian is available when requested.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
CmdStan's laplace method can write a diagnostic file (output diagnostic_file=...), but CmdStanModel.laplace_sample has no argument to request it. That file is where CmdStan reports the Hessian at the mode, so cmdstanpy users can't get the Hessian the Laplace approximation was built from.
Details
laplace_sample's signature in 1.3.0 is(data, mode, draws, *, jacobian, seed, output_dir, sig_figs, save_profile, show_console, refresh, time_fmt, timeout, opt_args). There is nodiagnostic_fileorsave_diagnostics, unlikesample(save_diagnostics=...).- In CmdStan 2.40.0, running
laplace mode=<mode.csv> ... output file=lap.csv diagnostic_file=lap_diag.jsonwrites a JSON file whose"Hessian"key holds the Hessian of the log density at the mode, on the unconstrained scale. We confirmed this by running it directly.
Use case
We fit a model by optimize (MLE, jacobian=False) and want observed-information standard errors at the optimum. The Hessian at the mode is that object. Through cmdstanpy we can only get the Laplace draws, and from those we'd have to re-estimate a covariance that CmdStan has already computed exactly.
Suggested API
Add a save_diagnostics: bool = False argument, mirroring sample. It would pass diagnostic_file=<output_dir>/<name>-diagnostic.json to CmdStan, and expose the parsed file on CmdStanLaplace. For example, CmdStanLaplace.hessian would return an np.ndarray, or None if the diagnostic file wasn't requested.
We are happy to open a PR with a test, if this API is acceptable.
Versions
cmdstanpy 1.3.0, CmdStan 2.40.0, Python 3.12, Linux x86_64.
- Vorherrschende Sprache
- Python
- Sterne
- 198
- Forks
- 82
- Ø Merge
- 3 T. 14 Std.
- Gemergte PRs (30 T.)
- 4
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus stan-dev/cmdstanpy
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
Release 2.0Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
-
feature
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Alle Issues in stan-dev/cmdstanpy
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
btclib-org/btclib-node#2198 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Remove the em dashes from the skill smart-account referenceEvtl. vergeben @Vamsi-2581 hat das heute übernommen. Offenagent-ready area: docs documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Soneso/stellar-agent-wallet#541 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
sususweet/midea_auto_cloud#285 ·
Maintainer antworten meist innerhalb von 1 Tag
-
2026-11 documentation good first issue gsoc-2027 project: gsoc
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
alphaonelabs/website#1154 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag