Example Regression

4次回帰プログラムの例


回帰計算をしたいデータファイルを表計算ソフトで作っていたとしましょう。サンプルですからパスを指定してプログラムからファイルを読み込んで、Row Dataに表示します。"n th Poly fit"の入力では、1〜4次まで指定できます。"X-Y Graph"には生データのポイントと回帰データ、回帰曲線が表示されます。"Coeff"の表示欄には0〜4次の係数が表示されます。

フロントパネル



このプログラムの機能は(0)ファイルの読み込み、(1)回帰計算、(2)回帰曲線の計算、(3)グラフ表示の4個の機能ブロックに分けられ流れが直線的なので、シーケンス構造を使うことにしました。


(0)ファイルの読み込み
データファイルはこのプログラムと同じディレクトリに置いておくことにします。ファイル名も"GaAs data"と言うことにしましょう。Current VI's Pathという機能を使うとそのプログラムのパス名が出力されます。プログラム名を切り取って"GaAs data"をつなげるとよみたいファイルのパスができあがります。Read From Spreadsheet File.viというアイコンにパスを入力(青緑の波線)すれば、ファイルからデータ(Raw Data)を読み込んでデータが出力(オレンジ色の2重線)されます。データを次のシーケンスに渡します。(左上のボックス)

ブロック図0



(1)回帰計算
左上のボックスから"Raw Data"が出てきます。左側に縦に並んだ2つの黄色いアイコンが配列の要素を取り出す機能を持っています。上のアイコンからはXデータが、下のアイコンからはYデータが取り出されます。青い "n th Poly fit" と"Poly fit Alg" というアイコンから出ている線の先にあるのが"General Polynomial Fit.vi" です。指定した次数で回帰を行い、入力されたXデータに対応する回帰後のYデータと回帰式の係数を出力します。係数は次数に対応する数だけ出力されるので、例えば2次回帰の場合は、3時、4次の係数としてゼロを結合します。(計算の次数にかかわらず大きさ5の1次元配列にします。大きさが変わらない方が後の処理は楽でしょ。)

ブロック図1



(2)回帰曲線の計算
4次回帰はy = a0 + a1*x + a2*x^2 + a3*x^3 + a4*x^4 ですからx を次々入れてy を求めます。すべて、ブロック図ではわかりにくくなる事もありますから、この例のように数式で演算することも可能です。Xの配列とYの配列をバンドルという機能で、結合してx−yグラフに表示できる形式にします。

ブロック図2



(3)グラフ表示
3本のプロットをビルドアレイと言う機能でまとめて、グラフに表示します。

ブロック図3

戻る