thresholds/fitter.py 設計案#

スレッショルドスキャン結果を解析・フィットし、推定スレッショルド値を得るモジュール。


📌 主な責務#

  • スレッショルドスキャン(閾値 vs ヒット数)データのフィッティング

  • 誤差関数(erf, erfc など)のモデルによるフィット

  • 0σ, 1σ, 3σ, 5σ に対応するスレッショルド値の推定

  • 必要に応じて、フィット結果の可視化や保存


🔧 提案関数一覧とその説明#

1. fit_scan_curve#

スキャン結果(しきい値とヒット数)をもとに、erf もしくは erfc 関数モデルでフィッティングを行う関数。 パラメータ推定やフィットの評価(決定係数など)も含まれる。 返り値は FittingResult というデータ構造を想定。

2. estimate_thresholds#

FittingResult に基づき、推定された mu(平均)と sigma(標準偏差)から、指定された σ(シグマ)レベル(例:0σ, 1σ, 3σ, 5σ)のしきい値を計算して返す。 返り値は { "0σ": 値, "1σ": 値, ... } の形式の辞書。

3. plot_fit_result(任意)#

スキャンデータとフィッティング結果を重ねてプロットし、表示またはファイルに保存する関数。 プロットツールとしては matplotlib, hvplot, altair などが利用可能。


🧾 データ構造 FittingResult#

フィットされたモデルとそのパラメータ、共分散行列(あれば)、フィットの良さを示す指標(例:R²)を保持するクラス。 以下のような情報を持つ:

  • モデル名(erf または erfc)

  • 推定されたパラメータ(mu, sigma など)

  • パラメータの共分散行列(省略可能)

  • 決定係数(R²)などのフィット評価指標


🚀 将来の拡張案#

  • シグモイドなど他のモデル関数への対応

  • FitConfig のような設定クラスで初期値や固定パラメータを柔軟に設定

  • haniwers fit CLIコマンドとの統合や、バッチ処理対応

  • フィット結果のログ出力・CSV保存機能の追加