Pythonはデータ分析に非常に便利な言語であり、特にグラフフィッティングはその一例です。この記事では、PythonのライブラリであるScipyのcurve_fit関数を用いたグラフフィッティングについて解説します。

フィッティングとは

フィッティングとは、測定や観測したデータに対して、モデル式のパラメータを変えていき、最もデータに合う(fitする)パラメータ値を決定することを指します。得られたモデル式を使って、実測データがない部分の値を推定(内挿、外挿)できます。

Scipyのcurve_fit関数

Scipyのcurve_fit関数は、フィッティングに最も重要な役割を果たします。この関数を用いると、パラメータの初期値を適当に設定しさえすれば、任意の関数・複数のパラメータが含まれている関数に対して、曲線近似ができ、パラメータのフィッティング誤差まで求めることができます。

フィッティングの評価方法

フィッティング後に、どれだけモデル式がデータに合ったかを定量的に示す方法として、カイ二乗と決定係数があります。

カイ二乗

カイ二乗は、データ値と、モデル式から計算される予測値とを使って次の「カイ二乗」を計算します。

$$
χ^2 = ∑ \frac{(yo − ye)^2}{ye}
$$

この数値は、「二乗」と言いつつ負も許される値ですが、これが0に近ければ近いほどに、モデル式がデータ値に合っている(fitしている)ことになります。

決定係数

決定係数は次のような式で定義されています。

$$
R^2 = 1 − \frac{∑(yo–ye)^2}{∑(yo–yo¯ ¯¯¯¯)^2}
$$

ここで $yo$ は測定値で、 $ye$ はモデル式による予測値です。 $yo¯ ¯¯¯¯$ は観測値の平均を表しています。

この数値はイメージがしやすいですね。 $R^2$ ≃ 1 ならモデル式の精度が高く、 $R^2$ ≃ 0 ならモデル式の精度が低いと言えます。

まとめ

Pythonを用いたグラフフィッティングは、データ分析において非常に有用な手法です。Scipyのcurve_fit関数を用いることで、任意の関数に対して簡単にフィッティングを行うことができます。また、フィッティングの評価方法としてカイ二乗や決定係数を用いることで、フィッティングの精度を定量的に評価することが可能です。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です