fitting.h マニュアル

(The documentation of fitting.h)

Last update: 2023/2/28


fitting.hでは 直線などの簡単な数式でデータをフィッティングする関数が定義されている。 このヘッダファイル内で定義されている関数を以下に示す。 各関数の詳細は関数名をクリックしてリンク先を参照のこと。
Functions to fit data by simple equations (e.g., a straight line) are defined in fitting.h. Functions defined in this header file are listed below. For details of individual functions, click the links.

関数名
Function name
機能・用途
Purpose
fitting_line データを直線でフィットする。 【利用は非推奨】
Fit a data by a straight line. [Discouraged to use]
fitting_line2 データを直線でフィットする。誤差の推定方法を変えた改良版。
Fit a data by a straight line. An improved version where the error estimation is updated.
fitting_line_weight データを直線で重み付きフィットする。
Fit a data by a straight line with weights.
fitting_line_given_errors 個々のデータの誤差(前もって与えられているものとする)で重み付けして データを直線フィットする。
Fit a data by a straight line using given errors of individual samples as the weight.
fitting_quadratic データを2次関数でフィットする。
Fit a data by a quadratic function.
fitting_exp データを指数関数でフィットする。
Fit a data by an exponentail function.
determination_coefficient データの直線フィッティングにおける決定係数を計算する。
Calculate the coefficient of determination for the straight line fitting of data.

直線フィッティングを行う3つの関数 (fitting_line, fitting_line_weight, fitting_line_with_errors) の違いは以下の通りである。
The difference between the three functions for the straight line fittings (fitting_line, fitting_line_weight, and fitting_line_with_errors) is as summarized as below.

関数名
Function name
横軸の値\(x\)の誤差
Errors in the values of lateral axis \(x\)
縦軸の値\(y\)の誤差
Errors in the values of vertical axis \(y\)
フィッティングにおける各データの重み
Weights of individual data in the fitting
傾きと切片の推定誤差の評価方法
Error estimations for the slope and intercept
fitting_line 無いものとする。
Assumed to have no error.
不明。全てのデータで同じであると仮定する。
Unknown, and assumed to be homogeneous among all the data.
全てのデータを同じ重みでフィッティングする。
Fit all the data with uniform weights.
データと直線との残差を個々のデータの誤差と見なしてして計算する。
Computed using the residuals between the data and fitting line as the estimates of errors of individual data.
fitting_line2 無いものとする。
Assumed to have no error.
不明。全てのデータで同じであると仮定する。
Unknown, and assumed to be homogeneous among all the data.
全てのデータを同じ重みでフィッティングする。
Fit all the data with uniform weights.
データと直線との残差の2乗和を「データ数\(-2\)」で割った値を 個々のデータの誤差と見なしてして計算する。
Computed using the square summation of the residuals between the data and fitting line, divided by “the number of data \(-2\)’, as the estimates of errors of individual data.
fitting_line_weight 無いものとする。
Assumed to have no error.
不明。
Unknown.
データ毎に重みを変える(各データの重みをユーザが指定)。
Weights of individual data are different and given by the user.
データと直線との残差を個々のデータの誤差と見なしてして計算する。
Computed using the residuals between the data and fitting line as the estimates of errors of individual data.
fitting_line_with_errors 無いものとする。
Assumed to have no error.
既知であるものとし、ユーザが与える。
Assumed to be known, and given by the user.
誤差の逆数の2乗で重み付けしてフィッティングする。
Square inverses of the errors are used as the weights in the fitting.
与えられた個々のデータの誤差を用いて計算する。
Computed with the given errors of individual data.

この表から分かるようにfitting_lineとfitting_line_weightの違いは 重みを付けるか付けないかである。 一方、これら2つの関数とfitting_line_with_errorsでは 傾きと切片の推定誤差の評価方法が異なる。 前者ではフィッティング残差を用いて誤差評価を行うのに対し、 fitting_line_with_errorsでは前もって与えた誤差を利用する。 したがって、たとえ誤差が一様であっても誤差の絶対値が既知の場合には 関数fitting_lineではなくfitting_line_with_errorsを用いるべきである。 一方、データ間での誤差の相対的な比率は分かるが絶対値が不明というような場合は 関数fitting_line_weightを用いるべきである。
As the table shows, the difference between fitting_line and fitting_line_weight is whether to use the weights or not. The difference between these two functions and fitting_line_with_errors is that the former uses the fitting residuals as the errors of data, whereas the given errors are used in fitting_line_with_errors. Therefore, not fitting_line but fitting_line_with_errors should be used in cases where absolute values of the errors of data are known, even if the errors are uniform. In cases where only the relative errors of individual data are known without information of absolute values of the errors, then the function fitting_line_weight should be used.