検証済みアルゴリズム
ページ種別: 高度ガイド / 理論補助
バッジ: Advanced Theory companion
Note
このページを読むべき方:
解析手法の数学的・物理学的な妥当性を確認したい研究者
外部ライブラリ(SciPy, LALSuite 等)と GWexpy の数値的な計算誤差を知りたい開発者
使用するアルゴリズムが前提としているデータ特性(定常性、ガウス性など)を確認したい方
Important
高度な検証・理論ページです
このページは機能紹介の文書から辿りやすいよう user guide 配下に残していますが、入門ページではありません。API リファレンス、理論ノート、個別チュートリアルを監査目線でつなぐ高度・理論向けの入口として扱ってください。初見の方は Getting Started、前提条件と規約、または各手法に対応する個別チュートリアルから読むのを推奨します。
gwexpy で使用されている主要な数値アルゴリズムは、科学的な正確性を保証するために厳密な検証プロセスを経て実装されています。
検索のヒント: validated algorithms, tolerance, FFT conventions, ホワイトニング, GLS, MCMC, VIF
このページの近道
検証の基準と計算精度
客観的証拠
参照元一覧
検証済みアルゴリズム要約表
読み方ガイド
各アルゴリズムの詳細と仮定
監査証跡
関連ドキュメント
検証の基準と計算精度 (Validation & Precision)
「検証済み」と表記されるアルゴリズムは、以下の基準に基づき、指定の精度(Tolerance)を達成しています。
一致率 (Tolerance): \(10^{-12}\) (相対誤差) を原則的なパス基準としています。これは倍精度浮動小数点演算において、丸め誤差以外の有意なロジック差異がないことを示します。
物理的不変性 (Invariance): スケール変換(データの 1000 倍など)をしても結果が整合する「Scale Invariance」を全アルゴリズムで検証しています。
客観的証拠 (Objective Evidence)
このページの要約は、このページ内に整理した公開向けの検証証跡に基づいています。
この証拠表は監査証跡を 1 ページにまとめるため、列数を多めに保っています。モバイルでは共有 CSS に合わせた横スクロール前提で読むのが自然です。
証拠の種類 |
公開資料 |
何を示すか |
|---|---|---|
監査スコープ |
どのアルゴリズムを、どの観点で点検したか |
|
統合結果 |
独立監査の統合所見、重大度、合意度 |
|
修正履歴 |
指摘後に何を修正したか |
|
Field 系の物理レビュー |
|
参照元一覧 (Source References)
各アルゴリズム節では、文献・内部資料の参照をこの一覧のキーに寄せて、出典管理をこのページで一元化します。
キー |
資料 |
用途 |
|---|---|---|
|
Press et al., Numerical Recipes (3rd ed., 2007), §12.3.2 |
k-space 計算と FFT 軸解釈 |
|
Percival, D.B. & Walden, A.T., Spectral Analysis for Physical Applications (1993), Eq.(56) |
Welch オーバーラップ / VIF 補正 |
|
時刻系と FFT 規約に関する共通前提 |
|
|
ホワイトニングの安定化指針 |
|
|
客観的証拠 と後述の Audit Trail |
transient FFT と複素 GLS / MCMC 挙動の実装根拠 |
検証済みアルゴリズム要約表
アルゴリズム |
主対象 API |
API ページ |
証拠 |
関連チュートリアル |
|---|---|---|---|---|
k-space 計算 |
|
|||
Transient FFT |
|
|||
VIF 補正 |
|
|||
予測時刻計算 |
|
|||
MCMC / GLS 尤度 |
|
|||
適応ホワイトニング |
|
読み方ガイド
共通の前提条件、時刻系、FFT 規約を先に整理したい場合は 前提条件と規約 を入口にしてください。
監査メモより先に手を動かしたい場合は、要約表にある個別チュートリアルから該当手法だけ読むのが最短です。
実装側の API を先に確認したい場合は フィールド API, Time Series API, Spectral API, Fitting API, 前処理 API を参照してください。
各アルゴリズムの詳細と仮定
1. k-space 計算
対象: gwexpy.fields.ScalarField.fft_space()
角波数の計算は、物理学の標準定義 \(k = 2\pi / \lambda\) に従っています。
前提条件・仮定:
空間座標 (\(x, y\)) が**等間隔(Uniform Grid)**であること。
非等間隔グリッドの場合は、事前に補間を行わない限り正しい波数軸は得られません。
参照元: S1
関連チュートリアル
関連 API
関連理論
2. 振幅スペクトル(トランジェントFFT)
対象: TimeSeries._fft_transient
密度スペクトル(PSD)ではなく、時間領域のピーク振幅を直接読み取れる振幅規約を採用しています。
前提条件・仮定:
入力信号に窓関数が適用されていないこと(矩形窓を前提)。
窓関数適用済みのデータに対しては、別途コヒーレント・ゲインによる補正が必要です。
参照元: S5
関連チュートリアル
関連 API
関連理論
3. VIF (分散膨張係数)
対象: gwexpy.spectral.estimation.calculate_correlation_factor()
Welch 法等におけるセグメント間のオーバーラップによる有効サンプル数の減少を補正します。
ここでの VIF は回帰分析の Variance Inflation Factor をそのまま指すのではなく、オーバーラップ窓による分散膨張補正をコード上で calculate_correlation_factor() として実装したものです。理論名と関数名が異なるのは、API では「相関補正係数を計算する」役割を明示するためです。
前提条件・仮定:
データが弱定常 (Weakly Stationary) であること。
非定常なグリッチやステップ応答が含まれる場合、VIF は分散を過小または過大評価する可能性があります。
参照元: S2
関連チュートリアル
関連 API
関連理論
4. 予測タイムスタンプ (ARIMA)
対象: gwexpy.timeseries.arima.ArimaResult.forecast()
GPS 時刻系における連続性を保証するため、LIGO 規約に従った歩進計算を行います。
代表的な更新式は forecast_t0 = t0 + n_obs * dt です。ここで、
t0: 元データ系列の開始 GPS 時刻n_obs: 学習に使った観測点数dt: サンプル間隔(秒)
を表します。
前提条件・仮定:
時刻系は GPS 時刻(閏秒なし) であること。
UTC 等の閏秒が存在する時刻系でそのまま使用すると、将来予測時に 1 秒のズレが生じます。
参照元: S3
関連チュートリアル
関連 API
関連理論
5. MCMC / GLS 尤度
対象: run_mcmc, GLS
MCMC の対数尤度計算では、複素残差に対してもエルミート形式 r.conj() @ cov_inv @ r の実部を用いる実装を前提にしています。つまり、複素データを API にそのまま渡した場合でも、内部では複素共役を考慮した二次形式で評価されます。
前提条件・仮定:
共分散行列
cov_invがエルミート正定値に近いこと。複素残差は circular complex Gaussian に準じた扱いを想定しており、単純に実部だけへ切り捨てる挙動ではありません。
参照元: S5
関連チュートリアル
関連 API
関連理論
6. 適応ホワイトニング
対象: whiten(), WhiteningModel, .whiten(eps="auto")
適応ホワイトニングでは、自動的に決まる安定化パラメータを用いて、非常に小さい PSD ビンや局所的な数値アンダーフローがあっても正規化が破綻しにくいようにしています。
前提条件・仮定:
ホワイトニングに用いる FFT セグメントの範囲では、データが局所的に準定常とみなせること。
適応
epsは小さい分母を安定化するためのものであり、明らかに非定常なバーストや不適切な窓長設定まで補償するものではありません。
参照元: S4
関連チュートリアル
関連 API
関連理論
監査証跡 (Audit Trail)
公開向けの監査証跡は、開発者向け・履歴管理用のレビュー資料へ直接誘導せず、 このページ内に要約しています。上の検証サマリ表で対象アルゴリズム群を示し、 各アルゴリズム別セクションで公開向けの前提、実装状況、関連理論への導線を記録しています。
次に読む
前提条件と規約 - このページの前提になる時刻系と FFT 規約を整理する
数値安定性 - 適応ホワイトニングなど安定化の挙動を補う
アーキテクチャとデータフロー - 検証対象 API がどの設計の上にあるかを確認する
チュートリアル一覧 - 実際の利用例から該当手法を追う