====== 【データリテラシー】第13回 回帰分析 ====== ===== 単回帰分析 ===== 2変量 $Y, X$ のデータがあるとき、$Y$ を $X$ で説明する方程式を推測することを__**単回帰分析**__という。 このとき、$X$ を__**説明変数(独立変数)**__、$Y$ を__**被説明変数(従属変数)**__という。 $Y$ を $X$ で説明するというのは、$X$ を変化させたときに $Y$ がどう変化するかを説明することである。 $Y$ を $X$ で説明する方程式は、$X$ の関数 $f(X)$ を使って次の式で表される。 \[ Y=f(X) \] $f(X)$ をどのような関数にするかを__**モデル**__という。 モデルには1次式や2次式や対数関数など無限に可能性があるが、得られたデータをうまく説明できるように作らなければならない。 ここではモデルとして最も簡単な $X$ の1次式、つまり $X$ の1乗の項と定数項のみが入った式で $Y$ と $X$ が比例関係にある場合を考える。 これを__**線形回帰**__((線形回帰以外を__**非線形回帰**__という。))という。 \[ Y=\beta_{1}+\beta_{2}X \] ここで $\beta_{1}, \beta_{2}$ (($\beta$ はギリシア文字でベータという。)) は $X, Y$ によらない定数である。 もしくは \(Y=aX+b\) の形の方がなじみ深いかもしれない。 $Y$ と $X$ の比例関係を考えるという点では相関関係と似ているが、相関関係は $Y$ と $X$ の間に(比例)関係があるかどうかしか見ないのに対し、単回帰分析は $Y$ を $X$ で説明する方程式を推測するという点で本質的に異なる。 その方程式が推測できれば、$X$ の値に対して $Y$ がどう変化するかが予測できるようになる。 以下は [[dataset#データセット2]] における経営コース2年の授業外学修時間 $X$ と経営学基礎の点数 $Y$ の散布図である。 データの点は右肩上がりの直線状に並んでいるように見える。 $Y$ と $X$ の間に比例関係があるということは、散布図で直線的な関係にあるということである。 {{ regression1.png?nolink |経営コース2年の授業外学修時間と経営学基礎の点数の散布図}} ===== 母回帰方程式 ===== $Y$ を $X$ で説明する比例関係の方程式は1次方程式である。 \[ Y=\beta_{1}+\beta_{2}X \] この式を__**母回帰方程式**__という。 $\beta_{1}$, $\beta_{2}$ は $X, Y$ によらない定数で、__**母回帰係数**__という。 1次方程式は XY-平面のグラフで描くと直線になり、この直線を__**回帰直線**__という。 回帰直線において、$\beta_{1}$ は__**切片**__、$\beta_{2}$ は__**傾き**__に当たる。 {{ linear.png?nolink |回帰直線}} ===== 母回帰係数の推定 ===== 観測や調査から $X, Y$ の $n$ 組の観測値のデータ $(X_{i},Y_{i})$ $(i=1,2,\cdots,n)$ が得られたとする。 このデータから $\beta_{1}$, $\beta_{2}$ を推定すれば、$Y$ を $X$ で説明する方程式が推測できたことになる。 $X$ と $Y$ が理論的に比例関係にあったとしても、実際の観測値には誤差がともなうため、データは直線から外れてばらつくのが一般的である。 このデータを散布図にプロットしたときに、点がほぼ直線的に並んだとしよう。 この点に最適な直線を求めれば、その直線から $\beta_{1}$ と $\beta_{2}$ が推定できる。 このような散布図に合う直線は、高校までは適当に定規を当てて直線を引いていたことだろう。 しかし、それでは定規の当て方次第で様々な直線が引けてしまうので、どれが最適な直線か分からない。 単回帰分析では、$Y$ のデータに(正規分布の)誤差が含まれると仮定し、回帰直線とデータとの $Y$ 方向のずれ(残差)の二乗の和が最小となるように最適な回帰直線を決める。 この方法を__**最小二乗法**__という。 最小二乗法の詳細は省略するが、この方法による$\beta_{1}, \beta_{2}$ の推定値 $\hat{\beta}_{1}, \hat{\beta}_{2}$ ((推定値には ^(ハット)をつける。)) は以下の式で求められる。 \begin{eqnarray*} \hat{\beta}_{2}&=&\frac{C_{XY}}{S_{X}^{2}}\\ \hat{\beta}_{1}&=&\bar{Y}-\hat{\beta}_{2}\bar{X} \end{eqnarray*} ここで、$\bar{X}, \bar{Y}$ はそれぞれ $X_{i}, Y_{i}$ の平均である。 $S_{X}^{2}$ は $X$ の不偏分散で、$C_{XY}$ は共分散である。 \[ S_{X}^{2}=\frac{1}{n-1}\sum_{i=1}^{n}(X_{i}-\bar{X})^{2} \] \[ C_{XY}=\frac{1}{n-1}\sum_{i=1}^{n}(X_{i}-\bar{X})(Y_{i}-\bar{Y}) \] これでデータに最適な回帰直線が推定される。 推定された回帰直線の式を__**標本回帰方程式**__といい、以下の式で表される。 \[ Y=\hat{\beta}_{1}+\hat{\beta}_{2}X \] この式に $X$ を入れれば、$Y$ の推定値が求められる。 つまり、未知の $X$ に対して $Y$ の値がいくつになるか予測ができるようになる。 ===== 決定係数 ===== 最小二乗法による $\hat{\beta}_{1}, \hat{\beta}_{2}$ の推定式にデータを入れて計算すれば $\hat{\beta}_{1}, \hat{\beta}_{2}$ が得られる。 しかし、どのようなデータでも推定式に入れれば計算できるので、そのデータが直線的かどうかには全く関係なく求まってしまう。 そこでデータに対する推定した回帰直線の当てはまりの良さを示す指標が考えられた。 これを__**決定係数**__ $r^{2}$ (もしくは $R^{2}$)といい、以下で定義される。 \[ r^{2}=\frac{\displaystyle\sum_{i=1}^{n}(\hat{\beta}_{1}+\hat{\beta}_{2}X_{i}-\bar{Y})^{2}}{\displaystyle\sum_{i=1}^{n}(Y_{i}-\bar{Y})^{2}} \] $r^{2}$ は以下の性質がある。 * $0$ から $1$ までの値しかとらない。 * 1 に近いほど当てはまりが良く、0 に近いほど当てはまりが悪い。 * $r^{2}$ はピアソンの積率相関係数 $r$ を二乗したものに等しい。 ===== 重回帰分析 ===== $k$ 変量 $Y, X_{2}, X_{3}, \cdots, X_{k}$ のデータがあるとき、$Y$ を $X_{2}, X_{3},\cdots, X_{k}$ で説明する方程式を推定することを__**重回帰分析**__という。 このとき、$X_{2},X_{3},\cdots, X_{k}$ を__**説明変数(独立変数)**__、$Y$ を__**被説明変数(従属変数)**__という。 例えば、日本の気温を説明する要因を考えよう。 日本の気温は緯度と強い負の相関を持つため、気温は緯度によってかなりの部分が説明できる。 しかし、その他に経度や高度の影響もあると考えられるので、それら複数の要因から説明する必要があるだろう。 このような場合は、気温を $Y$、緯度を $X_{2}$、経度を $X_{3}$、高度を $X_{4}$ として以下のようなモデルの母回帰方程式を考えることができる。 \[ Y=\beta_{1}+\beta_{2}X_{2}+\beta_{3}X_{3}+\beta_{4}X_{4} \] この式における母回帰係数 $\beta_{1}, \beta_{2}, \beta_{3}, \beta_{4}$ は、単回帰分析と同じく最小二乗法で推定するのが一般的である。 重回帰分析についてはこれ以上詳しく取り扱わないが、経済学やデータサイエンスなどの分野では必要となるので、各自勉強してほしい。 ===== 回帰分析の関数 ===== ==== 単回帰分析の関数 ==== ^ 関数 ^ 説明 ^ | INTERCEPT(Yの範囲, Xの範囲) | 切片 $\beta_{1}$ を求める。 | | SLOPE(Yの範囲, Xの範囲) | 傾き $\beta_{2}$ を求める。 | | RSQ(Yの範囲, Xの範囲) | 決定係数を求める。 | LibreOffice Calc や Microsoft Excel では散布図でも単回帰分析のこれらの値を求めることができる。 ---- ==== 重回帰分析の関数 ==== ^ 関数 ^ 説明 ^ | LINEST(Yの範囲, Xの範囲) | 重回帰分析を行う。Xの範囲には複数列指定できる。 | LINEST 関数の使い方は少し特殊なので使いたい人は調べてほしい。 LibreOffice Calc や Microsoft Excel の分析ツールには重回帰分析を行う機能が備わっているので、それを利用した方が簡単である。 ===== 演習:単回帰分析 ===== * 使用するデータセット:[[dataset#データセット2]] 経営コース2年の「授業外学修時間」と「経営学基礎」の点数から散布図を描き、単回帰分析を行う。 ---- ==== データの抽出 ==== 経営コース2年のデータを別のシートに抽出する。 - 下側のシートタブにある「+」をクリックして新しいシートを追加する。「Sheet2」という名前のシートが追加される。 - シートタブの「dataset2」をクリックして初めのシートに戻る。 - データのセル(どれでもよい)を選択してメニューバーの ''**[データ]**''%%→%%''**[オートフィルター]**'' を選択するか、ツールバーの ''**[オートフィルター]**'' のボタンをクリックすると、ラベルの各セルに ''**[▼]**'' のマークがつく。 - 「学年」の ''**[▼]**'' をクリックして ''**[2]**'' 以外のチェックを外す。 - 「コース」の ''**[▼]**'' をクリックして ''**[経営]**'' 以外のチェックを外す。 - 列 A から列 J をコピーして、シート「Sheet2」の列 A に貼り付ける。列 D が「授業外学修時間[h]」、列 E が「経営学基礎」のデータになる。 これで抽出されるデータ数は 40(行 2 から行 41)である。 ---- ==== 散布図の描画 ==== 以下ではシート「Sheet2」で操作を行う。 - セル D2 から E41 の範囲を選択する。 - メニューバーの ''**[挿入]**''%%→%%''**[グラフ]**'' を選択してグラフウィザードのダイアログを表示する。 === ① グラフの種類 === - ''**[散布図]**'' を選択する。 - 右側の4つある種類から ''**[点のみ]**'' を選択する(デフォルトで選択されている)。 - ''**[次へ]**'' をクリックする。 === ② データ範囲 === はじめにデータ範囲を指定したので、ここでは何もしなくてよい。 - ''**[次へ]**'' をクリックする。 === ③ データ系列 === データ範囲から自動的に X 値と Y 値が設定される。 - 「データ範囲」の ''**[名前]**'' をクリックし、「名前の範囲」に「経営学基礎」と入力する。 - ''**[次へ]**'' をクリックする。 === ④ グラフ要素 === - 「タイトル」に「データセット2」と入力する。 - 「サブタイトル」「経営コース2年」と入力する。 - 「X 軸」に「授業外学修時間 [h]」と入力する。 - 「Y 軸」に「経営学基礎の点数」と入力する。 - 「目盛線を表示」の ''**[X軸]**'' と ''**[Y軸]**'' にチェックを入れる。 - ''**[完了]**'' をクリックする。 これで散布図が描かれる。 見やすいようにグラフ編集モードの ''**[軸の書式]**'' で最小値と最大値を調整してもよい。 ---- ==== 回帰直線の描画 ==== 散布図上で回帰直線を描画する。 - グラフ編集モードにする。 - グラフ上の青い四角の点で右クリックしてコンテキストメニューから ''**[近似曲線を挿入]**'' を選択する。 - ''**[タイプ]**'' タブをクリックする。 - 「回帰の種類」で ''**[線形]**'' を選択する。 - ''**[等式を表示]**'' と ''**[決定係数(R2)を表示]**'' にチェックを付ける。 - 「Y変数名」に「y」と入力する。 - ''**[OK]**'' をクリックする。 これで散布図に回帰直線が描画され、推定した回帰直線の式と決定係数(ここでは $R^{2}$)が表示される。 {{ regression2.png?nolink |回帰直線と決定係数}} * 切片の推定値 $\hat{\beta}_{1}=43.2252505450196\simeq 43.2$ * 傾きの推定値 $\hat{\beta}_{2}=0.24080638917727\simeq 0.241$ * 決定係数 $R^{2}=r^{2}=0.658559500829812\simeq 0.659$ 傾きが正であることから、$X$ が増えると $Y$ も増える傾向にある。 決定係数から回帰直線にデータはそこそこ当てはまっていることが分かる。 余裕があれば、INTERCEPT 関数で $\hat{\beta}_{1}$、SLOPE 関数で $\hat{\beta}_{2}$、RSQ 関数で $r^{2}$ を求めて、散布図で求めた推定値と同じになるか確かめて欲しい。 Microsoft Excel でも散布図上で回帰直線を描画できる。 - グラフ上のプロットした点で右クリックしてコンテキストメニューから ''**[近似曲線の追加]**'' を選択する。 - 「近似曲線のオプション」で ''**[線形近似]**'' を選択し、「予測」の ''**[グラフに数式を表示する]**'' と ''**[グラフにR-2乗値を表示する]**'' にチェックを付ける。 \\ ---- ==== 予測 ==== 回帰係数が推定できたので、例えば「授業外学修時間」が $X=200$ 時間だと「経営学基礎」の点数か大体何点になりそうなのか次の計算で予測できる。 \[ Y=\hat{\beta}_{1}+\hat{\beta}_{2}\times 200\simeq 43.2+0.241\times 200 = 91.4 \] ===== 課題 ===== [[dataset#データセット2]] から政策コース3年の「授業外学修時間」と「地域政策論」の点数から散布図を描き、単回帰分析を行いなさい。 作成したファイルは ODF 表計算ドキュメント(拡張子 .ods)で提出すること。