フィッティングでは、通常、x 方向にはばらつきなく、真の値が得られていることを仮定して、y 方向の誤差だけを議論します。このようなフィッティングを Ordinary Least-Squares Regression と呼びます。しかし、いつもその仮定が妥当であるとは限りません。x 方向の誤差も考慮しなくてはいけない場合もあるでしょう。両方向の誤差を考慮したフィッティングを Total Least Squares Regression あるいは、Orthogonal Regression と呼びます。IGOR Pro では後者のフィッティングもサポートしています。

▼Orthogonal Regression

通常のフィッティング (OLS) では、y 方向(垂直方向)のばらつきだけを考慮します。観測値 yi に対して、真の値を yi*、誤差を ηi とすると、

yi = yi* + ηi

となります。一方、Total Least Squares (TLS) Regression では、x 方向(水平方向)についても同様に、

xi = xi* + ξi

という誤差を考慮します。イメージとしては、モデル式が直線の場合、OLS では y 方向の残差を最小化しますが、TLS ではフィッティングカーブへ下した垂線の長さを最小化します。

1.png   2.png

x 方向のばらつきと、y 方向のばらつきは、理論的には独立ですが、同じ手法で測定された場合などは互いによく一致します。その場合、

δ = ση2ξ2= 1

とすることができます。このケースが Orthogonal Regression (OR) となります。ちなみに、δ によらず、モデル式が直線で TLS のケースを Deming Regression と呼びます。このフィッティングは SigmaPlot 12 の新機能です!

▼ ポイントは /ODR=2

具体的な手順をご紹介しましょう。次のテーブルのようなデータがあったとします。wx はX データ、wy は Y データです。

wxwy
0.32.0
2.31.3
2.84.0
5.03.0
4.45.2
6.25.0
6.87.5

まず、このデータをプロットします。

Display wy vs wx
ModifyGraph margin(bottom)=20,margin(right)=14,width=141.732,height={Aspect,1}
ModifyGraph mode[0]=3
ModifyGraph marker[0]=19
ModifyGraph rgb[0]=(0,0,65280)
ModifyGraph msize[0]=2.5
ModifyGraph tick=1
ModifyGraph mirror=1
ModifyGraph fSize=12
ModifyGraph standoff=0
ModifyGraph btLen=3
SetAxis/N=1 left 0,8
SetAxis/N=1 bottom 0,8

3.png

グラフの変更に利用した ModifyGraph 操作関数については、ここでは解説を割愛します。リファレンスをご覧ください。次に、OLS で直線でフィッティングしてみます。

CurveFit/X=1 line wy /X=wx /D
ModifyGraph lsize(fit_wy)=2, lstyle(fit_wy)=3, rgb(fit_wy)=(65280, 32768, 32768)

4.png

フィッティングカーブをX軸の範囲全体に引くように(/X=1)指定した以外は、特段難しいところはありませんね(詳しくはこちらもご覧ください)。

次に、Orthogonal Regression をやってみましょう。重要なのは /ODR=2 というフラグを指定することです。これだけ。

Rename fit_wy, fit_wyOLS
CurveFit/X=1/ODR=2 line wy /X=wx /D
Rename fit_wy, fit_wyOR
ModifyGraph lsize(fit_wyOR)=2

5.png

6.png

CurveFit の前のRename は、CurveFit でフィッティングカーブ fit_wy が上書きされないように名前を fit_wyOLS に変更しています。また、CurveFit を実行するとちょっと時間がかかります。パスが9になっていることからも、わかりますね。

さて、赤の実線が OR、ピンクの破線が OLS です。傾きが違うことが確認できますね。/ODR=2 は、解析メニュー>回帰分析 で表示される「回帰分析ダイアログ」では指定できませんので、必ずコマンドラインから指定・実行する必要がある点にご注意ください。重要。

▼ まとめ

x 方向の誤差を考慮するフィッティングのうち、IGOR Pro がサポートしている Orthogonal Regression をご紹介しました。/ODR=2 をコマンドラインでつけるだけという簡単なものですが、測定値 vs. 測定値 のフィッティングでは使ってみるとよいかもしれませんね。

--
井上@技術サポート部でした

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/499
内容に対しての関連性がみられないものは削除する場合があります

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報