fullseye

pod_ahat_fit — SPC pod op

使い方

â vs a の回帰を、左右の打ち切りつき最尤法で当てる(table)。

モデル(MIL-HDBK-1823A G.3.4)は y = β0 + β1 x + ε, ε ~ N(0, σ²)、 x = a または ln a、y = â または ln â。応答が censor_low 以下の 行は左打ち切り(雑音床に埋もれて「それ以下だった」としか分からない)、 censor_high 以上の行は右打ち切り(飽和)として、対数尤度に ln Φ((y_L − μ_i)/σ) / ln Φ((μ_i − y_H)/σ) で入る(Tobin 1958)。

最大化は Olsen(1978)の座標 (γ, θ) = (β/σ, 1/σ) でのニュートン法 —— そこでは対数尤度が大域的に凹なので、解は一意で初期値に依らない。共分散は 観測情報行列の逆を (β0, β1, σ) へ写したもの(最尤点では勾配が 0 なので ヤコビアンで厳密に写る)。

★打ち切りが 1 つも無ければ、最尤解は最小二乗そのもの: β は np.polyfit と一致し、σ は sqrt(RSS/n)(n で割る最尤推定。n − 2 ではない)。 ★比較のため、打ち切りを無視して記録値のまま最小二乗した ols_beta0 / ols_beta1 / ols_sigma も返す —— 打ち切りの多いデータでは傾きが寝て σ が縮む(このモデルが要る理由)。

返り: beta0 beta1 sigma cov(3x3、並びは param_names)、 n n_left n_right n_censored loglik iterations、座標の印 log_size log_response、打ち切り閾値、大きさの範囲 size_min / size_max、 当てに使った x y status(-1 左 / 0 観測 / +1 右)。

空の入力(table が 0 行、または空の dict)は ValueError。 拒否(ValueError): 空の表・列の欠け・長さ違い・非有限・文字列、観測(打ち切り でない)が 3 点未満か大きさが 1 種類しかない、応答が定数で散らばりが 0 (POD が階段になりモデルが立たない)、censor_low >= censor_high、対数座標で 0 以下。

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

msa_anova_table · msa_gauge_rr · msa_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo

同カテゴリ(pod)

pod_from_ahat · pod_hitmiss_fit · pod_false_call · pod_decision_tradeoff


Provenance: pod.py — SPC operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.