• 締切済み

円の最小二乗法について

今、研究を行っていて、円の最小二乗法を使いたいと思い、このサイトの質問欄でこの回答を見ました。 http://oshiete1.goo.ne.jp/qa3712186.html この回答No.2の中に「半径の2乗の差の総和をゼロとする方法」とありましたが、よく意味がわかりません。この意味がわかる方よろしくお願いします。 また、円の最小二乗法でほかによい方法があれば、お願いします。

みんなの回答

  • Ishiwara
  • ベストアンサー率24% (462/1914)
回答No.4

「半径の2乗の差の総和をゼロとする方法」は、正しくは 「半径の差の2乗の総和をゼロとする方法」ではないでしょうか。 全体がほぼ円のように見えるデータの集合があったとします。 そこに、いちばんよく当てはまる円を引くための方法です。 円を1つ書いてみると、それぞれのデータ点は、この円周から離れています。この離れた距離をそれぞれ2乗して合計します。「この合計が最小になるように」円を引くことを「最小二乗法」と言います。 なぜこれが最善なの?という疑問を持たれたら、まず1次元のデータでじっくり勉強してください。

  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

過去質問のNo.2の回答者です。 「半径の2乗の差の総和」というのは確かに下手な文章でした。言い直すと   最小二乗円の中心(x0, y0)からの距離の2乗と、最小二乗円の半径の2乗の差の総和 です。それが式(1)です。これがゼロとなるような、x0、y0、r を求めるということです。図で書くと          Q          ・ (xi, yi) データ点      \ P      /\ ← 最小二乗円の一部    /   ・O  (x0,y0) ← 最小二乗円の中心 というふうに、最小二乗円の中心Oからデータ点Qまでの距離の2乗と、最小二乗円の中心Oから点Pまでの距離(最小二乗円の半径 r)の2乗の差がSになります。点Pは最小二乗円の円周上の点ですが、これは線分OP上にあります。 S を x0 で微分して0になるというのは、x0 の値を動かしたときに S の値の動きが止まる( S が最小になる)ということです。そうなるのが x0 = Σxi/n のときです( n はデータ数)。y0 についても同様に、y0 = Σyi/n としたときに S が最小となります。こうして求めた点(x0, y0)というのはデータ点の重心です。実は、x0, y0 を求めるのに、r は何でもいいのです。r が何であっても、x0 = Σxi/n、0 = Σyi/n のときに S は最小になります。これで、最小二乗円の中心 (x0, y0) が求まりました。 (x0, y0) が決まったので、これを式(1)に代入して、S がゼロとなるような r を求めればいいのです。 r を動かしたときの S の最小値を求めるのでなく、ゼロとなる点を求めるのが普通の最小二乗法と違うところです。S は    S = Σ{ r^2 - ( xi - x0 )^2 - ( yi - y0 )^2 } なので、データによっては Σ の中が正にも負にもなります(データ点が円の外側にあれば負、内側なら正)。したがってその総和は、r を 0 から大きくしていくと、正から負に変化していきます。S がちょうどゼロになるとき、データ点は、最小二乗円の内側と外側に均等に配置されていることになります。したがって S = 0 となる r が最小二乗円の半径となるというわけです。 これ以外にも    S = Σ[ r - √{ ( xi - x0 )^2 - ( yi - y0 )^2 } ]^2 を最小にするという方法もあると思います(これは中心との距離の差の2乗和です)。この場合 Σ の中は常に正なので S が最小となるように r を決めます。

kkkk6234
質問者

お礼

回答ありがとうございました。 inara1さんの方法で計算結果を出すことはできましたが、その円の中心座標と半径を用いて、エクセルで確認してみたのですが、うまく座標に近似してくれませんでした。何度も計算してみましたが中心点の座標の位置がかなり変な位置にあります。 原因等がわかればお願いします。 たびたびすみません。

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.2

No1です。訂正させて下さい。 ∂(ρ-r0)/∂r0=0 は削除してください。半径r0は、 r0=ρ となります。 罪滅ぼしに、最小二乗法の他の方法を紹介します。 S=Σ(xj^2 +yj^2 +axj +byj +c)^2 として、 ∂S/∂a=0 ∂S/∂b=0 ∂S/∂c=0 より、a,b,cを求めます。 x^2 +y^2 +ax +by +c=0 が最小二乗法で得られた円の方程式です。

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.1

質問者さんが掲げたサイトの方法は確かに意味が分かりにくいですね。 提案ですが、次のように考えたらどうでしょうか。以下の述べること はあくまでも一つの提案ですので、多少の誤りを含んでいることをご 承知下さい。 まず、円の中心(x0,y0)を求めてみましょう。 S=Σ{(xj-x0)^2 +(yj-y0)^2} として、 ∂S/∂x0=0 ∂S/∂y0=0 より、(x0,y0)が求まるはずです。次に半径r0を求めます。 ρ=(1/N)Σ√{(xj-x0)^2 +(yj-y0)^2} として、 ∂(ρ-r0)/∂r0=0 より、r0が求まるはずです。 これは一つの、最小二乗法のやり方であって、他の方法もあるでしょう。方法が違えば、最適値も違ってくるでしょう。仮定が違えば、値も違うことになりますが、 それはそれでいいんではないかと思います。そもそも、データー処理の数学は、厳密数学ではありません。統計数学と同様に、アバウトな数学なのです。

kkkk6234
質問者

お礼

回答ありがとうございました。 ojisan7さんの方法で計算結果を出すことはできましたが、その円の中心座標と半径を用いて、エクセルで確認してみたのですが、うまく座標に近似してくれませんでした。何度も計算してみましたが中心点の座標の位置がかなり変な位置にあります。 原因等がわかればお願いします。 たびたびすみません。

関連するQ&A

  • 円の最小二乗法のプログラム

    今、研究でVBで円の最小二乗法のプログラムを使いたいのですが全然わかりません。誰か詳しい人お願いします。

  • 最小二乗法の分散の求め方

    http://oshiete1.goo.ne.jp/qa3077638.htmlに関連しての質問です。 例えば、y=Xβ+εに関して最小二乗解を求めると b = [ nΣ(xi yi) - (Σxi) (Σyi)]/[ nΣ(xi^2) - (Σxi)^2 ] となります。ここから分散を求めるためにはどうすればよいのでしょうか?教科書を引っ張ってみると求め方の行列の式しか書いていなくいまいちピンときません(確かに計算すれば正しい結果を得られるようですが)。具体的にこの式だけを使って分散を求めるということはできないのですか?

  • 最小二乗法

    円x^2+y^2=1上の点Pにおけるこの円の接線とx軸、y軸との交点をそれぞれA,Bとして、 Pが第一象限を動くとき、線分ABの長さLを求めよ。 なお、Lの最小値の存在理由も述べよ。 というもんだいなのですが、 線分ABはy=txとなるので、このtを最小二乗法でもとめるんだと思うのですが、 最小二乗法の理論値、実測値などが、まだ良くわかりません。 と言いますか、傾きが最小ならLは最小で合ってますでしょうか? 傾きが45°のときが怪しくなってきたのですが・・・ また、最小値の存在理由ってどうやったら説明できるのですか? よかったら、教えてください。

  • 重みつき最小2乗法について

    最小2乗推定値mの分散を最小にする重みwiの値がわからずに困っています。 ラグランジュの未定乗数法を用いて導くらしいのですが、回答に辿り着けません。 最小2乗推値の分散は、var(m)=Σwi^2*var(mi)で、 制約条件は1=Σwiです。 よろしくお願いします……

  • 重み付き最小二乗法について

    過去の質問やネット検索をしても解決出来ず質問しました。 統計学も初心者であるのですが、一応最小二乗法は理解しています。 重み付け最小二乗法は誤差の大きな部分の影響を補うための方法で あるという程度の理解度です。 具体的にはどういったときに、どのような方法で使うのでしょうか。 また、参考サイトや参考書があれば教えていただきたいです。 よろしくお願いします。

  • 円の最小二乗法の公式

    いくつかのデータから最小二乗法で近似曲線を求めたいのですが、よくわかりません。そのデータ集の近似曲線は円になります。 最小二乗法を調べ、1次、2次関数についてはわかりました。ある点の座標を(x1,y1), (x2,y2)…、近似曲線上の座標を(x1,y’1),(x2,y’2)… とした時、 (y’1-y1)^2 + (y’2-y2)^2 … が最小となるような係数a,b などを偏微分 → 連立方程式で求めるという方法でした。 円についても、同様の方法で r^2 = (x-a)^2 + (y-b)^2 のような近似曲線の式が求められるのでしょうか?1次関数などのように、y’1-y1を求めようとすると、±√ が出てきてしまい、ややこしくなる気がしますが、これを解くしかないのでしょうか?もしくは別の解法があるのでしょうか?詳しく教えていただけたらと思います。よろしくお願いします。

  • べき乗則を最小二乗法で求める

    卒業研究で計測した分布をべき乗則 y = ax^k に類似させるべく最小二乗法を計算しようと思ってるのですが 自力で計算した結果 k = {loga×Σ(logy) - Σ(logy × logx)} / Σ(logx)^2 a = Σ(yx^k)/Σ{x^(2k)} で行き詰まって係数の計算までに至りません 最小二乗法で調べてみても簡単な一次式の例しか出ず参考になりません どなたか適切な計算方法について説明お願いします

  • 最小二乗法

    最小二乗法の具体的な計算方法がわかりません。 以下のページで公式は見たのですが 具体的に数字をどういれていけばいいのかわかりません。 教えてください。 ちなみに大学生です。 http://szksrv.isc.chubu.ac.jp/lms/lms1.html

  • 整数演算による最小2乗法

    このカテゴリ「その他(学問・教育」の http://okwave.jp/qa/q8426917.html に対する回答 No.2 に hashioogi さんがこう書かれました: >「ある種の」最小二乗法の計算も整数演算だけで行うことができます。 > 計算結果は浮動小数点数演算と同じでしかも高速、計算も簡単です。 > 回帰式の次数が高いほど高速な点が有利になります。 これについて詳しい情報が欲しいです。 参考文献 URL などご教示いただければ幸いです。

  • 多変数の最小二乗法

    Y=AX+Bという形で(Y,X)の組から係数A,Bを推定する方法が最小二乗法かと思います。(そのような整理が妥当であるか、意味があるか、についてはデータの分布形状や変動係数などで別途検証する必要がありますがここでは不問として) さて、その次ですが、YY=AX+BY+CZという関数で表示しようと考えたとします。(YY,X,Y,Z)というデータ系列があり、係数(A,B,C)を求めるというような解析です。(前述のようにそれが妥当かどうかは不問として。)係数A,B,Cを最小二乗法のようにできるだけ妥当に求める方法を教えていただきたいのですが。 1)たとえば、YY=AX+CCとして最小二乗法でAを求めたあと、残差CCについてCC=BY+CZとおいて再度最小二乗法でBを求めるというような手法を何度も行うとか? これだと解く順番に依存するようなので全部の順番でやって平均値を取るとか? 下手な考え休むに似たりのようですが。 2)カルマンフィルタ、ニューラルネットワークの手法で解析するということもあるでしょうか。その場合、YY=AX+BY+CZという枠組みではなくなりますが、それでもよいと言えばよいです。 このような問題を解く方法について解説されている本とか分野の名称(数理統計学とか?)などを教えて頂けると探索する手がかりとなります。今は手がかりすらはっきりしていないのです。 最小二乗法についてはその程度だったら専門分野ではなく、各分野で個別に解説されているようで込み入った問題になったときにどこを捜索したらよいかわからないもので質問しました。よろしくお願いします。