「相関分析と回帰分析」

九州大学 大学院システム情報科学研究院
情報知能工学部門
データサイエンス実践特別講座
備瀬竜馬, Diego Thomas, 末廣大貴

本日の内容 相関分析
 回帰分析2

相関分析

3

データの広がり方(=分散)に潜む関係～相関𝑥𝑥2𝑥𝑥2

身長と体重は？
身長と数学の点数は？
身長とバレーボール攻撃失敗率は？

Case 1𝑥𝑥1

Case 2𝑥𝑥1𝑥𝑥2

Case 3𝑥𝑥1

データの広がり方(=分散)に潜む関係～相関●Case 1: 無相関●𝑥𝑥1 →大，𝑥𝑥2 →特段の傾向無し●要するに，𝑥𝑥1 と𝑥𝑥2 は無関係
●身長と数学の点数●Case 2: 正の相関●𝑥𝑥1 →大，𝑥𝑥2 →大●身長と体重●Case 3: 負の相関
●𝑥𝑥1 →大，𝑥𝑥2 →小●身長とバレーボール攻撃失敗率

二人三脚的

シーソー的

相関係数ρ～相関の定量化 (1/3)●簡単のために𝑥𝑥1 も𝑥𝑥2 も平均ゼロとする●=分布をずらしただけ●この時，相関を(簡単な言葉で)定義すると...

分子が大事𝜌𝜌 =𝑥𝑥1 × 𝑥𝑥2 の平均値

𝑥𝑥1 の分散 � 𝑥𝑥2 の分散

分母は正規化の役目(標準化)

𝑥𝑥2 の平均𝑥𝑥1 の平均共分散

相関𝑥𝑥1 − 𝑥𝑥1 × 𝑥𝑥2 − 𝑥𝑥2 の平均値

𝜌𝜌 =𝑥𝑥1 の分散 � 𝑥𝑥2 の分散

データの平均が原点になるように移動
𝑥𝑥

データの平均2𝑥𝑥2 の分散

𝑥𝑥2𝑥𝑥1 の分散 � 𝑥𝑥2 の分散

𝜌𝜌 =𝑥𝑥1 × 𝑥𝑥2 の平均値

𝑥𝑥1 の分散𝑥𝑥1𝑥𝑥1相関

分子部分●相関係数：高い

𝑥𝑥1 × 𝑥𝑥2（+）×（＋）＝ （＋）（－）×（ー）＝ （＋）（＋）×（ー）＝ （ー）（－）×（＋）＝ （ー）(+)が多い● （＋）のデータ数 ＞（ー）のデータ数⇒ 平均は高くなる●相関係数：低い● （＋）のデータ数 と（ー,ー）のデータ数 に差がない● ランダム（無相関）ほど、どの領域に入るかがばらける⇒ 平均は０に近づく

似たような数 𝑥𝑥2𝑥𝑥2𝑥𝑥1𝑥𝑥1

相関係数ρ～相関の定量化 (3/3)●相関係数ρがわかると，分布の形をある程度想像できる

𝑥𝑥2𝑥𝑥1

Wikipedia “相関係数”

注意●相関は傾きは関係ない●下記の3つの分布は、全て相関１10

相関係数の検定●相関係数自体は、計算できるようになった●求めた相関係数は尤もらしいか？

●母集団は無相関だけどたまたま標本時に相関が出てしまうサンプリングをしてしまったかも？ ⇒ 検定𝑥𝑥2 母集団？
𝑥𝑥1𝑥𝑥2 標本𝑥𝑥111

相関係数の検定●相関係数が有意かどうかの検定●帰無仮説：母集団の相関係数が０●相関係数の検定でもt分布を用いた検定ができます（難解なので説明は省略）

12

相関分析
●XとYに相関があるか，ないかは以下で検定可能●stats.pearsonr(X,Y)：相関検定●stats.spearmanr(X, Y)：順位相関検定
1:思わない，2:あまり思わない，3:どちらでもない，4:まあそう思う，5:そう思うなどのアンケートが該当します

13分布の可視化●“height_weight.csv”を読み込んで、身長と体重の相関を見てみる●まずは、散布図でデータの分布をみる

14

相間係数
 “height_weight.csv”を読み込んで、身長と体重の相関を見てみる
 まずは、散布図でデータの分布をみる
相関係数ｒ
p値p値が0.01より小さいので、99％有意水準で相関係数は有意である

15

アイリスデータ
 アイリスデータ

 3クラス
 Iris-setosa Iris-versicolor
 Iris-virginica
 指標
 sepal length sepal width petal length petal width

https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data16

相関：練習 sepal length と petal widthに相関はあるか？

相関係数ｒp値p値が0.01より小さく、99％有意水準で相関係数は有意である

17

相関マップ：練習●項目の組み合わせで相関係数を求め、「相関マップ」で可視化してみる18

相関マップ：練習 項目の組み合わせで相関係数を求め、「相関マップ」で可視化してみる
sepal sepal petal petal

length width length width

sepal
length
sepal
width
petal
length
petal
width

19

練習1:相関・相関マップ●sepal width と petal width に相関があるか調べよう●ヒント： stats.pearsonr(X,Y)●相関マップ中のどこに該当するか、値は一致するかを確認しよう相関：練習 sepal length と sepal widthの相関を見よう！

相関係数ｒp値

p値が約0.2で、95％有意水準内であり、帰無仮説は棄却できない複数のクラスが混在しているから？
21

アイリスデータ解析

Sepal wide・ Iris-setosa・ Iris-versicolor
・ Iris-virginica

Sepal length22アイリスデータ解析：クラスごとに分けて分析●クラス ごとにデータに分けて、sepal length と sepal widthの相関をみる

23

アイリスデータ解析：相関（１） クラス「Iris-setosa」のデータだけに注目して、

sepal length と sepal widthの相関を見る

相関係数ｒ
p値p値が0.01より小さく、99％有意水準で相関係数は有意である
24

アイリスデータ解析：相関（2） クラス「Iris-virsicolor」のデータだけに注目して、sepal length と sepal widthの相関を見る

相関係数ｒ
p値p値が0.01より小さく、99％有意水準で相関係数は有意である
25

アイリスデータ解析：相関（3） クラス「Iris-virginica」のデータだけに注目して、sepal length と sepal widthの相関を見る

相関係数ｒ
p値
p値が0.01より小さくで、99％有意水準で相関係数は有意である
26

練習２：相関●Class ごとにデータを分類して、petal length と petal widthの相関を見よう！

27

小売売上高のデータ
 “predicti.csv”：非農業の雇用、給料、給料支出額と4種類の小売業の11年間分の4半期販売データ

http://mo161.soci.ous.ac.jp/@d/DoDStat/predicti/predicti_dataJ.xml

28

小売売上高：分布可視化
 まずは、仮説を考えて、その項目の分布を見る

 国民所得と各小売業の販売額は相関がありそう
建設業

自動車

家具

雑貨

他より若干ばらつきが相関高
そう29

小売売上高：ヒートマップ
 まずは、相関行列のヒートマップを見て、どの項目同士で相関が高いか見てみよう！

30

小売売上高：最大相間 一番、高い相関が高いのは？
 変数が多いときは以下のような 所得
コードを書けば簡単に見つかる
建設

自動車
家具
雑貨

「所得」と「家具の売り上げ」の相関が高い
31

小売売上高：有意差
 一番、高い相関を持つ項目で、相関検定もおこなって、有意性を確かめてみよう！

「所得」「家具の売り上げ」

相関係数：0.941942943693
p値：1.60835257649e-21
p値が0.01より小さく、99％有意水準で相関係数は有意である

32

回帰分析

33

回帰分析とは？
●「入力に対する結果を推定する」手法

入力(原因)●例

予測器

結果

入力(原因)

結果

勉強時間

試験の点数

食事量糖尿病になる確率(身長，体重)バスケットボールの得点

画像

その画像がリンゴの写真である確率

回帰（ステップ1/3）:データ収集
結果

入力

回帰（ステップ1/3）:
データ収集の例
試験の点数

A君のデータ

B君のデータ
E君
C君

D君
勉強時間

回帰（ステップ2/3）:
モデルあてはめ
結果

これ大事

入力
モデル＝「条件 or 入力」と「結果」間に成り立つと予想される関係．
上記は「線形モデル」

回帰（ステップ3/3）:予測結果

入力
この入力に対する予測値がほしい(ex. 勉強3時間だと何点取れそう？)回帰（ステップ3/3）:予測結果

予測値(65点)入力
この入力に対する予測値がほしい(ex. 勉強3時間だと何点取れそう？)40

回帰分析とは●いくつかの（入力，結果 ）の事例に基づいて，●それらの関係をモデル化することで，●新たな入力に対して，その結果を予測する方法●結果の原因となっている要因を知ることもできます●専門的な用語としては●入力→説明変数●結果→目的変数，外的変数などと呼びますどういう「あてはめ結果」が望ましい？(1/3)
結果

入力

41

どういう「あてはめ結果」が望ましい？(2/3)
結果

これが小さいほうがよい
あてはめ誤差入力
� 第𝑖𝑖データのあてはめ誤差
𝑖𝑖→最小化42

どういう「あてはめ結果」が望ましい？(3/3)
二乗誤差で「あてはめ誤差」を定義
結果 𝑦𝑦𝑦𝑦𝑖𝑖 − (𝑎𝑎𝑥𝑥𝑖𝑖 + 𝑏𝑏) 2𝑥𝑥𝑖𝑖 , 𝑦𝑦𝑖𝑖

𝑦𝑦 = 𝑎𝑎𝑎𝑎 + 𝑏𝑏
𝑎𝑎と𝑏𝑏をいじって � 𝑦𝑦𝑖𝑖 − (𝑎𝑎𝑥𝑥𝑖𝑖 + 𝑏𝑏)𝑖𝑖

2

入力 𝑥𝑥を最小化
43これを「最小二乗法」と呼ぶ
二乗誤差を最小にしたいから
最小二乗法

𝑎𝑎と𝑏𝑏をいじって � 𝑦𝑦𝑖𝑖 − (𝑎𝑎𝑥𝑥𝑖𝑖 + 𝑏𝑏)
𝑖𝑖

2を最小化

どうやって？？
習ったかもしれませんが，難しいことは python のパッケージがやってくれます！
44

難しいことは一回忘れて・・・
回帰分析の目的 (1)●回帰分析の目的は大きく２つ●予測●目的：将来どのようになるかを予測したい！

●例：あるコンビニでの，過去365日分の天候データ（天気，気温，湿度）から，アイスの売上を回帰→ 明日の天気でのアイスの売上を予測●原因分析●目的：どのような要因で事象が起こっているか知りたい！
●例：アイスの売上に関わっているものは何か？

45

相関分析との違い●相関は傾きは関係ない●下記の3つの分布は、全て相関１●回帰直線上にデータがまとまっているか？

46

単回帰
●一つの説明変数Xから一つの変数Yを回帰●例：身長から体重を回帰← 「Ht」を説明変数にセット← 定数項を付けます（後述）※ ais.csv は今までの身長体重データのフルバージョン： http://www.statsci.org/data/oz/ais.html
OLS: Ordinary Least Squares47単回帰の結果
決定係数（後述）:
0~1 で1に近いほど良い

説明変数に効果があるか？のp値< 0.05で効果あり！

「あてはめ（予測）」式：
線形の関係があることがわかる！by 式
Wt(目的変数) = 1.1171 × Ht(説明変数) − 126.1890

48

Wt(目的変数)

可視化

線形の関係があることがわかる！by 絵Ht(説明変数)

49

決定係数

Wt(目的変数)

決定係数:𝒚𝒚𝒊𝒊 − 𝒚𝒚𝒊𝒊 ′�𝒚𝒚𝒊𝒊 − 𝒚𝒚𝑦𝑦�𝑦𝑦𝑖𝑖 ∶ 標本値𝑦𝑦𝑖𝑖 ′: 予測値𝑦𝑦� : 標本平均値「線形関数」での予測がどの程度うまくいっているかの指標線形の関係があることがわかる！by 絵
Ht(説明変数)50

未知データでの予測●得られた回帰式を用いて，身長が [185, 167, 215, 177] の人

たちの体重を予測したい

予測値
51

より複雑（線形でない）モデル：
オーバーフィッティングと汎化能力
高次多項式モデル(良)事前に与えられたデータに対する誤差小さい(悪)大量に事前データがないと回帰結果に汎化能力がない恐れ

線形モデル(悪)事前に与えられたデータに対する誤差大(良) 事前データ数が少なくてもひどいオーバーフィッティングは少ない
52

練習３：単回帰●ais.csvを読み込んで、回帰分析を用いて、体重から身長を回帰してみよう

53

重回帰による予測（ステップ1/3）:
データ収集
バスケット
ボールの得点B君のデータ

A君のデータE君

体重𝑥𝑥2
入力が二次元に身長𝑥𝑥1重回帰による予測（ステップ2/3）:
モデルあてはめバスケット
ボールの得点𝑦𝑦

𝑦𝑦 = 𝑎𝑎𝑥𝑥1 + 𝑏𝑏𝑥𝑥2 + 𝑐𝑐
B君のデータ

E君→ やはり最小二乗法になります

A君の
データ
体重𝑥𝑥2

身長𝑥𝑥1

各データから平面へ伸ばした
誤差の二乗を最小化

重回帰による予測（ステップ３/3）:
予測
バスケット
ボールの得点𝑦𝑦

𝑦𝑦 = 𝑎𝑎𝑥𝑥1 + 𝑏𝑏𝑥𝑥2 + 𝑐𝑐

→ 身長と体重だけわかるZ君のバスケットボールの点数を求めた式から予測

𝑦𝑦 = 170𝑎𝑎 + 65𝑏𝑏 + 𝑐𝑐

体重𝑥𝑥265Kg

170㎝

Z君のデータ
身長：170㎝、体重：65Kg

身長𝑥𝑥1

重回帰
 複数の説明変数Xから目的変数Yを回帰 例1：Ht, Wt からLBM(Lean Body Mass, 脂肪を除いた重量)57

重回帰の結果

LBM(目的変数) = 0.2587 × Ht + 0.7325 × Wt − 36.6586
58

可視化

目的変数の値（色分け）を2変数でうまく予測できていることがわかる！
59

重回帰●例2：ワインの品質データ•winequality-red.csv•アルコール度数やpH値等，11個の説明変数•3〜8 までの品質スコア←「quality」以外を説明変数に← 「quality」を目的変数に
← 回帰！

60

回帰結果
決定係数:0~1 で1に近いほど良い

各説明変数に効果があるか？のp値< 0.05で効果あり！

説明変数が大量にquality(目的変数) = 0.0250 × fixed acidity + … なっても大丈夫！

練習４：重回帰●ais.csvを読み込んで、回帰分析を用いて、身長とLBMから体重を予測してみよう●ヒント

X = ais[['Ht', 'LBM']]

62

演習

63

演習１：アイリスデータ
 アイリスデータ

 3クラス
 Iris-setosa Iris-versicolor
 Iris-virginica
 指標 sepal length sepal width petal length petal width

https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

64

演習１：３つのクラス

Sepal wide・ Iris-setosa・ Iris-versicolor
・ Iris-virginica

Sepal length65

演習１－１：相関マップ●３つクラスに分けて、クラスごとに相関マップを作れ

●ヒント

66

演習１－２：単回帰●３つクラスに分けて、クラスごとにsepal-length,petal-lengthの回帰分析を行い、データ分布及び回帰直線を可視化せよ。
●回帰分析結果のsummaryを読み取り、回帰直線の傾き及び決定係数を答えよ。
●3つのクラスの中で、決定係数が高い順に答え、分布と直線とのFit具合を比べよ。
●ヒント

演習２：小売売上高●“predicti.csv”：非農業の雇用、給料、給料支出額と4種類の小売業の11年間分の4半期販売データ

http://mo161.soci.ous.ac.jp/@d/DoDStat/predicti/predicti_dataJ.xml

68演習２ー１：散布図●「従業員数ー建築資材」、「従業員数ー自動車」、「従業員数ー家具」、「従業員数ー雑貨」それぞれで散布図を作れ●ヒント●import matplotlib.pyplot as plt●plt.scatter69

演習２－２：相関分析●「従業員数ー建築資材」、「従業員数ー自動車」、「従業員数ー家具」、「従業員数ー雑貨」それぞれで相関分析せよ●相関マップを作れ●最も相関の高い変数のペアを見つけよ70

演習２－３：回帰分析●「従業員数ー建築資材」、「従業員数ー自動車」、「従業員数ー家具」、「従業員数ー雑貨」それぞれで回帰分析してみよう！まずは、それぞれ可視化してみよう！

●ヒント：●model = sm.OLS(Y, X)●result = model.fit()

71

演習２－４：回帰分析●「従業員数ー建築資材、自動車、家具、雑貨」で重回帰分析してみよう！

●ヒント：●model = sm.OLS(Y, X)●result = model.fit()72

Advance
早く終わった人はやってみよう演習３：相関マップ●演習１の全ての項目の組み合わせで、相関の検定を行い、最も相関が高い項目の組み合わせを見つけるプログラムを書け！
ただし、対角成分（同じ項目の組み合わせ）は除く
相関係数マップR
sepal sepal petal petal
length width length width
sepal
length
sepal
width
petal
length
petal
width
74

演習４：相関マップ●演習１の全ての項目の組み合わせで、相関の検定を行い、そのp値のマップを作ってみよう！

相関係数マップR

P値マップP

sepal sepal petal petal
length width length width

sepal sepal petal petal
length width length widthsepal
lengthsepal
length

sepal
width

sepal
width

petal
lengthpetal
length

petal
width

petal
width？

75

演習５● boston.csv（変数は以下）を用いて，

1. CRIM: per capita crime rate by town
2. ZN: proportion of residential land zoned for lots over 25,000 sq.ft.
3. INDUS: proportion of non-retail business acres per town
4. CHAS: Charles River dummy variable (=1 if tract bounds river; 0otherwise)
5. NOX: nitric oxides concentration (parts per 10 million)
6. RM: average number of rooms per dwelling
7. AGE: proportion of owner-occupied units built prior to 1940
8. DIS: weighted distances to five Boston employment centres
9. RAD: index of accessibility to radial highways
10. TAX: full-value property-tax rate per $10,000
11. PT: pupil-teacher ratio by town
12. B: 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
13. LSTAT: % lower status of the population
14. MV: Median value of owner-occupied homes in $1000‘s （要は家賃）● 重回帰分析を行い，２乗誤差と，家賃に関係性の強い説明変数は何か挙げよ．
76