pod optable → tableimport fullseye as fs; fs.ledger.pod_ahat_fit(table, size='a', response='ahat', log_size=False, log_response=False, censor_low=None, censor_high=None) (実装を直接呼ぶなら import pod; pod.pod_ahat_fit(table, size='a', response='ahat', log_size=False, log_response=False, censor_low=None, censor_high=None)、台帳から引くなら opsspc.get("pod_ahat_fit"))â 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 以下。
py -3.11 examples/poc_pod_lighting.pypy -3.11 examples/poc_sam_hybrid_bonding_voids.pytable を入力に取れる)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.