Detect non-finite `log_lik` (`Inf` / `NaN`) and explicitely inform the user
まだ誰も着手していません。
評価
調査の方向性
エントリーポイントの loo::loo() から開始し、log_lik 行列がどこで検証されるか、または PSIS-LOO に渡されるかを追跡します。+Inf を含む再現可能な行列を使用して、非有限値が暗黙的に NA 推定値を生成するのではなく、明確に報告されることを確認します。ユーザー向けの動作で無効な log_lik 値が特定され、既存の例がその情報なしに完了しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
If the pointwise log-likelihood matrix contains +Inf or NaN, loo::loo() currently completes without a clear error/warning and can return NA for elpd_loo.
Proposal
Before (or while) computing PSIS-LOO, check the log_lik matrix for non-finite values and message this clearly to the user.
Reproducible example
library(loo)
set.seed(1)
ll <- matrix(rnorm(400 * 20, -1, 0.5), 400, 20)
ll[1:5, 1] <- Inf
loo(ll)$estimates # elpd_loo is NA; no clear message that log_lik had +Inf
# Estimate SE
# elpd_loo NA NA
# p_loo NA NA
# looic NA NA
Context
Seen with truncated-normal log_lik from brms, where the truncation normalizer can underflow:
https://discourse.mc-stan.org/t/difficulty-adding-loo-criterion-to-longitudinal-truncated-normal-model/41447/12
Corresponding brms Issue: https://github.com/paul-buerkner/brms/issues/1899
- 主要言語
- R
- スター
- 157
- フォーク
- 38
- 平均マージ
- 4日 16時間
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
stan-dev/loo のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
Clean up issues オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
robjhyndman/forecast#1220 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
JamesHWade/deputy#192 ·
-
bug triage_needed
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
pharmaverse/rtables#1123 · コメント 1 件 · リアクション 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100