Reskilling ❘ Data Science

データサイエンス入門 | 統計基礎 回帰分析編

#リスキリング #レジリエンス #ICT教育 #ITスキル #データサイエンス

統計基礎
回帰分析・決定係数編

データを集めて傾向を分析したら、次に行うこととして「予測」があります。売上や需要を予測することで、有効な行動を導き出し、根拠に基づいた質の高い意思決定を行うことができます。

  • 2015年

    創業

  • 120名

    従業員数

  • 2.3M

    月間UU

  • 1,800戸

    管理戸数

回帰、回帰分析とは

まず「回帰」とは何かというと

ひとまわりしてもとの所や状態に戻ること、またはそれを繰り返すこと、です。

統計的な「回帰」としては

変数間に、一方が他方の変動を予測したり説明したりする関係があること

と言えます。

そして回帰分析とは、データに基づいて、ある結果(目的変数)と、それに影響を与える要因(説明変数)の関係を数式で明らかにする統計手法です。

・将来の数値を予測したい

・原因と結果の関係を明らかにしたい

といった場合に用いられる分析手法です。

相関と回帰分析

2変数(データ)間の関係なら「相関」があるではないか、と思った方もいるかもしれません。

「相関分析」は「相関関係」を探るのに対し、

「回帰分析」は「因果関係」を探るという点で違いがあります。

さらに特徴を深堀りすると、

「相関分析」は「2変数間の双方向の関係を見る」のに対し、

「回帰分析」は「一方向の因果関係や影響度を推定する」という違いを持っています。

念のため「相関」と「因果」についても復習しておきましょう。

「相関がある」とは、2つのデータが同時に変化する傾向があること

「因果がある」とは、とは2つのデータにおいて、1つのデータの変化が原因で、もう1つのデータも変化する、という関係性のこと

アイスクリームの売上と水難事故の件数は「相関関係」であり、割引キャンペーンとお店の売上は「因果関係」です。

回帰分析はこの「因果関係」を探りにいく手法になります。

回帰直線、回帰係数

回帰分析は、2つのデータ、仮に変数Xと変数Yとして、この2つのデータに因果関係があると想定し、変数Xから変数Yを予測する、という手法になります。

このとき、予測するために使うデータ、変数Xを説明変数

予測される側のデータ、変数Yを被説明変数(または目的変数)といいます。

例えば、バネに重りをつけてどのくらい伸びるか、という簡単な実験を行うとき、を考えてみましょう。

バネの長さ

おもりの重さ

10

10

30

20

60

30

90

40

110

50

130

60

170

70

190

80

250

90

290

100

350

110

380

120

390

130

このようなデータがあるとき、直線の傾向を読み取ることで値の予測ができそうですよね。

回帰分析ではこの直線を利用して予測をします。そしてこの直線のことを「回帰直線」と言います。

直線の式は

Y=y切片+傾きX

で表すことができますが、回帰分析では


\(\hat{y}=\hat{\alpha}+\hat{\beta}x\)

\(\hat{y}=\hat{\alpha}(y\text{切片})+\hat{\beta}(\text{傾き})x\)


と、α(アルファ)、β(ベータ)を用いて表し、この2つを「回帰係数」と呼びます。

回帰分析では「予測」をすることになるのですが、これは予測値ですよ、ということを表す記号があります。

それが「^(ハット)」で以下のように使用します。


\(\text{推定値}=\hat{\alpha}\)

\(\text{推定値}=\hat{\beta}\)

\(\text{予測値}=\hat{y}\)


直線の式であれば「回帰係数」のαとβが決まれば予測値も計算できる、という関係になります。

【おぼえる⑪】正規方程式

\(\huge{\hat{\beta}=\dfrac{s_{xy}}{s_x^2 \bar{x}}}\)

\(\huge{\hat{\alpha}=\bar{y}-\hat{\beta} \bar{x}}\)

上記は「正規方程式」を表す式です。

「予測値を求めるとき、正規方程式を使うんだ」と思い出せるようにしましょう。

正規方程式は2変数の標準偏差と共分散などからなる回帰直線の推定値を計算する式で、相関係数と関係性を持っています。

【解説】正規方程式

まず、回帰直線の式ですが、

\(\huge{\hat{y}=\hat{\alpha}+\hat{\beta}x}\)

このように与えられていました。

^(ハット)がついているαとβ(回帰係数)を計算することで、予測値Yが計算できます。

まずはβ(傾き)から計算します。なぜかというと、βを求めることでαを計算できるからです。

\(\huge{\hat{\beta}=\dfrac{s_{xy}}{s_x^2 \bar{x}}}\)

\(\huge{\hat{\beta}(\text{傾き})=\dfrac{s_{xy}(x\text{と}y\text{の共分散})}{s_x^2 \bar{x}(x\text{の分散})}}\)

傾きβは、2つのデータの共分散をXの分散で割った値です。

それでは、先ほどのバネとおもりのデータを使って、実際に計算してみましょう。

まずは共分散の式と計算方法をおさらいしながら計算してみます。


●共分散の計算方法

①2つのデータそれぞれの「平均値」を計算

②2つのデータそれぞれの「偏差」を計算

③それぞれの偏差を掛ける

④合計して、データの個数で割る(共分散)


おもりの重さをXとした場合、共分散の計算は、

バネの長さ

おもりの重さ

偏差(バネ)

偏差(重り)

偏差×偏差

10

10

-178.46

-60

10708

30

20

-158.46

-50

7923

60

30

-128.46

-40

5138

90

40

-98.46

-30

2954

110

50

-78.46

-20

1569

130

60

-58.46

-10

585

170

70

-18.46

0

0

190

80

1.54

10

15

250

90

61.54

20

1231

290

100

101.54

30

3046

350

110

161.54

40

6462

380

120

191.54

50

9577

390

130

201.54

60

12092

合計

2450

910

0.00

0

61300

平均値

188

70

4715

このようになり、共分散「4715」が取り出せました。

続いて分散も計算しましょう。


●分散の計算方法
①「観測値」と「平均値」の差を計算(偏差)

②偏差を2乗
②上記を合計して平均を計算(分散)


おもりの重さをXとしたとき、分散の計算は、

おもりの重さ

偏差(重り)

平方偏差(重り)

10

-60

3600

20

-50

2500

30

-40

1600

40

-30

900

50

-20

400

60

-10

100

70

0

0

80

10

100

90

20

400

100

30

900

110

40

1600

120

50

2500

130

60

3600

合計

910

0

18200

平均値

70

1400

このようになりました。Xの分散「1400」となります。

では傾きβを計算してみましょう。

β = 4715 / 1400 = 3.37

βが取り出せましたので、αも計算します。計算式は以下です。

y切片αは、Y平均値からβ傾×X平均値を引いた値です。

共分散を計算した際に、平均値も合わせて計算しましたので、当てはめて計算してみましょう。

α = 188 - (3.37 ×70) = -47.9

α切片として、「-47.9」が取り出せました。

回帰係数αとβがわかったので、これらをもとに「回帰直線」の式を作ります。

バネと重りの回帰直線:y=ー47.7 + 3.37x

式ができましたので、あとはXを代入して計算することで、yを予測することができます。

例えば、表ではおもりの重さが「130」までしか載っていませんが、

次の「140」の値を予測したい場合は、

y=ー47.7 + (3.37 × 140) = 424

と「424」でおよそ散布図の傾向から、外れた値になってはいないようですね。

このように「回帰直線」を求めて、一つのデータXから、もう一つのデータYを予測するのが「回帰分析」です。

回帰分析は、将来の売上や需要を、過去データの広告費や営業費用から予測できる便利な手法です。

今まで蓄積したデータを、将来の予測の材料として有効活用していきましょう。

回帰分析の注意点

便利な回帰分析ですが、利用する際に以下のような注意が必要です。

・2変数間の直線的な場合は2次曲線の方が当てはまりが良い場合がある

・外れ値の影響を受けるため、外れ値がある場合は式の解釈に注意が必要

・複数のグループが混在する場合、グループごとに回帰直線を求めることが望ましい

回帰分析を使った「予測」に関しても以下のような注意が必要です。

・「被説明変数(目的変数)」から「説明変数」を予測してはいけない

・回帰直線を求めるために与えられているデータから大きく離れたXに対しては利用してはいけない。

➡直線に当てはまらない可能性があるので単純に予測に用いてはいけない。
 離れた値を回帰分析のXに代入し、予測値を求めることを「外挿」といいます。
 ※「外挿」は避けるべきとされている

【おぼえる⑫】残差

\(\huge{ \text{残差}=y(\text{観測値})-\hat{y}(\text{予測値}) }\)

上記は「残差(ざんさ)」を表す式です。

「残差を求めるとき、観測値から予測値を引くんだ」と思い出せるようにしましょう。

予測値と実際の観測値の差を求めたものです。残差が0の場合、予測値が観測値と一致したことを示します。

【解説】残差

まず改めて各用語を確認しておきましょう。

観測値➡実際に得られたデータの値

予測値➡回帰分析により得られた、予測される値

説明変数➡回帰分析で、予測値を予測するために用いる値

被説明変数(目的変数)➡回帰分析で、値Xから予測される値

回帰直線➡2変数間の関係性を表した直線、Xを代入することでyを計算できる

そして残差の計算は、

観測値ー予測値=残差

となります。予測値と実際の値の差を見ているわけですね。

いわば予測がどのくらい近かったか?を見ているとも言えます。

予測値が求められていれば、計算自体は簡単ですので軽く覚えておきましょう。

【おぼえる⑬】残差平方和

上記は「残差平方和(ざんさへいほうわ)」を表す式です。

全ての観測値の残差を合計した値(総和)です。

【解説】残差平方和

ここで残差平方和について触れるのは、この後の「決定係数」を説明するためになります。

平方和ということで2乗になりますので、0より大きい値をとります。

また残差の絶対値が大きいほど、残差平方和も大きくなります。

観測値と予測利のずれを表しているとも言えます。

【おぼえる⑭】決定係数

上記は「決定係数(けっていけいすう)」を表す式です。

「回帰分析でR2乗が出たら、それは決定係数なんだ」と思い出せるようにしましょう。

決定係数は回帰直線の説明力を測る指標です。

決定係数は0~1の値になります。

決定係数=1➡全ての観測値が回帰直線上にあり、完全に当てはまる

決定係数=0➡回帰直線は全く当てはまらない

またそのときのデータの状態として、

データが回帰直線の近くに密集している➡決定係数が1に近い値になる(当てはまりがよい)

データが回帰直線から大きく離れている➡決定係数が0に近い値になる(当てはまりが悪い)

という関係性になります。

【解説】決定係数

2変数xとyから、回帰直線を使い、xからyを予測する、というのが回帰直線でした。

そしてこの直線は与えられたデータから計算して作るものでした。

データの内容によっては、当然この直線の式も大きく異なることになります。

このとき「この回帰直線は果たしてどのくらい当てはまるのか」という疑問が出てきます。

せっかく直線を作っても、まったく当てはまりません、という予測だと悲しくなってしまいます。

そこで、作成した回帰直線がどのくらい「当てはまりが良いのか」というのを、値として求めることにしました。

これが「決定係数」です。決定係数は回帰直線の「説明力(当てはまりの良さ)」を表しています。

今まで出てきた「係数」を思い出してみると、

単位が異なるもの同士も比較できるようにする「変動係数」

相関の強さを表す「相関係数」

そして、回帰直線の説明力を表す「決定係数」

これら「係数」は大きくなりすぎた値や、単位や種類が異なる2つのデータに対して、

より標準化された値に変換し、判断がしやすいようにしよう、というものです。

では、決定係数の式について考えてみましょう。

平方和を平方和で割っている状態なのですが、

以下の式も見るとわかりやすくなると思います。

総平方和というのは変数yの散らばり具合を表した、文字通り全ての和です。

回帰による平方和というのは、回帰直線によって説明ができた部分の和です。

残差平方和は、観測値ー予測値、から求められる値でした。つまり予測がずれていた値ですね。

残差平方和は、回帰直線で説明できなかった部分の和、と考えることができます。

ですので、この式を言い換えると、

全ての平方和=回帰直線で説明できた部分+できなかった部分

ということになります。こう見るとなんとなく当然な感じがすると思います。

ここから「どのくらい説明できたのか?」を数値化できれば「回帰直線がどのくらい当てはまるのか?」がわかりそうです。

割り算をすれば比率がわかりますので、

回帰直線で説明できた部分÷全ての平方和=どのくらい説明できたのか(決定係数)

この割合が「決定係数」ですね。そして書き直すと、

このように書き、決定係数はR2乗で表します。なぜかというと、r=相関係数のちょうど2乗になるためです。

そして、仮にですが回帰直線で完全に説明ができた、つまり予測が完全に一致する場合、

説明できなかった部分がない、ということになりますので、残差平方和は0になります。

このとき、

総平方和=回帰による平方和+0(残差平方和)

となり、

総平方和=回帰による平方和

のように、総平方和と回帰による平方和が一致することになりますので、公式に当てはめると、

決定係数=1になります。

なので、決定係数が1の場合は「完全に当てはまる」と考えるわけですね。

逆に「全く当てはまらない」場合は、回帰による平方和SRが0になり、決定係数も0になります。

このように、決定係数を使うと0~1の範囲で「回帰直線の当てはまりのよさ」を判断できますので、活用してみてください。

<発展>単回帰分析と重回帰分析

今回説明した回帰分析は「単回帰分析(たんかいきぶんせき)」といいます。

単回帰分析とは、説明変数が1つだけの回帰分析です。

そして「重回帰分析(じゅうかいきぶんせき)」とは、説明変数が2つ以上ある回帰分析のことです。

<発展>重相関係数

回帰分析の中で、回帰直線の場合のみ、決定係数(\(\Large{ R^2 }\))と相関係数(r)には以下の関係が成り立ちます。

\(\huge{ R^2 = r^2 }\)

決定係数=相関係数の2乗

ですが、2次曲線などを考えた回帰分析では、上記のような関係はないので注意してください。

そして、決定係数R2乗の正の平方根は、観測値yと予測値yの間の相関を表しており、これを「重相関係数(じゅうそうかんけいすう)と言います。

次のステップはこちら

前のステップはこちら

・本講座の制作
CIT経営開発事務所

・監修
CIT経営開発事務所 代表
井上 隆寛(いのうえ・たかひろ)

IT・事業コンサルタント
IT・開発エンジニア
行政書士R6合格者未登録

大手システム開発会社にてSE兼Webデザイナーとして従事。2021年にコンサルタントとして独立し、企業に対するITコンサルティング・ソリューション導入支援事業を開始。2023年にはイベント企画・運営事業を新たに展開、2024年には行政書士試験に合格。現在はIT・AIコンサルティング、システム開発、エンターテイメントの3事業を柱に、企業の技術顧問や講師としてICT教育やプログラミング授業も手がける。

公開中のリスキリング体験授業・学習教材

リスキリングに役立つ学習教材や体験授業を公開しています。ご自身の学習にお役立てください。

  • 2015年

    創業

  • 120名

    従業員数

  • 2.3M

    月間UU

  • 1,800戸

    管理戸数