回帰モデルの概要を理解しよう！

## 自己紹介とこの記事の概要
はじめまして。
私は、現在大学院生で勉強の一環としてこの記事を書いています。
また、この記事は、回帰モデルについて全く知らない人が理解できることを目的にしています。そのため、回帰の概念から基本的な回帰モデルである単回帰と重回帰について紹介しています。

## 目次
1. 回帰とは
1. 単回帰分析について
1. 重回帰分析について
1. おわりに

## 1.回帰とは
　まず、そもそも回帰という言葉に聞きなじみのない方に向けて説明します。
 回帰というのは、直線（回帰直線）を引き、無限にある数字の中からどのくらいの値になるのか予測するものになります。
 この説明では、ピンとこない方も多いと思いますので具体例を以下にしめします。

仮に、Aさんがお肉を買いたいとします。Aさんの買いたいお肉は100gあたり80円でした。
Aさんがx gお肉を買うときその値段はいくらになると予想できるでしょうか？
この問題は、数学が多少できる人ならすぐに解答することができると思います。
この時、予測する方法として立式しようと考える人が多いのではないでしょうか。
まさに、その行動こそが回帰なのです。
この問題では、yをお肉の値段とすると、
y = x*(80/100) 
と立式することができます。この式を用いることで以下のグラフからxの値（説明変数）を入力したときにyの値（目的変数）を求めることができます。
ex). x = 190 gの時、yは、152円

![回帰概念図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/220cff9d-40de-af88-6af2-51a3efa112f6.png)

このように、回帰分析とは、説明変数を用いて目的変数を予測することを指します。
それでは、ここから単純な回帰モデルである単回帰と重回帰について順を追って説明していきます。

## 2.単回帰分析
　まず、最もシンプルな回帰手法である単回帰分析について説明します。
単回帰分析は、1つの説明変数から目的変数を予測する手法です。
単回帰における近似式を以下に示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/474988bc-b95c-780a-50ee-83c0ac0b14a8.png)

ここで、β0：回帰直線の切片、β1：回帰直線の傾き、y^：回帰直線の予測値です。

先ほどの例では、1次式を立てることができましたが、実際の回帰では必ずしも予測値と実測値が一致するとは限りません。
では、単回帰ではどのように計算するのでしょうか？

まず、β1：回帰直線の傾きの算出方法を示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/d8a2f0d5-757d-a16f-1f82-6ace536c7a9c.png)

ここで、xi：各データの説明変数の値、xバー：各データの説明変数の平均値、y：各データの目的変数の値、yバー：各データの目的変数の平均値です。

次に、β0：回帰直線の切片の算出方法を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/f4b87d82-9bd5-9184-48ac-738aeeb93340.png)

このような計算を経ることによって回帰直線を作成することができました。

ここで、複数の回帰式を作ることができるのでは？と考えた方もいらっしゃるかもしれません。
ここでは、詳しく説明しませんが回帰では、最小誤差二乗法という方法で最適な回帰式を算出しています。
以下の記事が参考になったので気になる方はご確認ください。

https://qiita.com/MANGATA/items/d1b9faf9f8509f0e041e

ここで、作成した回帰直線がどの程度正確に予測を行うことができるのか評価する必要があります。
評価するにあたって、大きく以下の2つの要素があります。
1. 予測誤差 e
1. 決定係数 R2(Rの二乗)

誤差の算出方法
予測誤差の算出方法はいたってシンプルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/603c24da-247d-0116-b46b-79550f9ade2b.png)
このように予測値と実測値の差を誤差といいます。しかし、このままでは、それぞれのデータに対する誤差を算出するのみでこの回帰直線が全体的にどのくらい優れているのかが不明瞭だと思います。そこで、平均二乗誤差(MSE)について少し紹介したいと思います。平均二乗誤差(MSE)は、以下の式で算出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/2805af3f-66b9-d36e-69d8-3b837696e0c5.png)

ここで(yi - y^i)は誤差のことで
MSE = 1/n Σ(ei)2と表すこともできます。
このMSEが0に近いほど良い回帰直線と判断することができます。

決定係数の算出方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/9e52cd0e-0be1-be93-6f6a-17910c3043ed.png)

ここでΣ(yi - y^i)2は、残差平方和、Σ(yi - y-)2は、全変動平方和と呼ばれます。
そのため、すべての予測値が実測値と一致している場合R2=1となります。

## 3.重回帰分析（Multiple Linear Regression）
　次に重回帰分析と呼ばれる手法について紹介します。
先ほどの単回帰分析では、目的変数に対して1つの説明変数しか用いることができず、回帰モデルの説明力が弱いという欠点があります。
この欠点を解決するために生み出された手法が重回帰分析です。
重回帰分析（Multiple Linear Regression）は、1つの目的変数と複数の説明変数との関係をモデル化する方法です。

回帰式は、以下の式で表されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3889885/0e149211-b151-194d-52dd-19868d67e351.png)

ここで、β0：回帰直線の切片、βi：各説明変数に対応する回帰係数（偏回帰係数）、y^：回帰直線の予測値、xi：各説明変数の値です。
各説明変数に対応する回帰変数（偏回帰係数）は、説明変数に重みを付けているというイメージだと分かりやすいかと思います。

このような計算を行うことで複数の説明変数を用いて目的変数を予測することができるようになり、単回帰と比べて回帰モデルの説明力が一気に向上しました。

### 重回帰のデメリット
ここで重回帰のデメリットとして気を付けなければいけないことを紹介します。
それは、「多重共線性」という概念です。
多重共線性とは、重回帰分析において、複数の独立変数（説明変数）が互いに強く関連している状態を指します。
具体的には、独立変数同士が高度に相関しているとき、モデルの回帰係数の推定が不安定になり、結果として回帰分析の解釈が困難になる現象です。

私は、農学部に所属しているので農業をテーマとして具体例を挙げます。
仮に、作物の収穫量の予測を行う際に、説明変数を以下の変数とする場合を考えます。
・降水量
・土壌水分量
・温度
・肥料散布量

これらの変数のうち、降水量と土壌水分量は、降水量が多いと土壌中の水分量も増加するため、これらの変数は強く関係していることが考えられます。
この状態で重回帰を行うと、それぞれの影響が複雑になり、独立した評価をすることができなくなります。
さらに、回帰係数が不安定になり、回帰モデルの予測する精度の低下が危惧されます。
このような状態が多重共線性です。

この重共線性を回避するために生み出された回帰モデルが以下の回帰モデルになります。
・PCR(Principal component regression)：主成分回帰
　　主成分分析(PCA)＋重回帰
・PLSR(partial least squares regression):部分最小二乗回帰
　　説明変数と目的変数の共分散＋重回帰
  
## 4. おわりに
ここまで、回帰の概念と基本的な回帰モデルについて説明してきました。
本記事は、初学者の方にわかりやすく回帰について説明することを目的としていたので最後まで読んでくれた方の理解の手助けができていたら幸いです。
今後は、PCRやPLSRについても記事にする予定です（力尽きなければ..）