データ解析 - 東京工業大学watanabe- · 統計や機械学習...

45
データ解析 渡辺澄夫 第8回: 実世界=数学から最も遠い場所

Upload: others

Post on 19-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

データ解析

渡辺澄夫

第8回: 実世界=数学から最も遠い場所

Page 2: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

実世界の姿が見えてきた。

解析方法

主成分・因子・クラスタ分析

回帰・判別分析

時系列予測

実世界

Page 3: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

前半のまとめ

これまでに習った方法だけでは、まだ実世界を対象とするには

力不足ですが、しかし、どんなことができるかを確かめてみます。

Page 4: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

4

データ解析を体験する

これまでに初等的なデータ解析の方法である回帰・判別・主成分・因子・ク

ラスタ・時系列分析について習ってきた。

今回は具体的なデータに適用することで、データ解析の実際を体験して

みよう。

データ解析にはコンピュータプログラムが必要である。

統計や機械学習でよく用いられるのは python, R, … など

データサイエンティストや機械学習エンジニアを目指す人は、

「統計+機械学習+ソフトウエア」に習熟しておくとよいと思います。

Page 5: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

5

実データについて

1 データ解析の目的が明確なときもあるが、不明なときもある。

2 目的に合わせてデータ採取をするべきであるが、できあいのデータのときも。

3 データも、解析結果も、解析をしていること自体も、要秘密のことがある。

4 解析により一般個人の安全・健康について重大な事実が見つかることがある。

5 実データは、典型的には表(行列)とその複合の形式であることが多い。

6 値がないところ(欠損値)や正しい計測値が記入されていないところもある。

7 数値の大きさはばらばらである。(例:絶対値が0から1023まで)。データ数は

数個しかないときもある一方で、数十億以上あるときもある。

8 適切な前処理が必要になる。これはデータ解析において極めて重要であるが

一貫した方針は存在しない。データサイエンティストの才能が試されるところ。

9 データ解析を理解するためには、その分野の知識が不可欠であるが、あまりに

知識や人間力を頼ると 「データからの新事実の発見」が疎外される。

10 データ解析がうまくいったかどうかを完全に調べる手段はないが、指標になる

ものはあり、データ解析者はそれを知っている必要がある。

Page 6: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

1 データ解析の前にすること

Page 7: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

データを自分の目で見る

まずデータそのものを自分の目でよく見てみましょう。データが多く、次

元が高いとすべてを眺望することは難しいかもしれませんが、ヒストグ

ラムや散布図を使って、「どんな感じなのか」の実感をできるだけつか

むことが大切です。低次元空間への射影を通して高次元空間の様子を

思い浮かべてみましょう。

「生データを深層学習に入れて終了」は推奨できません。

Page 8: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

実データの例

人口総数

15歳未満

1564歳

65歳以上

出生

死亡

転入

転出

⑨高齢単身世帯

10結婚

11離婚

○○市

○○区

○○町

○○村

1892市区町村×11次元 の整数

日本全国市区町村のデータを使います。政府統計の総合窓口http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do

Page 9: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

9

日本全国の平均と標準偏差

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

⑨高齢単身

結婚

離婚

Page 10: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

10

log(1+X) の平均と標準偏差

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

⑨高齢単身

結婚

離婚

Page 11: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

11

(X/人口) の平均と標準偏差

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

⑨高齢単身

結婚

離婚

Page 12: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

12

各要素ごとにヒストグラムを描いてみた・・・。

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

⑨高齢単身

結婚

離婚

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

9高齢

10結婚

11離婚

Page 13: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

13

( X軸:人口、Y軸:データ) の散布図

15未満

人口 人口

人口 人口 人口

人口

15-64歳

65以上

出生 死亡 転入

・ 市区町村○ 東京23区

Page 14: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

14

( X軸:人口、Y軸:データ) の散布図

転出

人口

人口 人口

人口

高齢単身

結婚 離婚

どの変数もほぼ人口に比例するが転入・転出・高齢単身・結婚は市区町村によるばらつきが大きい。

東京23区は転入・結婚が多いが出生は少ない。高齢単身は多い。

Page 15: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

15

回帰分析の例

Page 16: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

16

回帰分析の復習

(x,y)∈RM×RNの確率密度関数 p(x,y) が与えられたとき関数 f の汎関数 E(f) を

E(f) = ∬ || y – f(x) ||2 p(x,y) dxdy

によって定義し、これを最小にする関数 f を回帰関数という。

○ 回帰関数は、x から y への推論で二乗誤差を最小にするものである。

原因と結果を表すとは限らない。

○ 「X→Y」の回帰関数が得られても 「Xを制御してYを変えられる」とは限らない。

Page 17: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

17

線形回帰分析の復習

統計モデル Y = a・X + 雑音

X : M次元実ユークリッド空間に値をとる確率変数Y : 1次元実ユークリッド空間に値をとる確率変数

二乗誤差を最小にするベクトル a を、二乗誤差最小推定量という。

(注意) ある回帰係数は別の回帰係数と独立ではありません。

二乗誤差最小推定量のある次元を除去したもの

≠ X のある次元を除去して得た二乗誤差最小推定量

Page 18: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

18

結婚数と離婚数の散布図を描いて見た。

結婚数と離婚数はおおよそ比例する。これはどちらも人口に比例するから。

東京23区よりも北海道のほうが離婚数比が大きいように見える。これは転入転出により年齢層別の人口が違うからであると思われる。

(年齢層があがると離婚数比が増える可能性がある)。

Page 19: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

19

結婚・離婚への回帰係数を求めてみた。

①総人口

②15歳

③64歳

④65歳上

⑤出生

⑥死亡

⑦転入

⑧転出

高齢単身

結婚への回帰係数は出生が圧倒的に大きい。

離婚への回帰係数は出生・死亡・高齢単身が大きい。

推測:「出生数→結婚数」は「原因→結果」ではないと思われるが、そのような影響も含まれているかも知れない。

レポート課題とは同じにならないように全データを使った。

Page 20: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

20

判別分析の例

Page 21: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

判別分析の復習

データ {(Xi,Yi);i=1,2,...,n } から p(x,y) = [aq0(x)]1-y[bq1(x)]y を

推定して q(1|x) = bq1(x) / (aq0(x)+bq1(x)) により判別する。

a q0(x) b q1(x)

判別を行う式

q(1|x) >1/2⇔ a q0(x) < b q1(x)

Page 22: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

判別分析の復習

データ {(Xi,Yi);i=1,2,...,n } はどちらも潜在変数でないので

p(x,y) = [aq0(x)]1-y[bq1(x)]y は直接に推定できる。

⇒ a q0(x) = b q1(x) :識別境界

(a,b) は Yi=0,1の個数の比で推定。q0(x) と q1(x) は正規分布で推定。

q0(x) ←平均 c0, 分散S0q1(x) ←平均 c1, 分散S1

Page 23: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

判別分析の例

レポート課題とは同じにならないように次のデータを使った。

X1=15歳未満の人口/人口総数

X2=15歳以上64歳以下の人口/人口総数

Y=高齢単身世帯数/人口総数が平均より大きいとき1

それ以外のときは0とした。

(注意) X∈R2 のとき判別の境界は2次曲線すなわち

双曲線・楕円・放物線のいずれかになる。(特別な場合

として直線になることもある。)

高次元の場合も2次式で表される曲面になる。

Page 24: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

判別分析の例

これはレポート

課題とは異なり

ます。

高齢単身世帯

が多いのは

15歳未満が

少なく

15-64歳が

多いところ

である。

Page 25: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

25

主成分分析

分析前の前処理については、ここで述べる方法を推奨しているわけではありません。

Page 26: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

主成分分析の復習

問題. N次元実ユークリッド空間に値をとる確率変数 X が確率密度

関数 q(x) に従うとし、k を 1 以上N未満の自然数とする。N×N 行列 A で

条件「 rank A ≦ k 」を満たすものに対して

E(A) = ∫ || x – Ax ||2 q(x) dx

を最小にする A を求めることを主成分分析という。

Page 27: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

主成分分析の復習

0. データ {Xi ; i=1,2,…,n } に前処理を行う(平均を0にする)。

1. S* = (1/n) Σ i Xi (Xi)T を計算して S* ∈RN2を求める。

2. S* の固有値 ( s1 > s2 > ・・・ >sN >0 ) と対応する固有

ベクトルからなる正規直交基底{e1,e2,…,eN} を見つける。

3. 固有値から因子負荷量 (s1/Σsi, s2/Σsi, …) を計算。

4. 固有ベクトルを見て各主成分の意味を考える。

5. 具体的な xi について主成分第1(e1,xi), 第2(e2,xi), …を

計算し散布図を描いて、考察を加える。

Page 28: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

28

前処理の例: データ x を log(1+x) に変換したあと平均を引き標準偏差で割ったもののヒストグラム

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

9高齢

10結婚

11離婚

適切な前処理を

自分で考えて

みよう。

Page 29: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

主成分ベクトルを得た。

レポート課題と同じ

にならないように、

①から⑥までの

データだけに対して

主成分分析をした。

主成分1=

主成分2=

主成分3=

①総人口

②15歳

③64歳

④65歳上

⑤出生

⑥死亡

⑦転入

⑧転出

⑨昼間

高齢単身

結婚

離婚

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

Page 30: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

30

因子負荷量

主成分分析をして log(因子負荷量)を求めた。3次の因子まで取ることにした。

このデータは第1主成分の負荷量が非常に大きい(人口でほぼすべて決まる)。lo

g(因子負荷量)

主成分の順番

Page 31: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

31

主成分ベクトル(1,2)で張られる空間へのデータの射影を描いた。

第1

主成分

第2主成分

Page 32: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

32

主成分ベクトル(1,3)で張られる空間へのデータの射影を描いた。

第1

主成分

第3主成分

Page 33: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

33

主成分分析の考察

日本全国市区町村について、主成分分析の結果わかったこと推測されることを述べよ。

レポート課題とは同じにならないように、データのうちの一部だけを用いて主成分分析を行った。

日本の市区町村を特徴づけるものとして3つの代表的な量は何か。

Page 34: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

34

因子分析

分析前の前処理については、ここで述べる方法を推奨しているわけではありません。

Page 35: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

35

因子分析の復習

因子 yi zi

xi1 xi2 xi3 xij xiN

a1 b1

c1

+ Rij

ai bi

ci

因子分析に用いられるモデル

データ Xi =(Xi1,Xi2,…,XiN) ∈ RN

Xij = ajYi + bjZi + cj + Rij

(1) パラメータ (aj,bj,cj) (j=1,2…,N) (2) 潜在変数 (Yi,Zi) (i=1,2,…,n)は平均0分散1の正規分布に従う。(3) Rijは平均0分散(1/s) の正規分布に従う。

因子はデータ番号 i によって変動する。パラメータ(因子負荷量)は、データ番号 i に依存しない。

Page 36: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

36

主成分分析のときと同じ前処理を行ったデータに対して因子分析を行った。

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

因子1 : +15歳 +64歳まで ー65歳以後 +出生ー死亡

レポート課題と同じ

にならないように、

①から⑥までの

データだけに対して

因子分析をした。

Page 37: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

因子1 : +15歳 +64歳まで ー65歳以後 +出生ー死亡37

全国の市区町村の因子をプロットした。

Page 38: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

38

因子分析の考察

日本全国市区町村について、因子分析分析の結果わかったこと、推測されることを述べよ。

レポート課題と同じにならないようにデータの一部だけを用いて因子分析を行った。

得られた二つの因子の意味を考察せよ。

主成分分析の結果と比較せよ。

Page 39: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

39

クラスタ分析

分析前の前処理については、ここで述べる方法を推奨しているわけではありません。

Page 40: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

40

混合正規分布の復習

平均 bk ,分散σk2 の正規分布の重み {ak} の和

データを発生した真の分布をいくつかの正規分布の混合を用いて推測する。レポート課題と同じにならないように最初の6次元だけを用いてクラスタリングする。

Page 41: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

41

混合正規分布の復習

データ Xn が与えられたときの { w, Yn } の事後分布は

p(w,Yn|Xn) ∝ φ(w) Πi=1n p(Xi,Yi|w)

∝ Πk=1K [( ak )αk-1 ( sk )N/2 exp( - sk ||bk ||2/2 - sk ) ]

× Πi=1n Πk=1

K [ (ak) (sk)N/2 exp( -sk||Xi-bk||2/2) ]Yik

潜在変数 { Yi } を導入することで事後分布は下記になる。

複雑そうに見えるが、{sk}, {ak,bk}, {Yi} のそれぞれに

着目することでギブスサンプラを作ることができる。

Page 42: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

前処理の例: 第1成分は log(1+X)で変換し、第2成分以降は第1成分で割り算し、その結果を平均0分散1に標準化

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

⑦転入

⑧転出

9高齢

10結婚

11離婚

全成分を log(1+X)で

変換したものは、人

口でほぼ全てが決

まってしまうため。

Page 43: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

43

6次元のデータから得られた混合正規分布のクラスタ8個の中心ベクトルと混合比および各クラスタの代表例

①総人口

②15歳

③64歳

④65歳

⑤出生

⑥死亡

東京23区 地方都市 沖縄県

大都市

地方町村

大都市 沖縄県地方町村

Page 44: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

44

クラスタ分析の考察

日本全国市区町村について、クラスタ分析の結果わかったこと、推測されることを述べよ。

レポート課題と同じにならないように一部のデータだけでクラスタ分析を行った。

Page 45: データ解析 - 東京工業大学watanabe- · 統計や機械学習 でよく用いられるのは python, R, … など データサイエンティストや機械学習エンジニアを目指す人は

45

注意

講義の前半では

回帰分析、判別分析、主成分分析、因子分析、クラスタ分析に

ついて習いました。

それぞれの方法について講義で習ったものがひとつだけの固定された手段であるということではなく、より良い方法を求めて現在も多くの研究がなされています。

また、解析の結果として得られたものの「正しさ」を知る方法は講義の後半で説明していくことになります。