1-8 統計学基礎～回帰と相関

# はじめに
1-6,1-7の記事では、カテゴリ変数と量的変数の関係、カテゴリ変数同士の関係についての仮説検定手法を説明しました。
本記事では量的変数同士の関係について説明したいと思います。

# 目次
1. 相関と回帰
2. 相関係数
3. 回帰分析


# 1. 相関と回帰
２つの量的変数間にどのような関係があるかをざっくりと捉えるために**散布図**を用いて可視化します。
散布図を見ることで、片方が大きい値である場合にはもう一方も大きい値であるなどの関係を見ることができます。
このような２つの変数間の関係のことを**相関**といいます。また量的変数同士の関係の強さを定量化するしたものを**相関係数**といいます。
相関係数については本記事の２章で扱いたいと思います。

２つの量的変数同士の関係を分析するもう１つの重要な手法として**回帰または回帰分析**があります。
回帰とは$y = f(x)$という関数によって変数間の関係を定式化することを指し、$x$を**説明変数または独立変数**、$y$を**目的変数または従属変数**といいます。

# 2. 相関係数
２つの量的変数があるとき、関係性がどの程度強いのかを数値で表すことができると対象の理解が深まります。
この数値のことを相関係数といいます。

例えば数学の点数と理科の点数が強く関係があるとすれば、理科の点数を伸ばすためには数学の能力を高めることが重要である「１つの可能性」が浮かび上がる。あくまで可能性にすぎません。可能性ではなく実際に上記のような関係があることもあります。こういう関係を**因果関係**といいます。詳しくは別の記事で説明しますが、１つ覚えておいてほしいのは相関関係があるからといって必ず因果関係があるわけではないということです。

２つの量的変数間における関係の強さを定量化する手法として最も頻繁に使用される値は、**ピアソンの積率相関係数r**と呼ばれる値です。このrの取りうる値は$-1 \leq r \leq 1$となります。rを求める計算式の説明はここでは省略させていただきますが、Rとかを使えば一瞬で計算できます。またrの値が１または-1に近いほど**強い相関**があるといえ、符号が正の場合**正の相関**、負の場合**負の相関**といいます。

実際に数学と理科の点数についてデータを生成し、散布図をプロットしてみました。
散布図を見る感じ数学の点数が高くなると、理科の点数も高くなっているように見えます。
そして相関係数rの値は$0.875$となり、強い正の相関があることがわかりました。

![散布図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/8e056889-a036-9c67-bf8a-ba54063b1b2e.png)

※散布図・相関係数どちらか一方のみだけで相関関係があると判断しないでください。必ず散布図をプロットしざっくりとしたデータ分布を見てから、相関係数を求めるようにしましょう。

続いてピアソンの積率相関係数rを使用するための条件がありますので説明します。
ピアソンの積率相関係数は各データが正規性を満たしていないと使用することができません。
つまりデータが歪んでいたり、外れ値がある場合ピアソンの積率相関係数では正確な値を求めることはできないということです。

例えば下記散布図を見てください。
パッと見た感じ相関はないように見えると思います。実際に相関係数rを求めると-0.04とほぼ0に近い状態なので、無相関状態といえるでしょうう。このデータに対して外れ値(200,200)を与えてみると、相関係数が0.98となり正の強い相関があると判断してしまいます。
![無相関.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/c5dfc9da-2db8-5205-7118-bd23a79ea2a7.png)

このように正規性を満たしていないと誤った判断がされてしまうので、ピアソンの積率相関係数を使用する前は各データに対してシャピロ・ウィルク検定を実施してあげるとよいでしょう。もし少なくとも片方で正規性を満たさなければ、次に紹介するノンパラメトリック版の相関係数を用いることが望ましいです。

続いて上記でも少し触れた少なくとも片方のデータに対して正規性がない場合に使用するノンパラメトリック版の相関係数である、**スピアマンの順位相関係数$\rho$**について簡単に説明します。
こちらは各データ内でデータをそれぞれ大きさ順に並べてランクをつけ、そのランクを用いて相関係数を求めます。

これを用いれば先ほどの無相関に外れ値を加えた場合の相関係数は次のようになります。
外れ値を含まない相関係数：$\rho=0.084$
外れ値を含む相関係数：$\rho=0.238$
ピアソンの相関係数ほど影響を受けていないことがわかると思います。
もしサンプルサイズが10未満の場合は、**ケンドールの相関係数r**を用いるようにしましょう。

最後に相関係数を求めたら、**無相関検定**を行うようにしましょう。
各母集団の相関係数が0だとしても、標本間の相関には正の相関や負の相関が表れている可能性もあります。そのためこの検定を行うことで、統計的に有意な相関といえるかどうかを検証して終わりにしましょう。

無相関検定の前提条件は次のようになります。
**帰無仮説**：母集団の相関係数は0
**対立仮説**：母集団の相関係数は0ではない
Rを用いれば計算できるので、実際にやってみてください。ここでの例題は省略させていただきますが、帰無仮説を棄却できれば統計的有意性観点からも正の相関、負の相関があると主張できるでしょう。

２章で学んだことをフローにまとめました。少しでも参考になればと思います。
また正規性の検定と無相関検定があり、多重性が心配される場合は多重性の検定で学んだ**ボンフェローニ法**などを使ってみるのも面白いかもしれないです。

![相関フロー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/8a36f7da-80b5-37cc-7cc1-d5b940a7f083.png)

# 3. 回帰分析
**概要**
回帰とは説明変数xと目的変数yの間に$y=f(x)$といった関数を当てはめることを指します。この関数が得られれば、説明変数と目的変数間の関係性を知ることができます。また新しく得られた説明変数に基づく目的変数の予測も可能になります。説明変数が１つの回帰を**単回帰**、２つ以上の回帰を**重回帰**といいます。(重回帰は別の記事で紹介)

単回帰の回帰式はが１次関数$y=a+bx$であるもっとも単純なケースを考えましょう。パラメータ$a,b$のことを**回帰係数**といいます。このパラメータは未知の値なので、標本から推定する必要があり、その方法について次に説明します。

**最小二乗法**
様々な$a,b$の中からベストな$a,b$を決めるためには、モデルの良さを表す何らかの基準を与える必要があります。今回はデータになるべく合うような回帰モデルが良いモデルとして考えてみます。「データになるべく合う」とは「データと回帰式の差ができる限り小さい」ことを指しています。データと回帰式の差ができる限り小さくなる回帰係数を探す手法を**最小二乗法**といいます。

ここから数学的なお話に少しなるので、興味ない方は飛ばしてください。最小二乗法はRを用いれば一瞬でできますので。
サンプルサイズ$n$の２変数データ$x_1,x_2,・・・,x_n$と$y_1,y_2,・・・,y_n$があるとして、$x$を説明変数・$y$を目的変数とする。
実データ$x_i$と回帰式$y=a+bx$を用いて、目的変数を推測すると$\hat y_i = a+bx_i$となる。($a,b$は未知変数)
この回帰式より推測した$\hat y_i$と実データ$y_i$の差を二乗し、足し合わせたものを$E(a,b)$とおく。つまり$E(a,b)=\sum_{i=1}^n (\hat y_i - y_i)^2$となる。この$E(a,b)$が大きければデータと回帰式はずれており、小さければ回帰式とデータはよくあっていることになる。今回データと回帰式の差ができる限り小さい回帰係数を求めたいので、$E(a,b)$が最小になるような回帰係数$a,b$を求めればよいことになる。この手法を**最小二乗法**という。

具体的に$a,b$を最小化する方法は、$a,b$どちらか一方のみを変数として扱い、もう一方は定数として偏微分を行うことです。この偏微分の結果をイコール0で計算することで、２つの値を推測することができます。

```math
\frac{\partial}{\partial a}E(a,b)=0, \frac{\partial}{\partial b}E(a,b)=0
```

ちなみに上記で推測したパラメータ$\hat a, \hat b$は母集団パラメータ$a,b$と不偏推定量の関係になることもわかっております。
つまり推定されたパラメータ$\hat a, \hat b$の１回ずつの値は母集団のパラメータとは異なるが、平均的にみると母集団のパラメータ遜色ないパラメータといえるということです。
```math
E(\hat a) = a, E(\hat b) = b \ 
```

**決定係数**
最小二乗法を用いることでデータに当てはまりの良い回帰式を求めても、データと回帰式がぴったりとあうことはありません。
確率的な変動も踏まえて回帰式だけで目的変数のすべてを説明することができないということです。推定した回帰式だけではどれほど良いモデルなのかわからないため、何かしらの指標を用いて回帰式を評価しないといけないです。よく使用される当てはまりの良さを表す指標を決定係数$R^2$といいます。この$R^2$の値が１に近いほど回帰モデルがデータによく当てはまっていて、0に近い場合当てはまりが悪いことを指しています。

説明変数が１つの一次関数の線形回帰で最小二乗法を用いた場合、決定係数$R^2$とピアソンの積率相関係数$r$を二乗した値は一致します。
この関係を覚えておくと、$R^2$を求めるまでもなくだいたいの指標をつかむことができるでしょう。ただ$R^2$には１つ問題点があり、説明変数の数が増えれば増えるほど値が１に近づいていきます。そのため説明変数の数に応じて調整された**調整済み決定係数**$R^2$を用いるのが一般的になっております。

**誤差の等分散性と正規性**
最小二乗法で求めた線形モデルのパラメータに関して仮説検定を実施または信頼区間を計算するには、誤差項$\epsilon$の確率分布が平均0分散$\sigma^2\ $の正規分布であることを仮定する必要があります。誤差項が正規分布に従っていることを調べるためには、**シャピロ・ウィルク検定**を実施すればよいでしょう。
また説明変数の値によって誤差項の分散が変化しないことを仮定すれば、最小二乗法による線形回帰モデルの推定は**最良線形不偏推定量**を得ることができます。(最良線形不偏推定量とは、不偏推定量の中で最も精度の高い不偏推定量のこと）この等分散性を確認するには、**ブルーシュ・ペーガンの検定**を実行するとよい。

**例題**
ではここまでで習ったことを実際の例で確認してみましょう。(誤差の等分散性と正規性は省略)
今回使用するのは、部屋の広さと家賃の関係について調査します。部屋の広さを説明変数、家賃を目的変数とする。

![家賃.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/aeebb732-2417-bfd0-5a9b-2052577f951e.png)

Rを用いて計算した結果が次のようになりました。

![単回帰分析.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/c0f02e6c-73d3-86b6-1ba6-17945e5be694.png)

Rによる計算で得られた回帰式は、$y = -0.9212 + 0.4951x$となりました。つまりこの回帰式より、$10m^2$の広さの家賃は$-0.9212 + 0.4951 \times 10 = 4.0298$、約4万円となると推測できます。
ただ各パラメータのp値を見ると有意水準5%で比較した際、切片は値が大きすぎることがわかりました。つまりこの回帰係数パラメータは統計的に有意であるとは言えなさそうですね。決定係数と調整済み決定係数の値も0.5以下なので、あまりデータと回帰式の当てはまりの良さはよくなさそうだとわかりました。

今回あてはまりが悪かった原因は、家賃に影響する他の要因(築年数や階数など）を考慮しなかったためだと思います。
もし部屋の広さと家賃の単回帰分析をしたいのであれば、データ抽出の際に部屋の広さ以外の条件が同一の物件を見る必要がありそうですね。
例えば築年数や駅からの距離、部屋の階数が同じ物件からデータをとるだけでもより精度の高い回帰式を導き出せると思います。

データの散布図と回帰式の描画は以下になります。
![回帰式と散布図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779455/87afd360-16b1-9aea-b9b7-cd7e0ff0e708.png)