`gaussian_dlm_obs_lpdf` returns NaN instead of rejecting when the innovation variance collapses after time zero
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
从 gaussian_dlm_obs_lpdf 的 vector-V 重载及其现有测试开始,追踪第一个时间步之后如何检查 Q。添加一个基于报告中确定性模型的回归用例,并验证后续的零创新方差会引发 std::domain_error,而不是返回 NaN。
由索引模型根据 Issue 内容生成。
描述
The vector-V overload checks the innovation variance Q only in the first time step (if (i == 0) check_positive(function, "Q0", Q)). Later time steps compute 1.0 / Q and log(Q) unchecked. A deterministic model whose state covariance collapses after the first update returns NaN silently:
Eigen::MatrixXd y(1, 2); y << 0.5, 0.5; // r = 1 variable, T = 2
Eigen::MatrixXd F(1, 1); F << 1.0;
Eigen::MatrixXd G(1, 1); G << 1.0;
Eigen::VectorXd V(1); V << 0.0; // passes check_nonnegative
Eigen::MatrixXd W(1, 1); W << 0.0; // passes check_pos_semidefinite
Eigen::VectorXd m0(1); m0 << 0.0;
Eigen::MatrixXd C0(1, 1); C0 << 1.0;
double lp = stan::math::gaussian_dlm_obs_lpdf<false>(y, F, G, V, W, m0, C0);
// lp = -nan, no exception
At t = 0, Q = 1 > 0 so the check passes; the update collapses C to zero, so from t = 1 on, Q = 0, Q_inv = inf, and the log density is NaN. The doc comment promises std::domain_error for non-PSD matrices in the Kalman filter.
Environment:
- Ubuntu 22.04.5 LTS (WSL2, kernel 6.18.33.2-microsoft-standard-WSL2), x86_64
- stan-dev/math develop @ d20b238b9c
- g++ 11.4.0 (Ubuntu 22.04), -std=c++17
- 主要语言
- C++
- 星标
- 845
- 派生
- 225
- 平均合并
- 3 天 9 小时
- 30 天内合并 PR
- 12
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
stan-dev/math 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 54/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 54/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
-
numerics performance
难度 5/5 一周以上 新手友好度 35/100
stan-dev/math#3481 · 1 个 reaction ·
维护者通常 1 天内回复
-
`eigendecompose_sym`, `eigenvalues_sym` and `eigenvectors_sym` do not compile for complex matrices of `fvar<var>` or `fvar<fvar<double>>`可能重新可做 关联的 PR 已关闭且未合并。 未关闭bug
难度 3/5 1-2 天 新手友好度 55/100
维护者通常 1 天内回复
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 72/100
rhalbersma/xstd-ints#395 ·
维护者通常 1 天内回复
-
[Bug] Root filesystem scope (/) incorrectly rejects all descendant paths可能已有人在做 @mugenkyou 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
neutralinojs/neutralino.js#304 · 1 条评论 ·
-
CLI: enforce absolute ADB device paths in file and directory commands可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
FuSa
难度 2/5 1-3 小时 新手友好度 76/100
tenstorrent/tt-umd#3851 ·
维护者通常 3 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 73/100
mattgodbolt/zindex#67 ·
维护者通常 1 天内回复