データのカーブフィット(パート2)

 パート2ということで、今回はデータのカーブフィットを実施した例を紹介する。量が多いので2回に分ける。本来なら、内蔵されている線形多項式や対数関数を回帰式に採用した例を先に紹介すべきだが、それはツールのサイトを見て貰えば理解できるであろう。そこで一足飛びに「回帰式をユーザー指定するオプション」の使い方を掲載する。

データ解析ツールは複数触ってきたが、使い勝手が良く、長く付き合っているのはKaleidaGraphだ。DeltaGraphProも素晴らしい。グラフ完成度は両ツールとも科学技術論文掲載レベルなので言うことは無い。

以下にKaleidaGraphによる非線形最小二乗法によるカーブフィットの例を記載する。

-----------------------------------------------------------------------------------

非線形最小二乗法によるカーブフィットの例(KaleidaGraph)

1 計測データの用意

 通常は表計算ソフトなどのデータでよい。チャート紙のデータは適当なデジタイザーを用いるか、または手入力でデジタル化しておく。

図1はKaleidaGraphに直接入力した画面である。表計算ソフト風のデータシートに出来上がる。表計算ソフトやグラフ作成ソフトのデータであれば、大概はKaleidaGraphに読み込むことが出来る。

図1

2 実測データのグラフ化

 最上段にあるギャラリーメニューから散布図を選択する、プロットしたいデータをよく見てxとyの先頭にチェックを入れる。図2のようにグラフ化される。線の種類や太さ、凡例のシンボル形、軸、ラベル、フォント等は後から自由に変えられる。

図2

3 回帰式の見積り

 KaleidaGraphには多くの回帰曲線式が用意されている。Curve fitメニューには、以下の2つのサブメニューがある。

・General(指数関数的減衰カーブ、指数関数的成長カーブ、指数関数的増加カーブ、ガウス分布

 ミカエリス・メンテン式、べき乗フィット、S字型曲線)

・線形一次式、線形多項式、対数関数、指数関数、べき乗関数

片っ端から試して行くと、今回のデータにはべき乗関数が相応しい事がわかった。

図3は実行結果で、回帰式と相関係数Rが表示されている事が判る。見やすくするためプロットには若干の変更を加えている。

図3

4 ユーザー指定の回帰式

 単純なべき乗関数では回帰係数が2個である。さらに回帰係数を増やせば他の点も通過して、カーブフィット精度が上がるのではないだろうか?と予想できる。

ここからはCurve FitメニューのGeneralを用いて、回帰式をユーザー指定していく。Generalから図4の画面が現れる。青色で囲まれた領域にユーザー指定回帰式を入力していく。m1、m2などが回帰係数で、M0が変数xである。ユーザー指定回帰式と初期値などはセミコロンで区切る。許容誤差はデフォルトが1%である。

図4

単純なべき乗関数に回帰係数を1つ増やしたのが図5だ。初期値は安全のため、故意に1.0以外を入力してある(KaleidaGraph非線形最小二乗法にはLevenberg-Marquardtが採用されていて、この手法は初期値に敏感である事が知られている)。経験上許容誤差を1/10000としてある。もっと緩くても構わないケースがほとんどだろう。OKボタンを押すと計算が実行される。

図5

図6の結果を見ると、相当カーブフィット精度が上がっていることが判る。回帰式だけでなく、回帰係数、カイ二乗値、相関係数も出力されている。回帰式をユーザー指定すると、統計的な情報が豊富に現れる仕組みだ。

図6

このように、相関係数Rを目安に回帰式の回帰係数を増やしていくと精度がアップする。必要な精度に達したら終了である。しかし課題の初期段階ではあまり精度は考慮しなくてもよい。課題途中で精度を上げても時間のロスである。終わりが見え始めた頃にジックリ考えれば良い。

------------------------------------------------------------------------------------