下図のような、誤差を含むデータ(X,Y)を計測したとします。 近似関数をつくり、計測点以外のデータを取り出せるようにしたい場合、最小2乗法がよく使われます。 ![]() 図2 例題の計測点列とそのグラフ |
Excelで学ぶ統計解析―統計学理論をExcelでシミュレーションすれば、視覚的に理解できる よくわかるMicrosoft Office Excel 2007 (基礎) よくわかるMicrosoft Office Excel2007 エクセルこれだけ関数事典90―ハンディで見やすい! Excelでマスターする ビジネスデータ分析 実践の極意 |
一般的にはn次関数で近似します。ここでは、3次関数で近似しようと思います。 3次関数 f(X) = aX3 + bX2 + cX + d ・・・・・ (1) 次数が高いほど、点列に近い関数がつくれます。しかし、高すぎると誤差を拾う可能性があり、 ほどほどの次数にする必要があります。 最小2乗法は点列の近辺を通るなめらかな関数をつくります。そのため、誤差を含むデータの近似方法 としては良い方法です。 計測点列を絶対に通る近似関数を作りたい場合は、ラグランジュの補間法、ニュートンの補間法等をつかいます。 最小2乗法では、n次関数以外の関数も使えます。周期性のある点列の場合、3角関数などを検討して下さい。 |
計測点がXの時、Yと 関数値 f(X) の差 (Y-f(X))を計算します。 差の2乗 (Y−f(x) )2 が小さければ、Yとf(X)は近い値となります。 ほんとうは、2乗より、絶対値 |Y-f(X)|をとる方が良いのでしょうが、絶対値では計算処理が複雑となる。 一箇所の計測点だけが近い値となるだけではだめです。関数をすべての計測点に近づける必要がある。 そのため、全ての点で、差の2乗を合計します。 T(合計) = Σ ( Y - f(X) ) 2 ・・・・・ (2) Σ(シグマ) : 全ての点で合計するという記号 (2)式のT(合計)が最小となる関数の係数(a,b,c,d)を求めます。 係数が求まると、任意のXでの値 f(X) = aX3 + bX2 + cX + d が求まります。 |
(1)式の3次関数を(2)式に代入すると次の(3)式となる。 T = Σ( Y - aX3 - bX2 - cX - d )2 ・・・・・ (3) (3)式のTは係数(a,b,c,d)の関数と見ることができる。 (3)式のTを係数(a,b,c,d)で微分した式 が 0 のとき、(3)式のTは最小となる。 すなわち δT/δd = 0 δT/δc = 0 δT/δb = 0 δT/δa = 0 となる。 これを解いて、整理すると、4元連立方程式(下の行列計算式)となる。 ![]() 4元連立方程式は下記マトリックス(行列)式で表記できる。 A ×x = b ・・・・・ (4) この行列式(4)を解き、係数a,b,c,dを算出する。 一般的に、n次式の関数で近似すると、n+1元連立方程式となる。 |
EXCELを用い(4)式のマトリックス(行列)AとベクトルBの成分を計算し、マトリックス(行列)AとベクトルBを設定します。 ![]() 図3 (4)式のマトリックス(行列)とベクトルを計算するエクセルシート |
連立方程式は下記マトリックス(行列)式で表記できる。 A ×x = b 両辺に逆マトリックス A-1をかける。 A-1 × ( A × x ) = A-1 × b (A-1 × A ) × x = A-1 × b A-1 × A = E より E × x = A-1 × b x = A-1 × b これで解 x が求まった。 |
EXCELで連立方程式 A × x = b を解いてみよう。 @ 逆マトリックス( A-1 ) の計算 任意位置に逆マトリックス A-1 のエリアを確保し、 関数 MINVERSE( マトリックス A )を設定する。 注) 複数エリアに関数を設定する場合 Ctrl Shift キーを押しながら、 Enterをキー入力する。 A 逆マトリックス( A-1 ) × ベクトル( b ) の計算 任意位置に解 ( x ) のエリアを確保し、 関数 MMULT( 逆マトリックス( A-1 ), ベクトル( b ) )を設定すると、 解 ( x ) が求まる。 ![]() 図4 (4)の連立方程式(行列計算)を解くエクセルシート |
連立方程式を解くことにより、近似関数の係数(a,b,c,d)が求まった。 この係数を使い、関数を計算すると、計測点列に近い近似曲線が求る。 ![]() 図5 (1)式の近似関数を計算するエクセルシート ![]() 図6 (1)式の近似曲線と計測点列を比較したグラフ グラフ作成方法の参考 : エクセル(EXCEL)でグラフを作ってみよう |
| 最小2乗法は目的関数(誤差の2乗の合計)が最小となる係数を探索します。 この機能はエクセルのソルバー機能と完全に一致します。 微分やマトリックス計算などの高等数学を用いて、最小2乗法を活用するのが一般的です。 しかし、エクセルのソルバーを用いると、簡単な四則演算の知識のみで、最小2乗法が 使いこなせます。 また、制約条件付き最小2乗法、重み付き最小2乗法も容易に設定できます。 エクセルのソルバー機能を用いた最小2乗法も参照して下さい。 |
