logo

logo

メールマガジン・新着情報一覧

  1. TOP
  2. メールマガジン・新着情報一覧
  3. 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つは近い直線になるはずです。

最小二乗法と最小領域法の共通点は、
データ量が多ければ多いほど、より正確な線を計算することができます。

但し、上記計算プロセスのように、
最小二乗法では、全て点に対して、同じウェイトを持って計算します。
最小領域法では、全ての点をカバーする最大点と最小点のみ利用し、
その中心位置で計算します。

これらを理解した上で、データの解析をすれば、
求めたい結果が得られるではないかと考えます。

それでは、今日はこの辺で。
最後までお付き合い頂き、有難う御座いました。


--
張

一覧に戻る

お問い合わせ Contact

048-441-1133

お問合せフォーム