データのカーブフィット

「手計算しにくい方程式・・・」の話から一度離れよう。

計測データから何か有用なものを得たい時、またはそのデータを二次利用したい時に、数式の形が好ましい場合がある(以下参照)。

・測定値の間に存在するであろう値を予測したい。

・理論や原理と評価したいので事前に数式化しておきたい。

・シミュレート計算するので、カーブを数式にしたい。

このような場合に活用するのが統計処理である。その中でも回帰分析という範疇に最小二乗法というカーブフィット手法がある。自然界の物理現象は直線や二次曲線で近似出来る場合は少ない。多くは対数やベキ関数の組み合わせなどの非線形になる。線形の数式であればプログラム電卓やExcelPythonなどでプログラミング容易である。しかし非線形数式へのカーブフィットプログラミングはおいそれとは行かない。プログラミングがメインワークである人は限られるのだから、出来るだけツールを見つけてそれを有効利用する方が賢い選択だ。世の中にはこの非線形最小二乗法(Levensberg-Marquardt法が有名)をやってのけるツールが複数存在する。

Excelでもカーブフィットできる」という声が聞こえてくるが、「線形なら」という条件付きと考えてよい。統計的な特殊関数まで考えたい場合は非線形最小二乗が可能なデータ解析ツールを利用したほうが絶対に楽だ。今まで遭遇したもので、推薦は以下のものだ(WinはWindows版)。

DeltaGraph Pro

KaleidaGraph

IGOR Pro

Sigmaplot (Win)

Origin Pro (Win)

TableCurve 2D (Win)

R(オープン)

SciDAVis(オープン)

 

カーブフィットに用いられる数式

個人的な知識範囲内での意見であるが、どの数式を使うか学問的に纏まられた成書は殆ど無く、ルールが確立しているとは言い難い。実験の基礎原理をよく理解して、計測データグラフと似た数式を調べて採用するしかない。そのため、上に挙げたデータ解析ツールには推奨の数式パターンが複数内蔵されていて、そこから選択できるようになっている。それを見ながらカーブフィッティングし、試行錯誤して最適と思われる数式に辿りつく。それでも内蔵の数式では、上手く測定データをカーブフィッティングできていないと思われる場合に備えて、ユーザーが数式を指定できるオプションが付属している。

 

サーフェスフィット

カーブフィットが、計測データの二次元曲線へのフィットなら、サーフェスフィットは計測データの三次元曲面へのフィッティングだ。化学プラント機器が発生する流体騒音を予測する為に一度だけ、私もTableCurve 3Dというツールを使ったことがある。「驚くべきソフトウェアだ」ということだけ言っておこう(しこしこコーディングしているのがアホらしい)。カーブフィットに飽き足らず、サーフェスフィットにもトライしたい方はデモ版をダウンロードしてみて。

TableCurve 3D(Win)

SciDAVis(オープン)

 

この分野での参考書は