lsq_func_error_argparse プログラム仕様
lsq_func_error_argparse.py
汎用的な非線形最小二乗フィッティングプログラム。
このスクリプトは、与えられたモデル関数とデータに対して非線形最小二乗フィッティングを実行し、 パラメータの標準誤差と信頼区間を推定します。また、結果をExcelファイルに保存し、 フィッティングの進捗と最終結果をグラフで表示します。
特徴
モデル関数はコマンドラインから文字列として与えられます(例: --func "p[0]*exp(-((x[0]-p[1])/p[2])**2)")。
--xlabels を通じて複数の独立変数をサポートします。
scipy.optimize.minimize を使用してパラメータを最適化できます。
パラメータの標準誤差は数値ヤコビアンから推定されます。
デルタ法によって信頼帯/不確実性帯が計算されます。
結果はExcelファイルに保存されます。
注意事項
このスクリプトは、ローカルでの研究利用を意図しています。 式評価には eval() を使用しますが、グローバル変数は制限されています。 信頼できない式は渡さないでください。
- class regression.lsq_func_error_argparse.LiveFitPlotter(cfg: SimpleNamespace, data: Dict[str, Any], y_initial: ndarray)[ソース]
ベースクラス:
object非線形フィッティングの進行状況をリアルタイムで監視するためのライブプロッタークラス。
コンストラクタで初期プロットを設定し、フィッティングデータと初期モデルをプロットします。 update メソッドは、最適化の反復中にモデルの現在のフィットとMSEの収束履歴を更新します。 finalize メソッドは、最適化完了後の最終状態をプロットに反映させます。 プロットは matplotlib.pyplot を使用し、インタラクティブモードで動作します。
- finalize(p_final: ndarray, mse_history: Dict[str, list], env: Dict[str, Any]) None[ソース]
ライブフィッティングプロットを最終状態に更新します。
最適化が完了した後、最終的なパラメータと履歴でプロットを一度だけ更新します。 これにより、ライブ更新間隔に関わらず常に最終結果が表示されます。
- パラメータ:
p_final -- numpy.ndarray 最適化された最終パラメータのベクトル。
mse_history -- Dict[str, list] MSEの収束履歴。
env -- Dict[str, Any] 評価環境。
- 戻り値:
None
- update(iteration: int, p_current: ndarray, mse_history: Dict[str, list], env: Dict[str, Any]) None[ソース]
ライブフィッティングプロットを更新します。
cfg.nplot_interval で指定された間隔でのみ更新を行います。 現在のパラメータ p_current に基づいてモデル予測値を再計算し、フィットプロットを更新します。 mse_history に基づいてMSE収束プロットを更新し、軸の範囲を調整します。 plt.pause を使用して、描画を一時停止し、GUIイベントを処理します。
- パラメータ:
iteration -- int 現在の最適化の反復回数。
p_current -- numpy.ndarray 現在のパラメータのベクトル。
mse_history -- Dict[str, list] MSEの収束履歴。
env -- Dict[str, Any] 評価環境。
- 戻り値:
None
- regression.lsq_func_error_argparse.active_bounds(bounds_full: List[Tuple[float | None, float | None]] | None, active_mask: ndarray) List[Tuple[float | None, float | None]] | None[ソース]
全パラメータの境界リストからアクティブなパラメータの境界のみを抽出します。
bounds_full が None の場合は None を返します。 それ以外の場合、active_mask に対応する境界のみを抽出してリストとして返します。
- パラメータ:
bounds_full -- Optional[List[Tuple[Optional[float], Optional[float]]]] 全パラメータの境界のリスト。
active_mask -- numpy.ndarray アクティブなパラメータを示すブールマスク。
- 戻り値:
Optional[List[Tuple[Optional[float], Optional[float]]]] アクティブなパラメータの境界のリスト、または None。
- regression.lsq_func_error_argparse.build_eval_env() Dict[str, Any][ソース]
モデル関数を安全に評価するための環境(名前空間)を構築します。
eval() 関数で使用されるグローバル名前空間を制限し、 許可されたモジュールや関数(numpy の一部関数、数学関数など)のみを含めます。 これにより、モデル関数文字列の評価におけるセキュリティリスクを低減します。
- 戻り値:
Dict[str, Any] 評価環境として使用される辞書。
- regression.lsq_func_error_argparse.cal_y_array(x: ndarray, p: ndarray, cfg: SimpleNamespace, env: Dict[str, Any]) ndarray[ソース]
複数の独立変数データポイント x とパラメータ p を使用してモデル関数を評価します。
x は (nvar, ndata) の形状を持つ配列で、各列が1つのデータポイントに対応します。 cal_y_one を各データポイントに対して繰り返し呼び出し、結果をNumPy配列として返します。
- パラメータ:
x -- numpy.ndarray 独立変数の配列(形状: (nvar, ndata))。
p -- numpy.ndarray パラメータのベクトル。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境(グローバル名前空間)。
- 戻り値:
numpy.ndarray モデル関数の計算結果の配列(形状: (ndata,))。
- regression.lsq_func_error_argparse.cal_y_one(x_one: ndarray, p: ndarray, cfg: SimpleNamespace, env: Dict[str, Any]) float[ソース]
単一の独立変数ベクトル x_one とパラメータ p を使用してモデル関数を評価します。
cfg.func で指定されたモデル関数文字列を eval() を用いて評価します。 評価環境 env と、独立変数 x およびパラメータ p のローカル変数として提供されます。
- パラメータ:
x_one -- numpy.ndarray 単一のデータ点における独立変数のベクトル。
p -- numpy.ndarray パラメータのベクトル。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境(グローバル名前空間)。
- 戻り値:
float モデル関数の計算結果。
- regression.lsq_func_error_argparse.compute_uncertainty_bands(xcal: ndarray, p: ndarray, cfg: SimpleNamespace, env: Dict[str, Any], cov_active: ndarray, sigma2_resid: float, confidence: float) Dict[str, ndarray][ソース]
デルタ法を用いて、モデル予測値の不確実性バンド(信頼区間)を計算します。
計算グリッド xcal におけるモデルの平均予測値 y_mean を計算します。 xcal におけるモデルのヤコビアン Jcal を数値的に計算します。 パラメータの不確実性に起因する分散 var_param と、モデル予測の分散 var_pred を計算します。 Studentのt分布を使用して、指定された confidence レベルに対応する乗数 (tval) を求めます。 パラメータ信頼区間 (ci_param) と予測信頼区間 (ci_pred) を計算します。
- パラメータ:
xcal -- numpy.ndarray 計算グリッドの独立変数。
p -- numpy.ndarray 最適化されたパラメータのベクトル。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境。
cov_active -- numpy.ndarray アクティブなパラメータの共分散行列。
sigma2_resid -- float 残差の分散(sigma^2)。
confidence -- float 信頼水準 (例: 0.6827)。
- 戻り値:
Dict[str, numpy.ndarray] 不確実性バンド情報を含む辞書。
- regression.lsq_func_error_argparse.covariance_from_jacobian(J: ndarray, residuals: ndarray) Dict[str, Any][ソース]
非線形最小二乗法の線形化に基づいて、パラメータの共分散行列を推定します。
共分散行列 cov は sigma^2 * inv(J^T J) として計算されます。 sigma^2 (残差分散) は RSS / dof (自由度) から求められます。 自由度が0以下の場合、または J^T J の逆行列が計算できない場合、共分散は推定されません。 診断メッセージや有効性フラグを含む辞書を返します。
- パラメータ:
J -- numpy.ndarray モデルのヤコビアン行列(形状: (ndata, n_active))。
residuals -- numpy.ndarray 残差ベクトル(観測値 - モデル予測値)。
- 戻り値:
Dict[str, Any] 推定された共分散情報を含む辞書。
- regression.lsq_func_error_argparse.expand_active_matrix(m_active: ndarray | None, cfg: SimpleNamespace, fill: float = nan) ndarray[ソース]
アクティブなパラメータに対応する行列を、固定されたパラメータを含む完全なパラメータ数に拡張します。
m_active が None の場合、完全な行列は fill 値で埋められます。 m_active が与えられた場合、cfg.active_mask に従って m の適切な位置に値を配置し、 固定されたパラメータに対応する対角要素は 0.0 で埋めます。
- パラメータ:
m_active -- Optional[numpy.ndarray] アクティブなパラメータの行列(共分散行列など)。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
fill -- float (オプション) アクティブでないパラメータの埋め込み値(デフォルトは NaN)。
- 戻り値:
numpy.ndarray 完全なパラメータ数に拡張された行列。
- regression.lsq_func_error_argparse.expand_active_vector(v_active: ndarray | None, cfg: SimpleNamespace, fill: float = nan) ndarray[ソース]
アクティブなパラメータに対応するベクトルを、固定されたパラメータを含む完全なパラメータ数に拡張します。
v_active が None の場合、完全なベクトルは fill 値で埋められます。 v_active が与えられた場合、cfg.active_mask に従って v の適切な位置に値を配置し、 cfg.fixed_mask の位置は 0.0 で埋めます。
- パラメータ:
v_active -- Optional[numpy.ndarray] アクティブなパラメータのベクトル。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
fill -- float (オプション) アクティブでないパラメータの埋め込み値(デフォルトは NaN)。
- 戻り値:
numpy.ndarray 完全なパラメータ数に拡張されたベクトル。
- regression.lsq_func_error_argparse.gradient_q(q: ndarray, p_template: ndarray, x: ndarray, y: ndarray, cfg: SimpleNamespace, env: Dict[str, Any]) ndarray[ソース]
アクティブなパラメータに関する目的関数 objective_q の勾配を数値的に計算します。
各アクティブパラメータについて、中心差分法を用いて勾配の要素を計算します。
- パラメータ:
q -- numpy.ndarray アクティブなパラメータのベクトル。
p_template -- numpy.ndarray 固定されたパラメータを含む完全なパラメータのテンプレート。
x -- numpy.ndarray 独立変数の配列。
y -- numpy.ndarray 従属変数の観測値。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境。
- 戻り値:
numpy.ndarray 目的関数の勾配ベクトル。
- regression.lsq_func_error_argparse.initialize() SimpleNamespace[ソース]
コマンドライン引数をパースし、設定オブジェクトを初期化します。
argparse を使用して引数を定義・パースします。 パラメータの初期値、独立変数のラベル、従属変数のラベル、フィッティング範囲、 最適化メソッド、最大反復回数、許容誤差、境界、固定パラメータ、数値微分のステップサイズ、 計算グリッド設定、出力パス、信頼区間レベル、プロットオプションなどを設定します。 パース後、浮動小数点数リストや文字列リスト、マスク配列などに変換し、 設定オブジェクト (types.SimpleNamespace) として返します。 全てのパラメータが固定されている場合はエラーで終了します。 出力ファイルパスを生成します。
- 戻り値:
types.SimpleNamespace 設定パラメータを含むオブジェクト。
- regression.lsq_func_error_argparse.load_data(cfg: SimpleNamespace) Dict[str, Any][ソース]
設定オブジェクトに基づいて入力データを読み込み、処理します。
cfg.infile からデータを読み込みます。 cfg.xlabels_list と cfg.ylabel に基づいて独立変数 X と従属変数 y を抽出します。 cfg.fit_range に基づいて、有効なフィッティングデータポイントをマスクします。 有効なデータポイントがない場合、エラーで終了します。
- パラメータ:
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
- 戻り値:
Dict[str, Any] 処理されたデータを含む辞書。キーは 'df', 'xlabels', 'ylabel', 'x', 'y', 'ranges'。
- regression.lsq_func_error_argparse.main() None[ソース]
プログラムのメインエントリポイント。
initialize() を呼び出して設定をロードします。 load_data() を呼び出して入力データを読み込みます。 build_eval_env() で評価環境を構築します。 cfg.mode が 'sim' (シミュレーション) の場合、フィッティングせずに結果を保存・プロットして終了します。 cfg.mode が 'fit' (フィッティング) の場合、scipy.optimize.minimize を使用して 非線形最小二乗フィッティングを実行します。 フィッティング中、LiveFitPlotter を使用してライブプロットを更新します。 フィッティング完了後、ヤコビアンからパラメータの不確実性(標準誤差、共分散、相関)を推定します。 compute_uncertainty_bands() を使用して信頼区間を計算します。 save_outputs() と plot_results() を呼び出して結果を保存・表示します。 処理中にエラーが発生した場合、詳細なトレースバックを表示し、終了します。
- 戻り値:
None
- regression.lsq_func_error_argparse.make_calculation_grid(x: ndarray, cfg: SimpleNamespace) ndarray[ソース]
プロットや計算のために、モデル評価用の独立変数グリッドを生成します。
独立変数が1次元の場合 (nvar == 1)、cfg.xcalmin、cfg.xcalmax、cfg.ncal に基づいて 等間隔のグリッドを生成します。'*' や空の指定はデータ範囲全体を意味します。 独立変数が多次元の場合 (nvar > 1)、元のデータ x をそのまま計算グリッドとして使用します。
- パラメータ:
x -- numpy.ndarray 元のデータセットの独立変数。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
- 戻り値:
numpy.ndarray 計算用の独立変数グリッド。
- regression.lsq_func_error_argparse.numerical_model_jacobian(p: ndarray, x: ndarray, cfg: SimpleNamespace, env: Dict[str, Any]) ndarray[ソース]
モデル関数 f(x, p) の、アクティブなパラメータに関するヤコビアン行列を数値的に計算します。
ヤコビアン J は (ndata, n_active) の形状を持ちます。 各アクティブパラメータ p[ip] について、中心差分法を用いて f の偏導関数を計算します。
- パラメータ:
p -- numpy.ndarray 完全なパラメータのベクトル(固定パラメータを含む)。
x -- numpy.ndarray 独立変数の配列(形状: (nvar, ndata))。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境。
- 戻り値:
numpy.ndarray モデルのヤコビアン行列 J。
- regression.lsq_func_error_argparse.objective_q(q: ndarray, p_template: ndarray, x: ndarray, y: ndarray, cfg: SimpleNamespace, env: Dict[str, Any], history: Dict[str, list] | None = None) float[ソース]
最適化の目的関数(二乗平均誤差、MSE)を計算します。
アクティブなパラメータ q を完全なパラメータベクトル p に展開します。 モデル残差を計算し、二乗和(RSS)を求め、データ数で割ってMSEを計算します。 history が指定されている場合、現在のパラメータとMSEを記録します。 MSEが有限でない場合、非常に大きな値を返します。
- パラメータ:
q -- numpy.ndarray アクティブなパラメータのベクトル。
p_template -- numpy.ndarray 固定されたパラメータを含む完全なパラメータのテンプレート。
x -- numpy.ndarray 独立変数の配列。
y -- numpy.ndarray 従属変数の観測値。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境。
history -- Optional[Dict[str, list]] (オプション) 最適化履歴を記録するための辞書。
- 戻り値:
float 二乗平均誤差 (MSE)。
- regression.lsq_func_error_argparse.pack_active(p_full: ndarray, active_mask: ndarray) ndarray[ソース]
全パラメータベクトルからアクティブな(固定されていない)パラメータを抽出します。
active_mask が True の位置にある要素のみを新しい配列として返します。
- パラメータ:
p_full -- numpy.ndarray 全パラメータのベクトル。
active_mask -- numpy.ndarray アクティブなパラメータを示すブールマスク。
- 戻り値:
numpy.ndarray アクティブなパラメータのみを含むベクトル。
- regression.lsq_func_error_argparse.parse_bounds(text: str, n: int) List[Tuple[float | None, float | None]] | None[ソース]
'lower:upper'形式の最適化境界指定文字列をパースし、浮動小数点数またはNoneのタプルのリストを返します。
text が空、'*'、'none'、または 'None' の場合、境界なしと見なされます(None を返します)。 単一の境界が指定され、n が1より大きい場合、その境界が n 回繰り返されます。 各境界は lower:upper 形式である必要があります。* または空は None として扱われます。
- パラメータ:
- 戻り値:
Optional[List[Tuple[Optional[float], Optional[float]]]] 各パラメータに対する (下限, 上限) のタプルのリスト、または None。
- 例外:
ValueError -- 境界の数がnと一致しない、または形式が不正な場合。
- regression.lsq_func_error_argparse.parse_fixed(text: str, n: int) ndarray[ソース]
固定するパラメータのインデックス指定文字列をパースし、ブール値のマスク配列を返します。
text が空、'*'、'none'、または 'None' の場合、全てのパラメータは固定されないと見なされます。 カンマ区切りのインデックスリストとして指定します(例: '0,2')。 指定されたインデックスが範囲外の場合、ValueErrorを発生させます。
- パラメータ:
text -- str 固定するパラメータのインデックス文字列。
n -- int パラメータの総数。
- 戻り値:
numpy.ndarray n要素を持つブール配列。Trueは対応するパラメータが固定されていることを示します。
- 例外:
ValueError -- 固定パラメータのインデックスが範囲外の場合。
- regression.lsq_func_error_argparse.parse_float_list(text: str, name: str) List[float][ソース]
カンマ区切りの文字列を浮動小数点数のリストにパースします。
空の文字列やスペースのみの要素は無視されます。 パースに失敗した場合、ValueErrorを発生させます。
- パラメータ:
text -- str パースするカンマ区切りの文字列。
name -- str エラーメッセージに含める変数名。
- 戻り値:
List[float] パースされた浮動小数点数のリスト。
- 例外:
ValueError -- テキストを浮動小数点数のリストとしてパースできなかった場合。
- regression.lsq_func_error_argparse.parse_ranges(text: str, n: int, default_min: float = -1e+100, default_max: float = 1e+100) List[Tuple[float, float]][ソース]
'xmin:xmax'形式の範囲指定文字列をパースし、浮動小数点数のタプルのリストを返します。
text が空または '*' の場合、全ての変数に対してデフォルトの最小値・最大値を使用します。 単一の範囲が指定され、n が1より大きい場合、その範囲が n 回繰り返されます。 各範囲は xmin:xmax 形式である必要があります。* または空はデフォルト値として扱われます。
- パラメータ:
text -- str パースする範囲指定文字列(例: '-1:1, 0:100')。
n -- int 期待される範囲の数(独立変数の数)。
default_min -- float (オプション) デフォルトの最小値(デフォルトは非常に小さい値)。
default_max -- float (オプション) デフォルトの最大値(デフォルトは非常に大きい値)。
- 戻り値:
List[Tuple[float, float]] 各変数に対する (最小値, 最大値) のタプルのリスト。
- 例外:
ValueError -- 範囲の数がnと一致しない、または形式が不正な場合。
- regression.lsq_func_error_argparse.parse_str_list(text: str) List[str][ソース]
カンマ区切りの文字列を文字列のリストにパースします。
各要素の前後の空白は取り除かれ、空の文字列やスペースのみの要素は無視されます。
- パラメータ:
text -- str パースするカンマ区切りの文字列。
- 戻り値:
List[str] パースされた文字列のリスト。
- regression.lsq_func_error_argparse.pause_if_needed(pause: int) None[ソース]
必要に応じてプログラムの実行を一時停止します。
- パラメータ:
pause -- int 0以外の場合に一時停止するフラグ。
- 戻り値:
None
- regression.lsq_func_error_argparse.plot_results(cfg: SimpleNamespace, data: Dict[str, Any], p_opt: ndarray, y_initial: ndarray, y_fit: ndarray, p_std: ndarray, bands: Dict[str, ndarray] | None, xcal: ndarray) None[ソース]
フィッティング結果と不確実性バンドをプロットします。
cfg.plot が False の場合、何もしません。 cfg.plot_ci に応じて、モデルフィットとパラメータ誤差の2つのサブプロットを作成します。 独立変数が1次元の場合と多次元の場合でプロット方法を分けます。 データ、初期モデル、フィットしたモデル、および設定に応じてパラメータ信頼区間、 予測信頼区間をプロットします。 パラメータ誤差プロットでは、各パラメータの最終値と標準誤差をエラーバーで表示します。 プロットのタイトル、ラベル、凡例、フォントサイズを設定します。
- パラメータ:
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
data -- Dict[str, Any] ロードされたデータ。
p_opt -- numpy.ndarray 最適化されたパラメータのベクトル。
y_initial -- numpy.ndarray 初期パラメータでのモデル予測値。
y_fit -- numpy.ndarray 最適化されたパラメータでのモデル予測値(データ点上)。
p_std -- numpy.ndarray パラメータの標準誤差のベクトル。
bands -- Optional[Dict[str, numpy.ndarray]] 不確実性バンド情報、または None。
xcal -- numpy.ndarray 計算グリッドの独立変数。
- 戻り値:
None
- regression.lsq_func_error_argparse.read_table(path: str) DataFrame[ソース]
指定されたパスのファイルからデータを読み込み、DataFrameとして返します。
ファイルの拡張子に基づいて、Excelファイル (.xlsx, .xlsm, .xls) または CSVファイル (.csv) として読み込みを試みます。 上記のいずれにも該当しない場合、空白またはタブ区切りのテキストファイルとして 読み込みを試みます。 ファイルが存在しない場合はエラーで終了します。
- パラメータ:
path -- str 読み込むファイルのパス。
- 戻り値:
pandas.DataFrame 読み込まれたデータを含むDataFrame。
- regression.lsq_func_error_argparse.replace_path(path: str, suffix: str) str[ソース]
指定されたパスのファイル名部分にサフィックスを追加した新しいパスを返します。
パスからディレクトリ名とファイル名本体を抽出し、 ファイル名本体にサフィックスを追加して結合します。
- パラメータ:
path -- str 元のファイルパス。
suffix -- str ファイル名に追加するサフィックス。
- 戻り値:
str サフィックスが追加された新しいファイルパス。
- regression.lsq_func_error_argparse.residual_vector(p: ndarray, x: ndarray, y: ndarray, cfg: SimpleNamespace, env: Dict[str, Any]) ndarray[ソース]
モデルの残差ベクトル(観測値 - モデル予測値)を計算します。
cal_y_array を呼び出してモデル予測値を計算し、それを観測値 y から減算します。
- パラメータ:
p -- numpy.ndarray パラメータのベクトル。
x -- numpy.ndarray 独立変数の配列。
y -- numpy.ndarray 従属変数の観測値。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
env -- Dict[str, Any] 評価環境。
- 戻り値:
numpy.ndarray 残差のベクトル。
- regression.lsq_func_error_argparse.save_outputs(cfg: SimpleNamespace, data: Dict[str, Any], p_opt: ndarray, p_std: ndarray, cov_full: ndarray, corr_full: ndarray, y_initial: ndarray, y_fit: ndarray, history: Dict[str, list], cov_info: Dict[str, Any], bands: Dict[str, ndarray] | None, xcal: ndarray) None[ソース]
フィッティング結果、パラメータ、共分散、収束履歴などをExcelファイルとして保存します。
フィッティングデータ (df_fit)、計算グリッド上のモデルと不確実性バンド (df_cal)、 最適化履歴 (df_conv)、パラメータ情報 (df_param)、共分散行列 (df_cov)、 相関行列 (df_corr)、およびサマリー情報 (df_summary) を生成します。 これらのDataFrameをそれぞれ異なるシートとして、設定された出力Excelファイル (cfg.output_fitting_path および cfg.output_parameter_path) に書き込みます。 収束履歴は別途CSVファイル (cfg.output_convergence_path) としても保存されます。
- パラメータ:
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
data -- Dict[str, Any] ロードされたデータ。
p_opt -- numpy.ndarray 最適化されたパラメータのベクトル。
p_std -- numpy.ndarray パラメータの標準誤差のベクトル。
cov_full -- numpy.ndarray 完全な共分散行列。
corr_full -- numpy.ndarray 完全な相関行列。
y_initial -- numpy.ndarray 初期パラメータでのモデル予測値。
y_fit -- numpy.ndarray 最適化されたパラメータでのモデル予測値(データ点上)。
history -- Dict[str, list] 最適化の収束履歴。
cov_info -- Dict[str, Any] 共分散計算結果の詳細情報。
bands -- Optional[Dict[str, numpy.ndarray]] 不確実性バンド情報、または None。
xcal -- numpy.ndarray 計算グリッドの独立変数。
- 戻り値:
None
- regression.lsq_func_error_argparse.step_for_param(value: float, cfg: SimpleNamespace) float[ソース]
数値微分に使用するパラメータのステップサイズを計算します。
cfg.jac_absstep (絶対ステップ) と cfg.jac_relstep (相対ステップ) に基づいて ステップサイズを決定します。相対ステップは、パラメータの絶対値または1.0のうち 大きい方に乗算されます。
- パラメータ:
value -- float ステップサイズを計算する対象のパラメータ値。
cfg -- types.SimpleNamespace 設定パラメータを含むオブジェクト。
- 戻り値:
float 計算されたステップサイズ。
- regression.lsq_func_error_argparse.terminate(message: str, pause: int = 1, code: int = 1) None[ソース]
エラーメッセージを表示し、プログラムを終了します。
指定されたメッセージを表示し、必要に応じて一時停止した後、 指定された終了コードでプロセスを終了します。
- パラメータ:
message -- str 表示するエラーメッセージ。
pause -- int (オプション) 終了前に一時停止するかどうかのフラグ (デフォルトは1)。
code -- int (オプション) プロセス終了コード (デフォルトは1)。
- 戻り値:
None (実際にはsys.exitにより終了)
- regression.lsq_func_error_argparse.unpack_active(q: ndarray, p_template: ndarray, active_mask: ndarray) ndarray[ソース]
アクティブなパラメータ q を、固定されたパラメータを含む完全なパラメータベクトル p に展開します。
p_template をコピーし、active_mask が True の位置に q の要素を挿入します。
- パラメータ:
q -- numpy.ndarray アクティブなパラメータのみを含むベクトル。
p_template -- numpy.ndarray 固定されたパラメータを含む完全なパラメータのテンプレートベクトル。
active_mask -- numpy.ndarray アクティブなパラメータを示すブールマスク。
- 戻り値:
numpy.ndarray qの値が埋め込まれた完全なパラメータベクトル。