Statistics[NonlinearFit] - 非線形モデル関数をデータに当てはめる
使い方
NonlinearFit(falg, X, Y, v, options)
NonlinearFit(fop, X, Y, options)
パラメータ
falg - 代数的関数 ; 代数形式のモデル関数
X - ベクトルか行列 ; 独立変数 (s) の値
Y - ベクトル ; 従変数の値
v - 名前かリスト ( 名前の ) ; モデル関数のの独立変数の名前 (s)
fop - 手続き ; 演算子形式のモデル関数
options - ( オプション ) option を initialvalues, output, parameternames, parameterranges および weights の一つとした option=value 形式の等式 (s) ; NonlinearFit コマンドのための指定
|
説明
|
|
•
|
NonlinearFit コマンドはモデルパラメータに関して非線形なモデル関数を最小二乗誤差を最小とすることでデータに当てはめます。モデル関数が線形である場合は、Statistics[LinearFit] コマンドの使用を推奨します。誤差は局所的な場所で最小限に評価されます。; 下記の注意をご参照ください。
|
•
|
y を従変数、f を n 個の独立変数 x_1, x_2, ..., x_n と m個のモデルパラメータ a_1, a_2, ..., a_m のモデル関数としたモデル y = f(x_1, x_2, ..., x_n; a_1, a_2, ... a_m) を考えます。各データ点を (x_1, x_2, ..., x_n, y) に対する数値の (n+1)-組 とした k 個のデータ点を与えると、NonlinearFit コマンドは二乗残差が最小となる k の和となるモデルパラメータの値を求めます。i 番目の残差は i 番目のデータ点での y - f(x_1, x_2, ..., x_n; a_1, a_1, ..., a_m) 評価の値となります。
|
•
|
最初に呼び出される列において、最初のパラメータ falg は独立変数 x_1, x_2, ..., x_n とモデルパラメータ a_1, a_2, ..., a_m の代数表現となっています。
|
•
|
二番目のパラメータ X は独立変数の値を含む行列となります。行列の i 行には、j 列が全ての単独の変数 x_j の値を含んでいる間、i 番目のデータ点の n 個の値が含まれています。もしこれらが一つの独立変数ならば、X はベクトルか k × 1 行列のどちらかとすることができます。三つ目のパラメータ Y は k 個の従変数 y の値を含んだベクトルとなります。
|
•
|
四つ目のパラメータ v は falg による名前が使用されている独立変数のリストとなります。もしこれらが一つの独立変数のみからなる場合、v は単独の名前とすることができます。リストにある名前のオーダーは、独立変数の値が X の列となるように完全に正確なものでなければなりません。
|
•
|
二番目に呼び出される列において、最初のパラメータ fop は、独立変数 x_1, x_2, ..., x_n によって表記された n 個の入力パラメータと、その後に続くモデルパラメータ a_1, a_2, ..., a_m によって表記された m 個の入力パラメータ、さらに返された単独の値 f(x_1, x_2, ..., x_n; a_1, a_2, ..., a_m) を持つ手続きとなります。二番目のパラメータ X と三番目のパラメータ Y は、代数形式の入力に対する上記のものとなります。
|
•
|
デフォルトでは、最後のパラメータの値を含むモデル関数とパラメータの値を含むベクトルのどちらか一方が返され、入力形式に依存しています。追加した結果、あるいは様々な設定と結果のための疑問を許した解のモジュールは、output オプションを含んで得ることができます。詳細は Statistics/Regression/Solution のヘルプページをご参照ください。
|
•
|
データ点の荷重は weights オプションを通して与えることができます。
|
|
|
オプション
|
|
•
|
initialvalues = set(equation), list(equation), list(realcons) あるいは Vector(realcons) -- パラメータの初期値を設定します。
|
•
|
output = name あるいは string -- 解の形式を指定します。output オプションは名前 solutionmodule の値、あるいは以下の名前 ( あるいはそれらの名前のリスト ) のいずれか一つをとることができます。: degreesoffreedom, leastsquaresfunction, parametervalues, parametervector, residuals, residualmeansquare, residualstandarddeviation, residualsumofsquares 詳細は Statistics/Regression/Solution をご参照ください。
|
•
|
parameternames = list(name) -- モデル関数のパラメータの名前のオーダーを指定します。これは値がベクトル値の結果となるオーダーを決定します。
|
•
|
parameterranges = list(name=range), list(range) -- 各パラメータが許される区間を指定します。
|
•
|
weights = Vector -- データ点の荷重を設定します。
|
|
|
注意
|
|
•
|
NonlinearFit コマンドは、数値アルゴリズム群 (NAG) により設定された内部のライブラリによって、様々な計算法が使用される Optimization[LSSolve] コマンドの行列形式版を期待しています。更なる詳細は Optimization[LSSolveMatrixForm] のヘルプページで利用可能となります。そのページに記載された追加オプションは NonlinearFit コマンドを設定することができ、直接 LSSolve コマンドを通すことになるかもしれません。
|
•
|
Optimization[LSSolve] コマンドは非線形の最小二乗問題の局所的な解のみを計算します。NonlinearFit で返されたパラメータの値は、局所的な二乗残差の和を最小にします。使用者は initialvalues オプションに使用するパラメータの初期値を設定することを極めて推奨いたします。
|
•
|
最小二乗問題を解かれた場合の更なる詳細を得るには infolevel[Statistics] を 1 以上に設定してください。Optimization ソルバーの発展に関する詳細を得るには infolevel[Optimization] を 1 以上に設定してください。
|
|
|
例
|
|
>
|
X := Vector([1, 2, 3, 4, 5, 6], datatype=float):
Y := Vector([2.2, 3, 4.8, 10.2, 24.5, 75.0], datatype=float):
NonlinearFit(a+b*v+exp(c*v), X, Y, v);
|
| (4.1) |
|
|