0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

回帰係数は相関関係によって決定される(RとPythonのコードつき)

Last updated at Posted at 2021-11-10

# はじめに
 今回は単回帰・重回帰分析における回帰係数についてのお話です。最適解についての記事ではないので最急降下法とか最小二乗誤差についてのお話はしません。来週その辺りについて記事を書けたらと考えていますが、今回はまず回帰係数について扱おうぜって記事になります。文章で読むとごちゃごちゃしちゃう部分もあるので数式を用いながら見てきます。もし数式苦手って人はスルーで大丈夫です、というより見ないことをお勧めします。わかりにくいものをわからないもので説明されてわかるはずがないですから。まあ、参考程度に。
 では、始めていきましょう!!

# 回帰係数とは
 そもそも回帰係数とはなんでしょう。簡単に言えば回帰問題における説明変数それぞれにおける係数のことですね。これが一個の時が単回帰、複数個の時が重回帰になるんでしたね。ここは大丈夫でしょうかね。まあ、一応数式で見て見ましょうか。

\mathbb{R}:ベクトルであることを明示しています\\
t_i:目標値(従属変数) ただし、t_i\in 	\mathbb{R}^1 \\
x_i:特長量(独立変数) ただし、x_i \in \mathbb{R}^D (D=1の時単回帰)\\
w_i:回帰係数(ただし、w_0はバイアス)\\
単回帰分析:t = w_0 + w_1x_1\\
重回帰分析:t = w_0 + w_1x_1 + w_2x_2+...+w_nx_n = w_0 + \Sigma_{d=1}^D w_dx_d\\

 ここでは、行列表記については避けます。今回の本質はそこでないのと、回帰係数を理解する上では少し複雑になってしまうので。
 はい、まあ数列で表記するとこのようになります。今回のお話は回帰係数なのでwの部分だけ着目してもらえると。ただし、w_0はバイアスと呼ばれ導出方法が回帰係数と異なります。バイアスについて少しだけ触れておくと独立変数が全て0の時にとりうる最適の値をバイアスとしてw_0にします。例えば、年齢(独立変数)から身長(従属変数)を求める単回帰の場合、0歳でも身長はある程度ありますよね。その身長の部分をw_0として保存します。そして、これをバイアスと呼びます。さらに年齢の部分につく係数が回帰係数になります。
 となると、回帰係数とバイアスを求めたくなりますよね。ってことで求めてみましょう。ただし、今回は回帰係数のみ取り扱います。

# 回帰係数の求め方
 まずは回帰係数についてです。本当は残差を定義して、それを最小化したいから、、という話があるのですが今回は割愛します。今回は2つの特長量を持つとします。

S_{x_1}^2:特長量x_1の分散\\
S_{x_1x_2}:特長量x_1,x_2の共分散\\
S_{x_2}^2:特長量x_2の分散\\
w_1:特長量x_1の回帰係数\\
w_2:特長量x_2の回帰係数\\
S_{x_1t}:特長量x_1と目標値tの共分散\\
S_{x_2t}:特長量x_2と目標値tの共分散\\
\begin{pmatrix}
S_{x_1}^2 & S_{x_1x_2} \\
S_{x_1x_2} & S_{x_2}^2 \\
\end{pmatrix}
\begin{pmatrix}
w_1 \\
w_2\\
\end{pmatrix}
=
\begin{pmatrix}
S_{x_1t} \\
S_{x_2t}\\
\end{pmatrix}

 回帰係数は上記の行列を解くことによって求められます。先ほども言いましたが導出をしたいわけではありません。重要なのは回帰係数を解く際に分散・共分散行列を利用していることにあります。次はこの点に着目して回帰係数についてもう少し話を進めてみようと思います。

# 回帰係数が分散・共分散から導かれるとは
 先ほども述べましたが、今回は導出を省略しているためなぜ回帰係数が分散・共分散から導かれるのかは一旦置いておいて分散・共分散から回帰係数が導出されることに着目してこれが持つ特性についてみていきましょう。

1.相関関係によって回帰係数が決定される
 回帰係数の本質は相関関係であるということです。つまり、目標値と特長量を標準化した際はそれらを入れ替えても回帰係数は変わりません。参考部分でRとPythonを用いて計算しています。今回は簡単のため単回帰についてみています。(コードについての説明は省きます)
2.相関係数に関する注意事項は回帰係数においても同じ
 a)いくら変数を増やそうとも直線的な関係のみ(非線形回帰という手段は存在しますが、今回は省略します)  b)グループによる分割によって結果が変わる可能性

 c)信頼性の低い項目間で相関係数をとると、実際(真の値の間の)相関係数よりも低い値が生じてしまう可能性(希薄性と言います)

これらの相関係数における問題点は回帰係数にも同様に問題になります。

3.相関係数は因果関係を表すわけではない
 これがめちゃくちゃ重要ですね。1.で見たように回帰係数はあくまで「相関関係」を見ているだけです。つまり、「独立変数⇒従属変数」という因果関係が存在すると断言することはできません。もし因果関係があるとするならば単回帰において標準化したとしても独立変数と従属変数を入れ替えたら回帰係数は変わるはず。

 これら3つが回帰係数が分散・共分散行列から計算されることで導かれるものになります。特に3番目の因果関係を表すわけではないことはよく言われてはいますがなんとなくでしか理解をしていなかった部分ではないでしょうか。

# さいごに
 今回は回帰係数は相関関係にすぎないことを説明していきました。案外知らなかったのではないでしょうか。データ分析をする際にもこういった知識を持っていると注意しなければならない点にも気づけるように思います。よく回帰係数は因果関係を表すわけではないと言われますが、今回の記事で理解してもらえれば幸いです。
 今回省略した回帰係数の導出と最小二乗誤差や最急降下法に関しては次回・次々回で深く触れていこうと思います。気になる方はそちらを参照いただければと思います。もしご覧になられた時点で記事作ってなかったらごめんなさい、、

 最後まで見てくだり、ありがとうございました!!
 みなさんの理解の一助になれば幸いです

## 参考(Rコード)
スクリーンショット 2021-11-10 22.07.02.png

## 参考(Pythonコード)
スクリーンショット 2021-11-10 22.15.06.png

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?