So-net無料ブログ作成

T法のプログラムをLabVIEWで作ってみました [【最新ニュース】]

mtt1.png
MT法のプログラミングをした後、T法についてもLabVIEWでプログラミングしてみました。

----------------------
mtt4.png
左上のグラフは、「真値」と「T法で推定した推定値」の散布図です。

その右隣のスライダーのインジケータは、「真値」と「T法で推定した推定値」の相関係数です。
項目選択後は、相関係数R=0.875
全項目では、相関係数R=0.763
という結果が出ています。

その右隣は、項目選択で除外する項目番号です。
押しボタン式になっており、押されると赤に変わり、その項目が除外されます。
(この解析では、k10,k11,k12,k13,k17,k22,k26,k30,k34を除外しています)

折れ線グラフは、「真値」と「T法で推定した推定値(全項目で推定)」と「T法で推定した推定値(項目選択後に推定)」の結果です。
----------------------
mtt5.png
緑の棒グラフは、重み付けのSN比ηです。
これは、各項目の中で何が効いているのか?という寄与率を示しています。

オレンジの棒グラフは、各項目の傾きです。
傾きは、正か負かに意味があります。
つまり、正の場合は、その項目が大きくなると、信号が大きくなります。
負の場合は、その項目が小さくなると、信号が大きくなります。
----------------------
mtt2.png
重み付けのSN比ηのベスト10です。
一番効いているのは、「海水温」です。
傾きβが「プラス(+)」ですので、「海水温が高くなると、タコ(信号)がたくさん釣れる」という意味になります。
----------------------
mtt3.png
赤い棒グラフは、項目選択の結果です。
上に飛び出ている項目は、「除外した方が推定の相関係数が高くなるので、削除した方が良い」ということを示しています。
例えば、上のグラフですと、「No.22の項目は除外した方が良い」ということになります。

2つの棒グラフの違いは、
上側が「信号を対数変換しない場合」
下側が「信号を対数変換する場合」
です。
----------------------
mtt6.png
信号を対数変換するか否かは、上のスイッチで切り替えます。
非線形成分を補正するか否かは、下のスイッチで切り替えます。

※非線形成分を補正する「非線形T法」については、以前に学会発表しておりますので、詳細はこちらをご覧下さい。
----------------------
mtt7.png
項目のデータのバラツキが0(つまり標準偏差が「0」)の場合、計算エラーにならないように、自動的に該当する項目だけを除外する機能を付けました。

除外された項目名がこのように表示されます。
(この事例の場合、項目「土曜日」と項目「漁港D」は標準偏差が「0」だったので、解析から除外されたことを示しています)
----------------------
mtt8.png
LabVIEWのプログラムです。
(※クリックで大きくなります)

実際は、この6倍ほどの広さのプログラムになってしまいました。
多くのサブviを作ってコンパクト化したつもりですが、機能を追加していったら、結果的にこんなに大きくなってしまい、可視性が悪くなってしまいました。
今後の課題にしたいと思います。

エクセルで作ったT法の解析ファイルと比較すると、解析時間が大幅に短縮されました。
【例えば、以下の規模のデータの場合】
・項目数=240個
・単位データのサンプル数=1000個
・信号データのサンプル数=600個
----------------------
・エクセルで使った解析ファイル:解析時間=37sec
・LabVIEWで作ったプログラム:解析時間=2.5sec
----------------------

今回のプログラミング期間は、約1週間でした。
次々にバグが発見され、その修正に時間が掛かりましたが、達成感があって楽しかったです。
----------------------
なお、このプログラムを市販化する予定はありません。
あくまでも、弊社の研究用に作ったプログラムです。