ML基礎 | 回帰や線形という言葉についての初歩の初歩

# 回帰 (regression)
###### Q. 回帰ってなに？
A. こちらがしっくり。

> 平均（位置の） 世の中の大半の物事は基本的には 「振り子」と同じように、ある平均 を持っていて、何もしなければ勝手 に平均に「戻る」（回帰する）性質 がある

[tjoさんのおかげで救われていますね。。。（pp.18）](https://www.slideshare.net/takashijozaki1/code-score150123-tjo)

__物事は振り子のように揺れるけど、なにもしなければ実は平均の位置を中心に移動しているだけで、常に戻る性質あるようですね。__これを回帰する、というのか。

別の言い方ではy = a + bxで定式化することを回帰ってのもあったな。x から y を見る。xが原因、yが結果。
x を 独立変数 (independent variable)　予測変数 predictor 説明変数、Y を 従属変数 (dependent variable)　応答関数 response 被説明変数と呼ぶ。

###### Q. 回帰ともうひとつの種類として分類があるが？
A. 分類は与えられるカテゴリに分けること。回帰はデータの予測を行うこと。ですね。

###### Q. 線形回帰とは何か
A. 線形回帰とは、あるデータの集合から得た複数のプロット（変数）の関係を定式化すること。y=ax+b （xが独立変数、yが従属変数）など、最適な偏回帰係数（aやb）を求める。

###### Q. なんとか回帰があるけど何？
A. ざっくりこんな感じ。
- 単回帰: 説明変数が1つだけの線形回帰モデル
- 多項式回帰: 説明変数は1つなのだが次数（x^2とか）を上げた場合の回帰モデル。バイブルでは線形モデルともう呼んでない。
- 重回帰:説明変数が複数ある線形回帰モデル
- ロジスティック回帰:確率予測や、2クラスに分類することに向いている回帰

###### Q. 多項式回帰で次数が大きくなるとどうなるか？
A. 表現力が上がるが、過学習しやすくなる。

###### Q. 重回帰について覚えておくことある？

- (メリット) 誤差が小さくできる。予測の精度が上げることができる
- (デメリット) [モデルの説明変数は必要以上に増やせば増やすほど学習データのシグナルだけでなくノイズにまでフィットしてしまう](http://tjo.hatenablog.com/entry/2016/04/14/190000)
- (デメリット) 独立変数X1,X2,....Xnの間に強い相関が認められるものが含まれる場合、重回帰モデルの信頼性を損ねる可能性あり（__多重共通性の存在__）。


###### Q. 回帰予測の具体的な流れってどんな感じ？

- ステップ1．前処理
- ステップ2．予測関数準備しまーす。
あるデータの集合の説明変数を使い、選んだ回帰モデルのパラメータ（偏回帰係数）を求める。

- ステップ3. 識別関数・活性化関数準備しまーす。
ここはロジスティック回帰でいうシグモイド関数、パーセプトロンでいうヘビサイド関数のこと。線形回帰モデルでは予測関数でそのまま連続値を予測するので、必要じゃないと思う。

- ステップ4. コスト関数準備しまーす。
線形回帰モデルでは最小二乗法を用いて推定。

- ステップ5. 最適化アルゴリズムを準備しまーす
最急降下法とか確率的勾配法とかですね。

- ステップ6. 学習→最適な重み（係数）の発見→チューニング
もしも結果が悪かったら。求めたパラメータや説明変数を増やしたり、高次方程式にすることで、学習モデルを目的のモデルに近づける。最終的に、指標などから判断して、条件を満たす学習モデルを選定し、未知のデータから予測を行う。

- ステップ7. 最適な重み（係数）を発見。
（ステップ2-7は、学習でひとくくりでも良いかも。）

- ステップ8. 性能評価
性能評価。指標としては以下がよく見ます。
 - MSE：誤差の二乗和の平均値で、学習用データ、検証用データともに小さければモデルの性能が良い
 - 決定係数：モデルの性能が良いほど1に近い量になる（MSEが0の場合に1をとる）。どうやって求めるかは今はパスします。


###### Q. 回帰問題のモデル評価の登場人物は？
A.

- 平均二乗和（MSE）
- 決定係数R^2 ⇦実はMSEの尺度を取り直したものにすぎない。決定係数についてもうちょっとまとめる。
  1. 推定した回帰式がどの程度の説明力を有するかを示す指標。当てはまり具合を表す。
  2. もっとも説明変数が目的変数を説明できる場合、決定係数は1になる。
  3. 実際のデータと推定された回帰式から「全変動」「回帰変動」「残差変動」の3つを求め、以下の式に当てはめる。

[参考にしたのはこちら](https://bellcurve.jp/statistics/course/9706.html)

もちろん他にもいろいろです。

###### Q. 決定係数をいかなる場合も信じても良いか？
A. 決定係数が高ければ、汎用性があるモデルと言えるのか、かぁ。実は信じるべきではない、ということでした。

- [（引用）目的や仮説とは一切関係ない変数を、決定係数が上がるからという理由だけで無秩序に分析に加えてしまうと、そのモデルは解釈が難しくなり当初の目的を果たせない。外れ値を含む場合も同様に決定係数に影響を与える。](http://xica.net/magellan/marketing-idea/stats/about-coefficient-of-determination/)
- 使い方には注意。決定係数はあくまで「予測の当てはまりの良さ」を表す指標。分析の目的が「ある変数の値を予測」することであること。

自由度調整済み決定係数というものがあって、母集団を意識して自由度を加味した自由度調整済み決定係数のほうが正確。

# 線形 (linear)

###### Q. 。。。あれ、そもそも線形って？
A. 説明変数と回帰係数のどちらに着目しているかで記載が異なっている。
記事によってどこまで書いてあるかで線形・非線形の定義が変わっている。

- xに着目 (参考：[そもそも線形ってどういうこと](https://qiita.com/te20/items/e91faee8f9eb9b1a869c))

> f(x+y)=f(x)+f(y)
> f(kx)=kf(x)　ただし、kは実数
> つまりこの2つの性質が成り立つ関係を線形と言います。
> したがって、y=2x+1は線形ではありません。こういうのは非線形と言います。

ここでは、線形は、y = 5x、非線形は、それ以外ってことですね。

- 回帰係数に着目（参考：[線形回帰](https://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%9B%9E%E5%B8%B0)）

> 線形回帰が「線形」であるのは、目的変数 Y が説明変数 X の係数 β に対して線形であるためである。たとえば

y = β0 + β1*x + β2*x^2+ 誤差項

>という回帰は x に対して明らかに線形ではないが、係数 β に対して線形であるから、線形回帰の問題に分類される。

まとめると、線形とは下記の定義を満たす式で、説明変数・係数のそれぞれに対して線形か否かは変わるという感じでしょうか。

> f(x+y)=f(x)+f(y)
> f(kx)=kf(x)　ただし、kは実数

######Q) 線形って言葉がたくさんあって錯乱気味。もう一度説明できる？
A. 以下にまとめる。

- 線形
    - 「線形」というのは、「目的変数」と「説明変数」の関係性が線形（変数と変数の関係が直線的）であることを指す。モデル内の各項が加法であり、項を乗算するパラメータが1つだけ含まれている場合は線形。
    -  （式例）　応答 = 定数 + パラメータ * 予測変数 + ... + パラメータ * 予測変数
    -  非線形形状としては、凹、凸、指数的な増加または減少、シグモイド(S)、および漸近曲線など。例えば「exp」とか「log」とかの関係性が入ると、「線形モデル」ではなくなる。

- 線形モデル
    - 応答 = 定数 + パラメータ * 予測変数 + ... + パラメータ * 予測変数のように線形結合の目的関数をモデル化したもので直線になる。

- 非線形モデル
    - 非線形モデルは曲線。（例）多項式回帰

- 線形回帰
    - 目的関数をあるモデル（コスト関数）に当てはめて、パラメータを求めるまでが線形回帰。
    - 多項式回帰での x に対しては線形ではないが、係数 β （パラメータ）に対しては線形であるため、線形回帰の問題に分類される。[[参考](https://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%9B%9E%E5%B8%B0)]

- 線形分離可能/線形分離不可能
    - 線形分離可能とは、線形モデルによってクラス1と0に分離できること。線形分離不可能は線形モデルで分離できないこと。[[参考](https://qiita.com/imaimai1125/items/2a126cf04e64432f1bfd)]

###### Q. 線形分離とは？？
A.
直線を引くことによって分類することを言う。


# 相関分析 (correlation)
######Q. 相関って説明できる？
x と y に区別をもうけず対等に見る。
> 身長と体重のようにどちらがどちらを決めるという性質にない 2 次元のデータは相関としてとらえることになります。

> 相関係数の説明は一般的に次のようになります。
- 0.7 <= x < 1.0	強い相関
- 0.4 <= x < 0.7	中程度の相関
- 0.2 <= x < 0.4	弱い相関
- 0.0 <= x < 0.2	ほぼ相関なし

###### Q. 相関の落とし穴って？

- 疑似相関によって２変数に関係があるように見えるケースがある。これはそれら２変数が共通に相関をもつ変数がある場合に発生する。（例：算数能力と身長。背後には年齢というそれぞれに共通する相関係数が高い変数がある
  - [統計的消去で擬似相関を見抜こう！](http://d.hatena.ne.jp/hoxo_m/20130711/p1)
  - [偽相関と偏相関係数](https://www.slideshare.net/TerukiShinohara/ss-24471453)

- 多変量解析では、項目間の影響を排除した偏回帰係数を使うことで、より正確に項目ごとの影響度が量れる。
  - [統計: 偏相関係数で擬似(無)相関の有無を調べる](http://blog.amedama.jp/entry/2017/06/20/215816)
  - [なぜ項目ごとに単純な集計をするより、多変量解析（重回帰分析）をした方が正確な結果を返すのか](http://tjo.hatenablog.com/entry/2013/08/15/001338#fn1)

- [その他気をつけること。](http://koumurayama.com/koujapanese/correlation.htm)
 - 選抜効果（選抜を通して等質化した集団で相関をとると、相関係数は非常に低くなる。）
 - 相関係数の希薄化（信頼性の低い項目間で相関をとると、真の値の相関係数よりも低い値が生じてしまう）