最小二乗法の問題と証明方法

このQ&Aのポイント
  • 最小二乗法に関する問題についての質問をまとめました。
  • 最小二乗法の性質を示す式の証明について詳しく説明しました。
  • また、性質の一部の証明についてはうまく行ったことを紹介しました。
回答を見る
  • ベストアンサー

最小二乗法に関する問題

『高校数学でわかる 統計学』という本を読んでいます。 ∑x_i e_i = 0 (※Σは、i=1からnまで) という性質があるそうですが、その証明がうまくいきません。 なお、 ∑e_i = 0 (※Σは、i=1からnまで) の証明はうまくいきましたので、下に書いておきます。 b = 1/n {∑y_i} - a/n {∑x_i}  (※以下Σは、i=1からnまで)を途中で使います。 ∑ e_i =∑{y_i - f(x_i)} =∑{y_i - ax_i - b} =∑y_i - a ∑x_i - bn =∑y_i - a ∑x_i - n {1/n {∑y_i} - a/n {∑x_i} } =0 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#227064
noname#227064
回答No.1

m_x = Σx_i/n m_y = Σy_i/n Sxx = Σ(x_i - m_x)^2 = Σx_i^2 - n m_x^2 Sxy = Σ(x_i - m_x)(y_i - m_y) = Σx_i y_i - n m_x m_y とおくと a = Sxy / Sxx b = m_y - a m_x となるので ∑x_i e_i = ∑x_i {y_i - a x_i - b} = ∑x_i {y_i - a x_i - (m_y - a m_x)} = ∑x_i {y_i - a x_i - m_y + am_x} = ∑x_i y_i - a∑x_i^2 - ∑x_i m_y + ∑x_i a m_x = (∑x_i y_i - n m_x m_y + n m_x m_y) - a (∑x_i^2 - Σm_x^2 + Σm_x^2) - n (∑x_i/n) m_y + n (∑x_i/n) a m_x = (Sxy + n m_x m_y) - a(Sxx + n m_x^2) - n m_x m_y + n a m_x^2 = Sxy - a Sxx = 0

Iovelove
質問者

お礼

quaestioさん、ありがとうございました。 とても助かりました。

関連するQ&A

  • 最小二乗法に関する質問です。

    f(a,b)=Σ[i=1~n]{y_i-(a+bx_i)}^2の最小値(極小値)を求めるために、まずfの停留点を求めると、一組だけ停留点(a_0,b_0)が得られました。 そして、fのaに関する2階偏導関数f_aaを計算すると2nだったので、 f_aa(a_0,b_0)=2n>0であることもわかりました。 これより、あとはfの((a_0,b_0)に関する)ヘッセ行列式 det(H_f(a_0,b_0))=(4nΣ[i=1~n](x_i)^2)-4(Σ[i=1~n]x_i)(Σ[i=1~n]x_i) が、正であることが示せれば、fが極小値をとることが示されると思ったのですが、 (4nΣ[i=1~n](x_i)^2)-4(Σ[i=1~n]x_i)(Σ[i=1~n]x_i)>0はどのように式変形すれば示されるのでしょうか? 回答よろしくお願い致しますm(_ _)m

  • 最小二乗法/共分散

    Y_i =α+βX_i + ε_i ・・・母集団回帰関数 Y(ハット)_i=a+bX_i ・・・標本回帰関数 bをβの推定値、εを攪乱項とする。 このとき、cov(b,ε(バー))=0となることを証明せよという問題です (※ただしε(バー)=Σ(i=1~n)(ε_i/n) とする)。 この問題の解き方を教えていただけないでしょうか。 加えて、ε(バー)というのはE(ε)と同じことなのでしょうか(古典的モデルだとE(ε)=0と仮定されるようなので)

  • 最小2乗法における連立方程式の計算法を教えて下さい

    最小2乗法に関して E=Σ(y-ax-b)^2 ∂E/∂a=Σ(y-ax-b)×2×(-x)=0 ∂E/∂b=Σ(y-ax-b)×2×(-1)=0 ここまでは分かるのですが、aとbを求めるにあたって、恥ずかしながらどのように連立方程式の計算をすればいいのか分かりません。 どなたかこの連立方程式の計算過程を分かりやすく教えて下さい。宜しくお願い致します。 それとこの計算に関してある本を見たところ、Σb=n として計算するとありました。 なぜΣb=nとしていいのかも合わせて教えて頂けると嬉しいです。

  • 最小二乗法について

    いくつか教えてほしいです。 min f(x)=||Ax-b||2・・・・(I) (1)||Ax-b||2ならわかるんですが||Ax-b||の上と下に2がつくのはどういったことでしょうか?? (2)(I)式を行列表現で表すと (A^T)Ax=(A^T)bとなりますが過程は <Ax,b><Ax,b> =<x,(A^T)Ax>-2<(A^T)b,x>+||b|となり最小化するので偏微分をし=0とおくのですが <A,x>の微分はAというのを用いれば-2<(A^T)b,x>の微分が2(A^T)bとなるのはわかるんですが <x,(A^T)Ax>の微分が2(A^T)Axとなるのがわかりません。 内積の微分は講義ではやってないので独学になります。 教授に聞いたらx=(x1,x2) (A^T)Aを2×2{{a,b},{c,d}}とおいて実際に計算し微分すれば理解できるかもと言われ計算してみたのですがよくわかりませんでした。 どうかご教授お願いします。

  • 最小二乗法 行列

    現在以下のページを参考に最小二乗法の勉強をしています。 誤差の二乗ノルムを求めるときに、  || e || ^2 = e*e = (y-Ax)*(y-Ax) = (y*-x*A*)(y-Ax) = y*y - y*Ax -x*A*y + x*A*Ax  (1) この次に        = y*y - 2y*Ax + x*A*Ax と変形できるのはなぜなんでしょうか? (1)の第3項目 x*A*y が第2項目と等しくなる過程が分かりません。 後、次の二乗ノルムを微分する過程も良くわかりません。 すみませんが、よろしくお願いします。 http://www.star.t.u-tokyo.ac.jp/~kaji/leastsquare/leastsquare_main.htm

  • 最小二乗法

    n組のデータ (xi, yi) を,特定点(X0, Y0) を通る直線 y = ax+b でフィッティングしたい。最小二乗法で係数a,bを求めるため の式を導きなさい。 という問題で 各データの残差を二乗した和が最小になるときのa,bを求めるのですが 特定点(X0,Y0)を通るにはどうすればよいでしょうか? ただ単に、特定点を通らずフィッティングするやりかたはわかるのですが・・・。 よろしくお願いします。

  • ロジスティック曲線の解法(最小二乗法)について困っています。

    初めてgooを利用させて頂きます。 以下のロジスティック曲線の解法(a,bの解法)にいて、教えてください。(過去の実績を基に、将来値の推計する際に利用しようと思っています。) ロジステック曲線式 Y=K/(1+e^(a-bx)) Kは、定数。 で、a,bを求める解法がどうしても分かりません。 最小二乗法で求めるみたいですが・・・ a,bの答えは、以下のようになるのは、分かっております。 a=(Σx・Σxy-Σx^2・Σy)/{logx・(nΣx^2-ΣxΣy)} b=(nΣx^2-(Σx)^2)/(nΣxy-ΣxΣy) a,bを求める解法を教えてください。よろしくお願いします。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ちなみに、y=ax+bを最小二乗法を用いた解法は、 S=Σ(y-ax-n)^2 の最小値を求めるために、Sをa,bで微分して0と置いて解くまでは、理解して、a,bを求めることが出来ました。 ロジステックだと、aの分母にlogxが、なぜ付いてるのかが分かりません。

  • 最小二乗法の問題

    (x、y)についてのん組のデータ(x1、y1).......(xn、yn)が直線y=ax+bの近似できるとき、aとbを最小二乗法により求めよ。

  • 最小二乗法の分母について

    http://szksrv.isc.chubu.ac.jp/lms/lms1.html 上記サイト等でも最小二乗法によって求めるy=ax+bのaとbには共に nΣ(Xi)^2-(ΣXi)^2となっていますが これらが0にならないのは何故でしょうか。 0になるようなことはないのでしょうか。 詳しく証明していただけるとありがたいです。

  • 最小二乗法を応用した微分

    C言語についてです。 規則性のある離散データを局所的(たとえば3点ごと)に最小二乗法を使って微分したいのですがどうすればいいでしょうか。 以下、データ全体に最小二乗法を適用するプログラムです。 #include<stdio.h> #define n 60 main() { FILE *fin; int i; float x[n],y[n]; double a=0,b=0,sumx=0,sumy=0,sumxy=0,sumx2=0; fin=fopen("data1.txt","r"); if(fin==NULL){ fprintf(stderr,"Not found\n"); } for(i=0;!feof(fin);++i){ fscanf(fin,"%f %f",&x[i],&y[i]); } for(i=0;i<n;++i){ sumx+=x[i]; sumy+=y[i]; sumxy+=x[i]*y[i]; sumx2+=x[i]*x[i]; } a=(n*sumxy-sumx*sumy)/(n*sumx2-sumx*sumx); b=(sumx2*sumy-sumxy*sumx)/(n*sumx2-sumx*sumx); printf("a=%f b=%f\n",a,b); fclose(fin); } データは以下のようなものです。 0 0.5 0.1 0.8 0.2 1.4 ・・・・・ 回答お願いします。