- 締切済み
線形代数 最小2乗法
x1 + x2 - x3 = 1 x1 - x3 = 0 3x1 + x2 -3x3 = 0 の最小2乗解を求める問題 やりかたを教えてください ちなみにこれは大学の経済学部1年の 線形代数における問題です
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- info22_
- ベストアンサー率67% (2650/3922)
3変数で3つの方程式で連立方程式として解けてしまいますね。 最小2乗法を適用する場合の フィッティング関数(近似関数)としてどんな式をお考えでしょうか?
#2です。 >授業ではランク落ちした場合 >例えばx3=aとおいてx1とx2をaを用いて表すという手法を使っていましたが、関係あるのでしょうか。 これから判断すると、最小2乗解を一意に定める処までは、要求されてないみたいですね。とすれば、一般逆行列などと言わず、#1さんの方法で、ほぼ系統的な処理が可能です。問題の係数行列をA,解ベクトル(x1,x2,x3)をx,右辺の既知ベクトル(1,0,0)をbとします。問題は、 Ax=b となります。これの最小2乗解を知りたいわけですが、最小2乗解の定義は、 |Ax-b|^2が最小となるような、x. (1) です。ここで||は、ベクトルとしてのAx-bの長さ,^2はその2乗を表します。 Aがまともな(正方でランク落ちしない)行列なら、x=A^(-1)bが解に決まってます。だってこのxは、Ax-b=0を満たすものだからです。問題はそうでない場合、ランク落ちしたり、Aが正方行列でない時です。A^(-1)はAの逆行列です。 ふつうは(1)の後、|Ax-b|^2を内積を使って展開し、xの成分で偏微分して0とおき・・・となりますが、恐らく授業でやったと思います。Aの転置とxの掛け算の、その成分での偏微分などと言われて混乱しているかも知れませんが、しょせんは成分計算です。この辺りは、自分でカバーして下さい。 で、結果として出てくるものは、^tをAの転置として、#1さんの仰るように、 A^t・Ax=A^t・b (2) です。掛け算・の意味は、適宜判断して下さい(ないと見にくいので、あえて挿入しました)。(2)は次のような特徴を持ってます。 (a)(2)では逆行列を使ってないので、Aがまともであろうが、なかろうが(ランク落ちしても)大丈夫。 (b)Aがまともなら、x=A^(-1)bを与える(当然)。 (c)ランク落ちした場合、自分の2次元の例で言えば、y=x-1/5の直線上に解(x,y)が存在する事を保証する。 なぜ(c)かと言えば、そうなるような条件(1)を作り、それを変形して(2)を得ただけだからです。つまり(2)は、必ず解を持ちます。ここが大事です。ただしAがランク落ちした場合、(2)の解は不定で、一意に定まりません。 後は、ランク落ちした連立一次方程式のふつうの解法に従うだけです。問題のAのランクは2で、3次元の問題なので、3-2=1で、解(x1,x2,x3)の内の1個は(例えばx3)は、任意で良くなります。そこで、(2)のx3に関わる部分を既知数とみなし、右辺に移項して、解(x1,x2)に関する問題として逆行列で解いてやると(ランク2なので、これは可能)、 x1=[x3だけの式] (3) x2=[x3だけの式] (4) が得られます。意味としては、これでも解です。しかし本当に欲しいのは、応用しやすい形をした解です(経済学のために、工学のために・・・)。一般的には(3),(4)がつくるグラフの形がわかればOKです。それで(3),(4)で媒介変数の役割を果たしているx3を、x3=aとおいて、「ちゃんとパラメータ化し」、 x1=[aだけの式] (5) x2=[aだけの式] (6) x3=a (7) を考えます。(5)~(7)を眺めると、(x1,x2,x3)はある直線をつくる事がわかります。直線の具体的式は、具体的な(5),(6)の式からわかります。 やる事は、たぶんこれだけです^^。ちなみに自分の2次元の例では、(2)を作ると、それがそのまま答えになります。
問題が間違っていない、という前提で書きます。 #1さんの仰るように、最小2乗法はふつう、条件過多(未知数の数より、独立な式の数が多い)の時に使用され、手順も#1さんの仰る通りです。数学的には#1さんの応答は、とてもまっとうだと思います。 でも工学的には(経済学部的には?)、今回のように条件不足(ランク落ち)の場合にも、最小2乗解はあり得ます。そのような解を要求されている可能性は、ありだと思いました。 3次元では絵が書けないので、2次元の例をとります。 x-y=1 2x-2y=0 みたいな場合です。上記はランク落ちするので、解がありません。 x'=x-y y'=2x-2y とおいてみると、この1次変換(線形変換)は、任意の点(x,y)を直線y'=2x'上に写し、目標点(1,0)が、その上にないからです。でも(1,0)からy'=2x'への最小距離点はあります(添付図参照)。(1,0)からy'=2x'への垂線の足(1/5,2/5)です。 これは、x-y=1/5,2x-2y=2/5になるように(x,y)を選んで答えを出したという事であり、得た答えが、目標点との距離最小という意味で、最小2乗解です。それで、 x-y=1/5 2x-2y=2/5 を満たす(x,y)は?、という話になりますが、答えは直線y=x-1/5(x-y=1/5)の点全部となります(添付図参照)。 解を一意に定めるのは、もう一つ条件が必要です。この辺りに、経済学部特有の事情が反映される可能性、濃厚ですが、大抵はノルム最小の解(1/10,-1/10)を取ります(添付図参照)。 3次元の場合は、係数行列の列(または行)ベクトルのつくる平面を考えて、同じ事をやれば良いのですが、系統的な手順が存在します。ですが、やり方を忘れました。 一般逆行列,ムーア・ペンロース変換,原直交,像直交あたりでググってみて下さい。何か用語が難しそうですが、上で述べた以上の事はやってないので、必要部分だけ切り取って使う、という手はありだと思います。 像直交な一般逆行列が、#1さんの仰る通常の最小2乗法だったと記憶しています。
- kamiyasiro
- ベストアンサー率54% (222/411)
頭を整理して下さい x1,x2,x3が近似関数の係数になります. 説明変数の行列Xは 1 1 -1 1 0 -1 3 1 -3 目的変数yは 1 0 0 です. 係数行列は x1 x2 =(X'X)^-1 X'y x3 X転置XのインバースとX転置とyを掛け算します. しかし,この問題は 説明変数行列の第1列と第3列が符号が違うだけで同じです. 従って,説明変数はランク落ちしています. このようなとき,最小2乗法の用語としては, 「多重共線性」(マルチコ)があると言い,解けません. (三元連立方程式として解いても不定解となり解けません) そもそも,最小2乗近似関数を求めるには定数項も必要で, 合計4つの母数を解くことになりますが, データ数は3であり,解けません. さらに今回は説明変数のランクが落ちていますので, 2変数しか解けません. 近似すら無理です.
お礼
ご丁寧な説明ありがとうございます 問題の作成ミスなのでしょうか……
お礼
ありがとうございます 授業ではランク落ちした場合 例えばx3=aとおいてx1とx2をaを用いて表すという手法を使っていましたが、関係あるのでしょうか。