メールマガジン・新着情報一覧
- 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つは近い直線になるはずです。 最小二乗法と最小領域法の共通点は、 データ量が多ければ多いほど、より正確な線を計算することができます。 但し、上記計算プロセスのように、 最小二乗法では、全て点に対して、同じウェイトを持って計算します。 最小領域法では、全ての点をカバーする最大点と最小点のみ利用し、 その中心位置で計算します。 これらを理解した上で、データの解析をすれば、 求めたい結果が得られるではないかと考えます。 それでは、今日はこの辺で。 最後までお付き合い頂き、有難う御座いました。 -- 張