講義の概要

多変量解析 - 第1講

(Press ? for help, n and p for next and previous slide)

村田 昇

この講義について

講義の概要

  • 講義題目 : 多変量解析
  • 担当 : 村田 昇
  • 授業の目標
    • 統計解析手法である 多変量解析 の基本的な方法に習熟する
      • 大規模データから効果的に情報を抽出する
      • データの背後に潜む統計的構造をモデル化して分析する
    • 解析法の数理科学的側面を理解する
    • 実データに多変量解析を適用する

受講にあたっての注意

  • 微分積分学と線形代数学を復習しておく
  • 自身で解析するための計算機環境を準備する
  • 講義の資料は Moodle および Web で公開する
  • 成績評価は課題の提出(2回)による
    • 回帰分析
    • 自由課題

講義計画 (予定)

  • オリエンテーション
  • 数学的準備 (1回)
  • 回帰分析 (3回)
  • 第1回レポート (回帰分析終了から2週間で締切)
  • 主成分分析 (2回)
  • 判別分析 (2回)
  • クラスタ分析 (2回)
  • 時系列解析入門 (2回)
  • 第2回レポート (1月末締切,自由課題)

講義の内容

  • 多変量解析法の紹介
    • 回帰分析
    • 主成分分析
    • 判別分析
    • クラスタ分析
    • 時系列解析
  • 関数の微分
    • ベクトルによる微分
    • 行列による微分

多変量解析

多変量解析とは

  • 複数の変量からなるデータを分析する手法の総称
    • 回帰分析 : 複数の量を用いて注目する変数の値を説明する
    • 主成分分析 : 全体を説明する少数の特徴量を構成する
    • 判別分析 : 特徴量の違いでカテゴリ分けを行う
    • クラスタ分析 : 特徴量の違いに着目してクラスタを構成する
    • 時系列解析 : 時間とともに変化する現象を記述する
  • 機械学習で使われる手法の基礎
    • 教師あり問題 : 回帰分析(量的データ)・判別分析(質的データ)
    • 教師なし問題 : 主成分分析・クラスタ分析

回帰分析の考え方

  • ある変数(目的変数)を別の変数(説明変数)によって説明・予測するための関係式(回帰式)を構成する
    • 単回帰 : 一つの変数で目的変数を説明する
    • 重回帰 : 複数の変数で目的変数を説明する
  • 分析の事例
    • 広告宣伝費と商品の売上を予測する式を作り,広告効果があるかどうか判定する
    • 築年数・駅からの距離・広さ・間取りで家賃を説明する式を作り,新規に家賃を設定する際に利用する

例 : 体重と脳の重さの関係

body brain
Mountain beaver 1.35 8.1
Cow 465.00 423.0
Grey wolf 36.33 119.5
Goat 27.66 115.0
Guinea pig 1.04 5.5
Dipliodocus 11700.00 50.0
Asian elephant 2547.00 4603.0
Donkey 187.10 419.0
Horse 521.00 655.0
Potar monkey 10.00 115.0
Cat 3.30 25.6
Giraffe 529.00 680.0
Gorilla 207.00 406.0
Human 62.00 1320.0

bb-data.png

Figure 1: 体重と脳の重さの関係

bb-loglog.png

Figure 2: 体重と脳の重さの関係 (対数変換)

bb-lm.png

Figure 3: 回帰式とその信頼区間

例 : ボルドーワインの価格と気候の関係

VINT LPRICE2 WRAIN DEGREES HRAIN TIME_SV
1952 -0.99868 600 17.1167 160 31
1953 -0.45440 690 16.7333 80 30
1954 NA 430 15.3833 180 29
1955 -0.80796 502 17.1500 130 28
1956 NA 440 15.6500 140 27
1957 -1.50926 420 16.1333 110 26
1958 -1.71655 582 16.4167 187 25
1959 -0.41800 485 17.4833 187 24
1960 -1.97491 763 16.4167 290 23
1961 0.00000 830 17.3333 38 22
1962 -1.10572 697 16.3000 52 21
1963 -1.78098 608 15.7167 155 20
1964 -1.18435 402 17.2667 96 19
1965 -2.24194 602 15.3667 267 18

bw-pairs.png

Figure 4: 価格と気候の散布図

Characteristic Beta 95% CI p-value
WRAIN 0.0012 0.0002, 0.0022 0.024
DEGREES 0.6164 0.4190, 0.8138 <0.001
HRAIN -0.0039 -0.0055, -0.0022 <0.001
TIME_SV 0.0238 0.0090, 0.0387 0.003
Abbreviation: CI = Confidence Interval
R² = 0.828; Adjusted R² = 0.796; Statistic = 26.4; p-value = <0.001

bw-prediction.png

Figure 5: 重回帰による予測値と実際の価格

主成分分析の考え方

  • 多数の変数が与えられたときに,変数のもつ構造を効率的に記述できる少数個の特徴量を構成する
  • 分析の事例
    • 野球選手の打撃成績(打率,本塁打数,打点など)から,打者としての特徴を記述する指標を作成する
    • 複数銘柄からなる株価の時系列データから,市場全体の変動を記述する総合指標を作成する

例 : 都道府県別の生活環境

県名 地方名 昼夜人口比 年少人口比 老年人口比 人口増減率 粗出生率 粗死亡率 婚姻率 離婚率 高校数/人 高校数/面積
北海道 北海道 100.0 11.7 26.0 -0.47 7.09 10.63 4.86 2.12 192.6 1.34
青森県 東北 100.0 12.1 27.0 -0.95 6.79 12.81 4.33 1.78 194.3 2.63
岩手県 東北 99.7 12.4 27.9 -0.84 7.12 12.33 4.32 1.52 195.1 2.19
宮城県 東北 100.2 13.0 22.9 -0.09 8.05 9.51 5.30 1.70 146.3 3.18
秋田県 東北 99.9 11.1 30.7 -1.12 6.16 13.98 3.78 1.41 186.7 1.85
山形県 東北 99.8 12.6 28.3 -0.78 7.13 12.81 4.24 1.46 178.0 2.24
福島県 東北 99.6 12.9 26.1 -1.41 7.02 11.94 4.73 1.64 171.3 2.65
茨城県 関東 97.2 13.2 23.8 -0.51 7.78 10.20 4.92 1.79 138.3 3.09
栃木県 関東 99.1 13.2 23.2 -0.40 8.02 10.43 5.13 1.85 136.7 2.68
群馬県 関東 99.9 13.4 24.9 -0.45 7.49 10.63 4.64 1.77 135.4 3.56
埼玉県 関東 88.6 13.0 22.0 0.07 7.90 8.20 5.10 1.86 96.8 7.81
千葉県 関東 89.5 12.8 23.2 -0.31 7.89 8.59 5.19 1.86 110.4 5.24
東京都 関東 118.4 11.3 21.3 0.26 8.12 8.25 6.75 1.91 144.6 31.03
神奈川県 関東 91.2 13.0 21.5 0.10 8.32 7.94 5.68 1.85 98.4 16.09
新潟県 中部 100.0 12.5 27.2 -0.64 7.45 11.97 4.35 1.37 148.9 2.35

ja-pairs1.png

Figure 6: 都道府県別の人口動態

ja-pairs2.png

Figure 7: 都道府県別の教育・労働環境

ja-pairs3.png

Figure 8: 都道府県別の貯蓄・余暇

ja-biplot.png

Figure 9: 都道府県別の生活環境の主成分分析

判別分析の考え方

  • ある個体が複数のクラスのいずれかに属するとき,その個体の特徴量からどのクラスに属するかを予測するモデルを構築する
  • 分析の事例
    • 食道がんを患っている人とそうでない人を,年齢・飲酒量・喫煙度から判別する
    • 銀行が融資判断をするために,企業の財務データから,その企業が期間内に債務不履行となるか否かを予測する

例 : 乳癌患者の生研検査

V1 V2 V3 V4 V5 V6 V7 V8 V9 class
5 1 1 1 2 1 3 1 1 benign
5 4 4 5 7 10 3 2 1 benign
3 1 1 1 2 2 3 1 1 benign
6 8 8 1 3 4 3 7 1 benign
4 1 1 3 2 1 3 1 1 benign
8 10 10 8 7 10 9 7 1 malignant
1 1 1 1 2 10 3 1 1 benign
2 1 2 1 2 1 3 1 1 benign
2 1 1 1 2 1 1 1 5 benign
4 2 1 1 2 1 2 1 1 benign
1 1 1 1 1 1 3 1 1 benign
2 1 1 1 2 1 2 1 1 benign
5 3 3 3 2 3 4 4 1 malignant
1 1 1 1 2 3 3 1 1 benign
8 7 5 10 7 9 5 5 4 malignant

bio-pairs.png

Figure 10: 乳癌患者(良性・悪性)の生研検査の散布図

bio-pca.png

Figure 11: 生研検査の主成分分析

bio-discriminant.png

Figure 12: 生研検査による乳癌患者の判別分析

クラスタ分析の考え方

  • 特徴量の違いに着目して,妥当な個体のグループ(クラスタ)を構成する
    • 階層的な方法 : 系統樹を作成する
    • 非階層的な方法 : グループの代表値を推定する
  • 分析の事例
    • 映画に関するアンケート調査から潜在的なジャンル(グループ)を抽出する
    • 顧客の購買履歴から,嗜好の異なる顧客グループに分類し,グループごとの販売戦略を立てる

例 : 好きなおむすびの具に関するアンケート

県名 昆布 明太子 鱈子 ツナ その他
北海道 13.86 27.94 5.58 5.26 9.26 15.06 11.61 11.39
青森県 14.93 30.79 7.01 2.43 10.36 11.58 11.58 11.28
岩手県 17.91 23.13 5.22 3.35 17.91 10.07 10.44 11.94
宮城県 15.16 29.50 10.00 1.66 14.83 8.83 12.83 7.16
秋田県 10.63 31.38 5.31 3.19 14.89 13.29 10.63 10.63
山形県 16.58 20.27 8.29 1.38 18.89 10.13 12.90 11.52
福島県 12.37 21.99 8.93 3.43 16.49 9.62 19.24 7.90
茨城県 15.42 26.49 7.98 2.54 18.33 11.79 11.79 5.62
栃木県 16.61 27.04 10.70 1.97 16.90 9.29 12.67 4.78
群馬県 14.24 22.53 6.21 1.81 20.20 15.28 13.73 5.95
埼玉県 13.91 27.17 8.03 3.57 19.36 10.17 13.58 4.18
千葉県 14.96 28.49 7.10 3.67 19.07 10.53 10.97 5.17
東京都 14.07 28.03 8.28 3.28 17.80 11.74 11.20 5.56
神奈川県 15.05 28.06 9.61 3.47 16.10 10.67 11.49 5.51
新潟県 21.06 23.03 3.37 1.12 19.66 15.16 7.02 9.55

om-barplot.png

Figure 13: 都道府県別の好きなおむすびの具の集計結果

om-dendrogram.png

Figure 14: アンケート結果にもとづく県のクラスタ分析

時系列解析の考え方

  • 時間とともに変化する現象を記述するために,未来の値を過去の値で近似する式を構成する
    • 自己回帰 (ARモデル) : 過去の影響の記述
    • 移動平均 (MAモデル) : 記憶のある不確定性
  • 分析の事例
    • 市町村の過去の年齢別の人口変動から将来の人口比率の推移を予測する
    • 食品・飲料の季節ごとの販売履歴から,将来の需要量を予測して生産計画を立てる

例 : 米国航空機旅客量の変遷

Monthly Airline Passenger Numbers
1949-1960
Year 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
1949 112 118 132 129 121 135 148 148 136 119 104 118
1950 115 126 141 135 125 149 170 170 158 133 114 140
1951 145 150 178 163 172 178 199 199 184 162 146 166
1952 171 180 193 181 183 218 230 242 209 191 172 194
1953 196 196 236 235 229 243 264 272 237 211 180 201
1954 204 188 235 227 234 264 302 293 259 229 203 229
1955 242 233 267 269 270 315 364 347 312 274 237 278
1956 284 277 317 313 318 374 413 405 355 306 271 306
1957 315 301 356 348 355 422 465 467 404 347 305 336
1958 340 318 362 348 363 435 491 505 404 359 310 337
1959 360 342 406 396 420 472 548 559 463 407 362 405
1960 417 391 419 461 472 535 622 606 508 461 390 432

ap-timeseries.png

Figure 15: 旅客量の変遷

ap-difference.png

Figure 16: 階差時系列の自己相関分析

ap-prediction.png

Figure 17: SARIMAモデルによる旅客量の予測

関数の微分

ベクトルによる微分

  • \(d\) 次元ベクトル

    \begin{equation} \boldsymbol{a} =\begin{pmatrix} a_1\\ a_2\\ \vdots\\ a_d \end{pmatrix} =(a_1,a_2,\dotsc,a_d)^{\mathsf{T}} \end{equation}
  • ベクトル \(\boldsymbol{a}\) による関数 \(f(\boldsymbol{a})\) の微分の定義

    \begin{equation} \frac{\partial f}{\partial\boldsymbol{a}} = \left( \frac{\partial f}{\partial a_1}, \frac{\partial f}{\partial a_2}, \dotsc, \frac{\partial f}{\partial a_d} \right)^{\mathsf{T}} \end{equation}

ベクトルによる微分 (例題)

  • 問題

    \(d\) 次元ベクトル \(\boldsymbol{a}\) と \(\boldsymbol{b}\) を用いて定義される関数 \(f(\boldsymbol{a})=\boldsymbol{b}^{\mathsf{T}}\boldsymbol{a}=\boldsymbol{a}^{\mathsf{T}}\boldsymbol{b}\) の \(\boldsymbol{a}\) による微分を求めよ.

  • 解答例

    各成分で考えると以下のように計算される.

    \begin{equation} \frac{\partial f}{\partial a_i} =\frac{\partial}{\partial a_i} \left(a_1b_1+\dotsb+a_ib_i+\dotsb+a_db_d\right) =b_i. \end{equation}

    したがって

    \begin{equation} \frac{\partial f}{\partial\boldsymbol{a}} = \left( b_{1}, b_{2}, \dotsc, b_{d} \right)^{\mathsf{T}} =\boldsymbol{b} \end{equation}

    となる.

  • 注意

    \begin{equation} \begin{aligned} \frac{\partial}{\partial\boldsymbol{a}}\left(\boldsymbol{a}^{\mathsf{T}}\boldsymbol{b}\right) &=\boldsymbol{b}\\ \frac{\partial}{\partial\boldsymbol{a}}\left(\boldsymbol{b}^{\mathsf{T}}\boldsymbol{a}\right) &=(\boldsymbol{b}^{\mathsf{T}})^{\mathsf{T}}=\boldsymbol{b} \end{aligned} \end{equation}

    というルールがあることがわかる.

行列による微分

  • \(d\times d\) 行列

    \begin{equation} A = \begin{pmatrix} a_{11}&a_{12}&\dotsm&a_{1d}\\ a_{21}&a_{22}&\dotsm&a_{2d}\\ \vdots&&\ddots&\vdots\\ a_{d1}&a_{d2}&\dotsm&a_{dd} \end{pmatrix} \end{equation}
  • 行列 \(A\) による関数 \(f(A)\) の微分の定義

    \begin{equation} \frac{\partial f}{\partial A} = \begin{pmatrix} \frac{\partial f}{\partial a_{11}} &\frac{\partial f}{\partial a_{12}}&\dotsm &\frac{\partial f}{\partial a_{1d}}\\[3pt] \frac{\partial f}{\partial a_{21}} &\frac{\partial f}{\partial a_{22}}&\dotsm &\frac{\partial f}{\partial a_{2d}}\\[3pt] \vdots&&\ddots&\vdots\\ \frac{\partial f}{\partial a_{d1}} &\frac{\partial f}{\partial a_{d2}}&\dotsm &\frac{\partial f}{\partial a_{dd}} \end{pmatrix} \end{equation}

行列による微分 (例題1)

  • 問題

    行列 \(A\) と \(d\) 次元ベクトル \(\boldsymbol{b}\) を用いて定義される関数

    \begin{equation} f(A)=\boldsymbol{b}^{\mathsf{T}}A\boldsymbol{b}=\sum_{i,j=1}^{d}b_ia_{ij}b_j \end{equation}

    の行列 \(A\) による微分を求めよ.

  • 解答例

    成分で考えると

    \begin{equation} \frac{\partial f}{\partial a_{ij}} = \frac{\partial}{\partial a_{ij}}\sum_{i',j'=1}^{d}b_{i'}a_{i'j'}b_{j'} =b_ib_j \end{equation}

    となるので,

    \begin{equation} % \frac{\partial f}{\partial A} \frac{\partial}{\partial A}\boldsymbol{b}^{\mathsf{T}}A\boldsymbol{b} = \begin{pmatrix} b_1b_1&b_1b_2&\dots&b_1b_d\\ b_2b_1&b_2b_2&\dots&b_2b_d\\ \vdots&&\ddots&\vdots\\ b_db_1&b_db_2&\dots&b_db_d \end{pmatrix} =\boldsymbol{b}\boldsymbol{b}^{\mathsf{T}} \end{equation}

    と書くことができる.

行列による微分 (例題2)

  • 問題

    \(d\times d\) 行列 \(A\) と \(B\) を用いて定義される関数

    \begin{equation} f(A)=\mathrm{tr} AB=\sum_{i,j=1}^{d}a_{ij}b_{ji} \end{equation}

    の行列 \(A\) による微分を求めよ.

  • 解答例

    成分では

    \begin{equation} \frac{\partial f}{\partial a_{ij}} =b_{ji} \end{equation}

    となるので,

    \begin{equation} % \frac{\partial f}{\partial A} \frac{\partial}{\partial A}\mathrm{tr} AB = \begin{pmatrix} b_{11}&b_{21}&\dots&b_{d1}\\ b_{12}&b_{22}&\dots&b_{d2}\\ \vdots&&\ddots&\vdots\\ b_{1d}&b_{2d}&\dots&b_{dd} \end{pmatrix} =B^{\mathsf{T}} \end{equation}

    と書くことができる.

  • 注意1

    行列のトレースの性質

    \begin{equation} \mathrm{tr} AB = \mathrm{tr} BA, \quad \mathrm{tr} AB = \mathrm{tr} (AB)^{\mathsf{T}} = \mathrm{tr} B^{\mathsf{T}}A^{\mathsf{T}} \end{equation}

    より

    \begin{equation} \frac{\partial}{\partial A}\mathrm{tr} AB = \frac{\partial}{\partial A}\mathrm{tr} BA = \frac{\partial}{\partial A}\mathrm{tr} A^{\mathsf{T}}B^{\mathsf{T}} = \frac{\partial}{\partial A}\mathrm{tr} B^{\mathsf{T}}A^{\mathsf{T}} =B^{\mathsf{T}} \end{equation}

    となることが容易に確かめられる.

  • 注意2

    \begin{equation} \boldsymbol{b}^{\mathsf{T}}A\boldsymbol{b} =\mathrm{tr}\boldsymbol{b}^{\mathsf{T}}A\boldsymbol{b}=\mathrm{tr} A\boldsymbol{b}\boldsymbol{b}^{\mathsf{T}} \end{equation}

    となることから

    \begin{equation} \frac{\partial}{\partial A}\boldsymbol{b}^{\mathsf{T}}A\boldsymbol{b} = \frac{\partial}{\partial A}\mathrm{tr} A\boldsymbol{b}\boldsymbol{b}^{\mathsf{T}} =\left(\boldsymbol{b}\boldsymbol{b}^{\mathsf{T}}\right)^{\mathsf{T}} =\boldsymbol{b}\boldsymbol{b}^{\mathsf{T}} \end{equation}

    となり,2つの例での計算結果が矛盾しないことが確かめられる.

演習

問題

  • 行列(正方行列に限らない)のトレースに関して

    \begin{equation} \mathrm{tr} AB =\mathrm{tr} B^{\mathsf{T}}A^{\mathsf{T}} =\mathrm{tr} BA =\mathrm{tr} A^{\mathsf{T}}B^{\mathsf{T}} \end{equation}

    が成り立つことを示せ

  • \(d\) 次元ベクトル \(\boldsymbol{a}\) と \(d\times d\) 行列 \(A\) で定義される関数 \(f(\boldsymbol{a})=\boldsymbol{a}^{\mathsf{T}}A\boldsymbol{a}\) のベクトル \(\boldsymbol{a}\) による微分を求めよ
  • 行列 \(A\) の行列式を \(|A|\) と書くとき 行列 \(A\) による行列式 \(|A|\) の微分を求めよ
    • ヒント : 余因子展開を利用すると容易に求められる

解答例

  • \(\mathrm{tr}AB\) より,行列 \(A,B\) の積は正方行列になることから, \(A\) が \(n\times m\) 行列とすれば, \(B\) は \(m\times n\) 行列となる. したがって

    \begin{equation} \mathrm{tr}AB=\sum_{i=1}^{n}\sum_{j=1}^{m}a_{ij}b_{ji} \end{equation}

    と書くことができる. 他の式も同様に書けることを確認すればよい.

  • 微分における積の法則(Leibniz 則)を用いればよい.

    \begin{align} \frac{\partial f(\boldsymbol{a})}{\partial\boldsymbol{a}} &= \frac{\partial}{\partial\boldsymbol{a}} \boldsymbol{a}^{\mathsf{T}}A\boldsymbol{b} \mid_{\boldsymbol{b}=\boldsymbol{a}} + \frac{\partial}{\partial\boldsymbol{a}} \boldsymbol{b}^{\mathsf{T}}A\boldsymbol{a} \mid_{\boldsymbol{b}=\boldsymbol{a}}\\ &= A\boldsymbol{a} + (\boldsymbol{a}^{\mathsf{T}}A)^{\mathsf{T}}\\ &=(A+A^{\mathsf{T}})\boldsymbol{a} \end{align}
  • 行列 \(A\) の \((i,j)\) 成分に関する余因子を \(\Delta_{ij}\) とする. 行列式 \(|A|\) と逆行列 \(A^{-1}\) の \((i,j)\) 成分はそれぞれ

    \begin{equation} |A|=\sum_{j=1}^{d}a_{ij}\Delta_{ij},\; \forall i \qquad (A^{-1})_{ij}=\frac{\Delta_{ji}}{|A|} \end{equation}

    と書くことができる.したがって

    \begin{equation} \frac{\partial|A|}{\partial A} =|A|(A^{-1})^{\mathsf{T}} \end{equation}

    となる.

次回の予定

  • 確率
    • 確率分布
    • 確率質量関数・確率密度関数
    • 正規分布 (\(\chi^2\)分布,\(t\)分布,\(F\)分布 )
  • 統計
    • 統計量 (標本平均,不偏分散・共分散,相関係数)
    • 最尤法 (尤度関数)
    • Bayes の定理