
No.4ベストアンサー
- 回答日時:
質問者さんが誤差をどの方向に考えているかで変わってくると思います。
全ての点の平面からの距離の二乗和の最小を考えるなら皆さんが回答されている通りだと思います。
ただ、単純な最小2乗法は全ての点から直線までの距離が最小になるよう定めているわけ
ではありません。y方向に誤差を考えていて、その2乗和が最小になるy=a+bxのa,bを
求めています。回帰の説明などを見れば明らかですね。点から直線に伸ばす矢印(誤差の量)は
y軸に平行に書かれています。
http://szksrv.isc.chubu.ac.jp/lms/lms1.html
直線までの距離なら直線に対して垂直に書かなければなりません。
その場合はこの質問同様、もう少し複雑な式になります。
これと同じに考えるなら(つまりz軸方向への誤差の最小を考える)単純な重回帰に
なります。n個のデータ(xi,yi,zi)を使ってz=ax+by+cに回帰するには
aΣxi^2+bΣxiyi+cΣxi=Σxizi
aΣxiyi+bΣyi^2+cΣyi=Σyizi
aΣxi+bΣyi+cn=Σzi
の連立方程式を解いてください。なお、ここで例えばΣxi^2は
Σxi^2=x1^2+x2^2+x3^2+・・・・・+xn^2
でデータが得られているなら定数です。
age_momoさん,ありがとうございます.
n個のデータ(xi,yi,zi)を使ってz=ax+by+cに回帰させるとき,
> aΣxi^2+bΣxiyi+cΣxi=Σxizi
> aΣxiyi+bΣyi^2+cΣyi=Σyizi
> aΣxi+bΣyi+cn=Σzi
この3つの式を行列式に置き換えて計算したいのですが,
計算式は,
| Σxi^2 Σxiyi Σxi || a | | Σxizi |
| Σxiyi Σyi^2 Σyi || b |=| Σyizi |
| Σxi Σyi n || c | | Σzi |
で大丈夫でしょうか?
No.6
- 回答日時:
>この3つの式を行列式に置き換えて計算したいのですが,
>計算式は,
>| Σxi^2 Σxiyi Σxi || a | | Σxizi |
>| Σxiyi Σyi^2 Σyi || b |=| Σyizi |
>| Σxi Σyi n || c | | Σzi |
>で大丈夫でしょうか?
行列式というか行列そのもので
A=
| Σxi^2 Σxiyi Σxi |
| Σxiyi Σyi^2 Σyi |
| Σxi Σyi n |
の逆行列A^(-1)を計算して
A^(-1)| Σxizi |
| Σyizi |
| Σzi |
を計算すればいいです。
この回答への補足
>A=
>| Σxi^2 Σxiyi Σxi |
>| Σxiyi Σyi^2 Σyi |
>| Σxi Σyi n |
>の逆行列A^(-1)を計算して
>A^(-1)| Σxizi |
>| Σyizi |
>| Σzi |
これらの式はクラーメルの公式だと思うのですが,
求まったa,b,cの値はそのまま中心座標になりますか?
試しに自分で考えた測定点で,エクセルを使って計算しているのですが答えが求まりません.
10 10 10
20 10 10
10 10 20
20 10 20
お時間がありましたら,教えてください.
返事が遅くなってしまい申し訳ありません.
質問の趣旨がおかしくなってしまい,本来聞きたかったことが聞けませんでした.
聞きたかったことは,
aΣxi^2+bΣxiyi+cΣxi=Σxizi
aΣxiyi+bΣyi^2+cΣyi=Σyizi
aΣxi+bΣyi+cn=Σzi
↑の式から平面の中心座標(a,b,c)を求めるには,↑の式を行列に置き換えて,クラーメルの公式を使って求める方法でも(a,b,c)がでるかどうかとういことです.
本当に時間がかかってしまい,申し訳ありません.
No.5
- 回答日時:
ANo.3です。
実は私も仕事で同じような計算をしたことがあります。具体的に言うと、数cm角の平面板が弾性体で支えられている試作品がいっぱいあって、その平面の傾斜分布を定量化するために、平面上の4点以上の点の高さをレーザ変位計で測定し、age_momoさんの連立方程式を解いて、最小2乗平面をそれぞれの試作品について求めました。
最終的には、法線ベクトルを方位角と天頂角の2変数に変換して、極座標グラフで分布(バラツキ)を表示させ、傾向の分析を行いましました。測定した平面は、傾斜しているといっても、そのバラツキは小さく、xyz 座標でいえば、法線ベクトルが z 軸から数度以内だったので、「測定点と平面のz座標の差の2乗」が最小となるようにして平面を決めていました(平面の法線ベクトルとz軸との角度が小さい場合は |z座標の差| ≒ 点と平面の距離 と考えていいので)。
しかし、求めたい平面がz軸にほぼ平行である場合を含め、向きが全く分からない場合は、点と平面の距離の2乗を最小とする方法が良いのではと判断して、ANo.3ではその方法を紹介しました。私は回帰分析の専門家ではないので数学的にどれが最良かというのはお答えできませんが、ある程度、平面の向きがわかっている場合には、計算が比較的簡単なので、age_momoさんの方法でも良いかと思います。
No.3
- 回答日時:
考え方としてはANo.2の参考URLにあるとおりですが大変面倒な計算になります。
うまく収束するかどうか分かりませんが、Excelのソルバーを使って、残差2乗和が最小となるような、5個の未知パラメータを求めるのはどうでしょうか。
結果だけ書きますが、n個のデータ点と平面との距離の2乗の和 S が最小となるような次式の a, b, x0, y0, z0 を求めれば、平面が決定されます。
S = Σ [ i = 1, 2, ... n ] [ a*( xi - x0 ) + b*( yi - y0 ) + √{ 1 - ( a^2 + b^2 ) } *( zi - z0 ) ]^2
( xi, yi, zi ) はn個のデータ点(i = 1,2,.. n )です。a、b は平面の法線ベクトル(平面に垂直なベクトル)のx成分とy成分です。( x0, y0 , z0 ) この平面が通る点の座標です。法線ベクトルのz成分がないのは、a^2 + b^2 + c^2 = 1 と規格化したので、c = √{ 1 - ( a^2 + b^2 ) } と自動的に決まるからです。なぜこのような式になるかについては【詳細】に書きました。
未知パラメータ a, b, x0, y0, z0 のうち、x0, y0, z0 は、ANo.1さんのコメントにある「中心座標の計算はn個の座標を足してnで割れば」というのは、常に成り立つかどうか分かりません。ただ、初期値として、x0 = Σ(xi)、y0 = Σ(yi)、z0 = Σ(zi) とするのは良いと思います(Excelのソルバーは初期値の選択を誤ると収束しないので、もっともらしい値を初期値とすれば収束しやすくなります)。
【詳細】
法線ベクトル(平面に垂直なベクトル)が (a,b,c) で、点(x0,y0,z0) を通る平面の方程式は次式で表されます。
a*( x - x0 )+b*( y - y0 )+c*( z - z0 ) = 0 --- (1)
一方、n 個の点 ( xi, yi, zi ) [ i = 1, 2, ... n ] と平面との距離を Li [ i = 1, 2, ... n ] とすれば
Li^2 = {a*( xi - x0 ) + b*( yi - y0 ) + c*( zi - z0 ) }^2 / ( a^2 + b^2 + c^2 ) ---- (2)
となります。したがって、n個の点と平面(1)との距離の2乗の総和を S とすれば、
S = Σ [ i = 1, 2, ... n ] ( Li^2 ) = Σ [ i = 1, 2, ... n ] [ {a*( xi - x0 ) + b*( yi - y0 ) + c*( zi - z0 ) }^2 / ( a^2 + b^2 + c^2 ) ] --- (3)
となります。これが最小 となるような、a, b, c, x0, y0, z0 を求めるというのが最終目的です。
S が最小 であるとき、∂S/∂a = ∂S/∂b = ∂S/∂c = ∂S/∂x0 = ∂S/∂y0 = ∂S/∂z0 = 0 が成り立ちます。Sを偏微分すると、次の式が得られます(和の範囲はいつも [ i = 1, 2, ... n ] なので省略します)。
a*( b^2+c^2 )*Σ( xi - x0 )^2 + b*Σ( xi - x0 )*( yi - y0 ) + c*Σ( zi - z0 )*( xi - x0 ) = 0 --- (4)
b*( c^2+a^2 )*Σ( yi - y0 )^2 + a*Σ( xi - x0 )*( yi - y0 ) + c*Σ( yi - y0 )*( zi - z0 ) = 0 --- (5)
c*( a^2+b^2 )*Σ( zi - z0 )^2 + b*Σ( yi - y0 )*( zi - z0 ) + a*Σ( zi - z0 )*( xi - x0 ) = 0 --- (6)
a*Σ( xi - x0 ) + b*Σ( xi - x0 ) + c*Σ( zi - z0 ) = 0 --- (7)
()などを展開などして、この計算を続ければANo.2の参考URLにある式(4)に行く着くでしょうが、大変複雑な結果となります。
手っ取り早くには、式(3)の S が最小になるような、a, b, c, x0, y0, z0 を求めればいいわけです。
未知パラメータは6個あるように思えますが、実は5個です。a,b,c は比が分かればいいので、 a^2 + b^2 + c^2 = 1 と規格化してしまいます(とすれば |a|≦1、 |b|≦1、 |c|≦1 です)。すると、c^2 = 1 - ( a^2 + b^2 ) ≧ 0 ですから、a,bが決まれば c が決まりますので、c は求めなくていいのです。c の符号は±の2通りありますが、法線ベクトルというのは 、平面の表と裏を区別しないなら、(a,b,c) も (-a,-b,-c) も同じことですから、cの符号は+か-かどちらに決めてしまえばいいのです。したがって c > 0 とすることにすれば、c = √{ 1 - ( a^2 + b^2 ) } です。すると式(3)は
S = Σ [ i = 1, 2, ... n ] [ a*( xi - x0 ) + b*( yi - y0 ) + √{ 1 - ( a^2 + b^2 ) } *( zi - z0 ) ]^2 ---- (2')
となります。
なお、ANo1さんの「中心座標の計算はn個の座標を足してnで割れば」というのは、式(7)で、Σ( xi - x0 ) =0、 Σ( xi - x0 ) = 0
Σ( zi - z0 ) = 0 としてx0, y0, z0 を求めるものですが、Σ() <> 0でも式(7)が成り立つ場合もあるかと思います。
No.2
- 回答日時:
検索して下記の文章を見つけました。
http://www.aichi-inst.jp/html/reports/repo2001/R …
この部分の2.1の部分で、最小二乗平面(Z=Ax + By + C)を求める
方法が記載されています。(4)式を解いてA,B,Cを求めるようです。
No.1
- 回答日時:
間違っているかもしれないので、参考意見として
中心座標の計算はn個の座標を足してnで割れば、中心が出ますね。
XY, XZ, YZ方向の傾きはXYの場合、X座標とY座標だけ用いて
最小二乗法で傾きが出ますね。他のXZ, YZでも同様に。
ただ、この傾きが実際どういうことに使えるのか不明です。
多くの点があり、その平均的な所を通る平面を求めたいのでは
ないでしょうか?
その場合はXY方向でなく、「XY軸上での傾き」などになるのでしょうね。
平均的な所を通る平面ですが、互いに垂直なベクトルが求まれば、
平面が定義できそうですが、それをどう求めるのか、ちょっと
分かっていません。
中心を求めた後に、中心の点から各座標へのベクトルを足し合わせる
といった感じでできそうな気がしますが。
popiahさん,ありがとうございます.
popiahさんが仰るとおり,多くの点があって,それらの点の平均的な所を通る平面を求めたいのです.
最小二乗法で,平均的な所を通る平面を求める計算式などはやはりないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
先着1,000名様に1,000円分もらえる!
教えて!gooから感謝をこめて電子書籍1,000円分プレゼント
-
近似式(z=ax+by+c)を取得したい
その他(コンピューター・テクノロジー)
-
3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離
数学
-
XYZ平面の近似式についてご教示ください
数学
-
4
平面度
数学
-
5
仮想平面の計算
数学
-
6
Excelで平坦度
その他(Microsoft Office)
-
7
最小二乗平面
C言語・C++・C#
-
8
3次元の近似直線
数学
-
9
平面方程式の傾きについて
数学
-
10
立体的な散布図を描く方法
その他(教育・科学・学問)
-
11
2変数関数の近似曲線
数学
-
12
任意の面内にある点の座標から面の傾きを求める方法を教えて下さい。
数学
-
13
平面の方程式、dが持つ意味?
数学
-
14
空間上の測定された点群から最小二乗法により円(中心、直径)を算出する方法
数学
-
15
最小二乗法 二次曲線
数学
-
16
位置度 計算式
数学
-
17
Excelを使用して円弧の半径を最小二乗法で求めたい
Excel(エクセル)
-
18
エクセルで回転する座標の出し方
Excel(エクセル)
-
19
3次元曲面補間方法を探しています.
数学
-
20
2次曲面の最小二乗法
数学
関連するQ&A
- 1 座標平面上に、直線y=4/3xとy軸の両方に接する円Cがある。その円Cの中心の座標を(a,b)とする
- 2 質問です。3次元空間内に3次元ベクトルA=(2x,y,0)を定義する。xy平面内で原点を中心とする半
- 3 85番: 不等式a(x^2)+(y^2)+a(z^2)-xy-yz-zx≧0が任意の実数x, y,
- 4 座標平面状にO(0,0)A(1,0)を取る。この平面上の2点P,Qを条
- 5 数学の問題を教えてください! 座標平面上に3点O(0,0),A(3,√3),B(9,0)がある。線分
- 6 x,y,z>0 実数で、x^3+xy^2+yz^2>=kxyz が成り
- 7 数学についての質問です。 座標平面上における原点oを中心とする半径5の円をC1、C1上のA(3,4)
- 8 高校数学の問題です。⑴⑵を解き方と答えを教えてください。xy座標平面上で,次の3つの不等式で表される
- 9 (問題) xy平面上において,連立不等式 x≧0,y≧0,2x+y≦4,2x+3y≦6 を満たす領域
- 10 f (x,y )={sin(xy )/xy xy≠0 {1 xy=0 次の関数の連続性を調べよ。 こ
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
平面の計算方法
-
5
Σの下にくるk=1のkってなに...
-
6
Σの添え字について
-
7
数列の和について
-
8
x,yのデータについて(x-x')(y-y...
-
9
Π←これは一体?
-
10
無限級数の和。。
-
11
スタージェスの公式の根拠
-
12
偏差平方和の式
-
13
最小二乗法における有効数字に...
-
14
Σの上が2n
-
15
最小二乗法を用いて二次関数の...
-
16
数列{an}を次のように定める...
-
17
階乗和
-
18
Σ、Ω(大文字)の書き順がわか...
-
19
二重和(ΣΣ)の計算方法について
-
20
Σの意味ってなんでしたっけ?
おすすめ情報