Lec4:単回帰分析②OLS

皆さんこんばんは。矢野大樹です。今日も暑かったですね。さて、前回は単回帰分析のモデルの構造を説明しました。その中で、回帰モデルとは、散布図の傾向を最もよく表した直線であると言いました。では、具体的に散布図の傾向を最もよく表した直線とはどのようなものでしょうか。下の3つの図をご覧ください。

画像1

画像2

画像3

一番上の図は、散布図のちょうど真ん中を縫うような形で直線が描かれているので、散布図の傾向を表していると言えそうです。一方で、下の2つは散布図から離れた位置に直線が描かれており、散布図の特徴をうまく説明できているかと言われれば、そうとも言えなさそうです。

どうも、散布図からの距離がとても大切になるようですね。そうなんです。散布図からの距離が最も小さい部分に、直線を引けば、散布図の傾向を最もよく表した直線が描けそうです。

では、散布図からの距離とは何なのか。一度前回のモデルを思い出しましょう。

画像4

ハット(^)は『推計された値』という意味でした。これを真の直線の値に近づけたいわけです。ここで、散布図のy座標=直線状のy座標+残差(residual)という関係が成り立ちますね。直線からの距離というのは、このうち残差(residual)に該当します。この残差が最小となるようなβ0、β1を求めればよいわけです。正確に言うと、それぞれのデータにおけるy座標と、推計された直線式のy座標との差である残差の合計が最小となるような係数を求めたい、ということになります。このようにして、係数β0、β1の値を求める方法を最小二乗法(Ordinary Least Squares: OLS)と呼びます。とても大切なので押さえておいてください。

さて、ここからですが、距離をどうやって扱ったらよいか、という話になります。一番上の図からも分かる通り、単純に直線からのy座標の差を求めただけでは、直線の上側にある場合は-の値を取りますし、直線の下側にある場合は+の値を取ります。なので、それらを合計しても互いに打消しあうだけで正確な値は取れなさそうです。

数学上で距離の問題を考える際、処理の仕方は主に2通りあります。まず1つ目は絶対値を取ること。例えば、高校2年生の数学Ⅱで学習する『点と直線の距離』の公式はこれに該当します。絶対値を取ることで、2点間の座標の差は距離に変換することが出来ます。ただし、弱点として扱いづらいという点があります。皆さんも高校1年生の時に、絶対値が入った2次関数の最大・最小問題を学習したことがあると思います。あの時を思い出してみると、場合分けの煩雑さで苦労した方も多いのではないでしょうか。やはり絶対値というのは扱いづらい部分があるのは確かです。ただ、距離そのものを正確に求めなければならない場合は、こちらを使わざるを得ません。

一方で、もし、距離の大小関係さえ把握できれば良い場合、例えば今回のように距離の合計が最小となる場合のみを考えればよい場合は、もう一つ別の良い方法があります。それは2乗することです。距離は全て正の値を取りますので、2乗をしても大小関係は変化しません。なおかつ、2乗をすることで2次関数として扱うことが出来るようになります。

2次関数とはとても便利です。というのも、頂点で、実数全体の最大値/最小値を取るからです。この最大値/最小値のことを数学用語では大域的最大値/最小値(global maximization/minimization)と言います。

画像5

一方で、3次関数の場合となると、部分的に最大値/最小値を取る点が現れることがあります。この点を数学用語では局所的最大値/最小値(local maximization/minimization)と言います。

画像6

話を元に戻しましょう。2次関数は頂点で大域的最大値・最小値を取るのでした。ということは、2次関数の頂点を調べれば良さそうですね。

ここで、残差について次のような式変形を行ってみましょう。

画像7

これで、β0、β1についての2次関数になりました。この関数のことを損失関数(loss function)と呼ぶこともあります。損失関数をS(β0^、β1^)と置くと、最小値問題は以下の通りです。

画像8

arg minの説明については、この記事の最後に補足説明をしておきます。とりあえず、この損失関数が最小となるようなβ0^、β1^を求めればよいことになります。

この損失関数は下に凸の放物線なので、頂点さえ求めれば良さそうです。高校生の時、2次関数の頂点の座標を求める際には平方完成をしたかと思います。ただ、平方完成は少し煩雑です。実は頂点のx座標だけを求めたいなら、もっと簡単な方法があります。それは微分です。微分とは、ある点xにおける接戦の傾きを導出するものでした。上の2次関数のグラフを見てください。2次関数では、頂点における傾きは0になります。ゆえに、f'(x)=0となるようなxが、実は頂点のx座標になるのです。(これを数学用語で一階条件(First Order Condition: FOC)と言います。)今の高等学校では教えているのかわかりませんが、私は塾で教えています。

今回の損失関数の場合は、β0^とβ1^2つの変数があるため、ちょっと工夫が必要です。ただそんなに難しくありません。この2つの変数のうち、どちらか一方を定数とみなして微分すればよいのです。この微分を、偏微分と言います。では、それぞれの変数について微分してみましょうか。

画像9

微分の際には、合成関数の微分公式を使っています。中身の微分×外殻全体の微分ってやつですね。-2が邪魔なので消しました。こうして得られた2本の方程式のことを正規方程式(normal equation)と呼びます。さあ、ゴールはもうすぐですよ。さらに式変形をしていきましょう!

画像10

画像11

うわあ...(ドン引き)ってなった方もいらっしゃるかもしれませんが、式変形自体はそこまで難しくありません。丁寧にやっていけば必ずゴールにたどり着きます。ポイントとしてはn個のx座標のデータの合計をデータ数nで割るとxの平均が出てくるということですね。これも原理自体は小学校の算数で学習するものです。

さて、ようやくβ0^、β1^の値が求まりました。この値が、最初に述べた散布図の傾向を最も表した直線の切片と傾きになります。当たり前ですが、こんなものは人間がわざわざ手計算しなくとも、Excelにぶち込めば一瞬で求めてくれます。ただ、原理も分からずに機械まかせにしてしまうと、ミスが生じたときに見抜けなくなってしまします。原理が分かっていると、何かおかしいな、と思って立ち止まることが出来ます。だから、ちゃんと原理原則を抑えておく必要があるのです。

今日の記事で頭が混乱した皆さんもおられるかと思います。来週は皆さん一緒に実習しましょう! Excelの準備をしておいてください!! モンテカルロ・シミュレーションという手法を用いてy=2xの直線を軸に乱数を生成させ、それを回帰分析してみましょう。それでは、次回またお会いしましょう(記事の執筆むっちゃ疲れた...)

画像12

画像13

画像14


この記事が気に入ったらサポートをしてみませんか?