メールマガジン・新着情報一覧
- TOP
- メールマガジン・新着情報一覧
- E-0131. 最小二乗法と最小領域法 — E.C
2022.11.16
E-0131. 最小二乗法と最小領域法 — E.C
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
最小二乗法と最小領域法
発行:エスオーエル株式会社
https://www.sol-j.co.jp/
連載「測定の新常識!?SOLがお伝えするノウハウ!」
2022年11月16日号 VOL.131
平素は格別のお引き立てを賜り、厚く御礼申し上げます。
X線CTによる精密測定やアプリケーション開発情報などをテーマに、
無料にてメールマガジンを配信いたしております。
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
皆さん、こんにちは。
営業技術の張です。
今回はデータ解析に良く使う最小二乗法と
最小領域法について少し話します。
最小二乗法と最小領域法はよく知られており、
特に三次元測定機で計測する時に良く使われています。
CTやマルチセンサーでサンプルを計測する時、離散点が沢山得られます。
これらの点を用いて、近似の線、円、面などを作成する時、
最小二乗法や最小領域法で計算し、線、円、面を作成します。
それぞれの計算方法と違い点について、少し説明してみます。
説明しやすくするため、2次元での近似直線の作り方をみます。
例えば、ある測定機で測定したn個の離散点を (x_i, y_i) で表します。
目標の近似直線は y=ax+b とします。
最小二乗法の場合、各々の離散点までの距離の二乗の和が
最小になる直線を求めます。
ある点から直線までの距離を E_i とすると、
距離 E_i = y_i-(ax_i+b) と計算できます。
距離 E_i の二乗の和を F とします。
F = (E_1)^2 + (E_2)^2 + ... + (E_n)^2
= Σ(E_i)^2
この F が最小になるように a と b の値を求めれば良いです。
F の関数は未知数が a と b の2乗の式です。
これを解くために、偏微分が 0 になる極値を探す必要があります。
∂F/∂a = 2Σ(ax_i^2 + bx_i - x_i*y_i) =0
∂F/∂b = 2Σ(ax_i - y_i + b) =0
上記の連立方程式を解けば、下記の結果が得られます。
a = {Σ(x_i*y_i)-n*Avg(x)*Avg(y)} / {Σ(x_i^2)-n*Avg(x)^2}
b = -a * Avg(x) + Avg(y)
ここで、Avg(x) と Avg(y) はそれぞれ、x_i と y_i の平均値です。
次に、最小領域法は、
全ての測定データを囲い込むことが出来る二つの平行な線で、
線間の距離を最小にする方法です。
最小領域線はその二つの平行線の中心線です。
円筒の場合は、同軸な二つの円筒になり、
平面の場合は、二つの平行な面になります。
最小領域法の計算方法はいろいろありますが、
ここでは最小二乗法で求めた結果に基づいて計算してみます。
つまり、|E_i|が最大になる点を使いて、
線間距離 d が最小となる解 a, b を求めます。
この場合 y=ax+b の式は、次の条件を満たす必要があります。
1. |E_i|が最大になる点は少なくとも3点ある。
2. |E_i|が最大になる点での E_i の符号が交互に正負である。
|E_i|が最大になる 3点として、
それぞれ (x_1, y_1), (x_2, y_2), (x_3, y_3) と表します。
距離を計算すると、次の式になります。j = 1~3 として、
s_j|Em|= y_j - (a x_j + b)
ただし、s_j は各点での距離の符号です。
この式を書き下すと、
未知数が|Em|, a, b の連立方程式になります。
s_1|Em|= y_1-(ax_1+b)
s_2|Em|= y_2-(ax_2+b)
s_3|Em|= y_3-(ax_3+b)
この方程式を解くと、
|Em|= {y_3(x_2-x_1)+y_1(x_3-x_2)+y_2(x_1-x_3)}/{s_3(x_2-x_1)+s_1(x_3-x_2)+s_2(x_1-x_3)}
a = {y_2-y_1-(s_2-s_1)|Em|}/(x_2-x_1)
b = y_1-ax_1-s_1|Em|
|Em|が最小になるときは、分母が最大になる必要があります。
つまり、s_3(x_2-x_1) と s_1(x_3-x_2) と s_2(x_1-x_3) の
全部が同じ符号になる必要があります。
それは、s_3 = sgn(x_2-x_1), s_1 = sgn(x_3-x_2), s_2 = sgn(x_1-x_3) です。
但し、|Em|がマイナスになってしまう場合、s_1, s_2, s_3 の符号を反転します。
この式を解けば、a と b の値が求められます。
実際の計算は複雑なので、コンピューターに任せれば良いです。
ここでは、例として5点を挙げ、
それぞれの方法で近似直線を求めてみました。
例えば、5点それぞれの点を
(1,1), (2, 6), (3,4), (5,5), (9,4)
とします。
最小二乗法で計算すると、次の直線が得られます。
y=0.15x+3.4
3つの最大点は (1,1), (2,6), (9,4) になるので、
最小領域法で計算すると、次の直線が得られます。
y=0.375x+2.9375
サンプル点数が少ないため、2つの直線は結構違います。
もし、正規分布に従えば、2つは近い直線になるはずです。
最小二乗法と最小領域法の共通点は、
データ量が多ければ多いほど、より正確な線を計算することができます。
但し、上記計算プロセスのように、
最小二乗法では、全て点に対して、同じウェイトを持って計算します。
最小領域法では、全ての点をカバーする最大点と最小点のみ利用し、
その中心位置で計算します。
これらを理解した上で、データの解析をすれば、
求めたい結果が得られるではないかと考えます。
それでは、今日はこの辺で。
最後までお付き合い頂き、有難う御座いました。
--
張

