こんにちは!
消費財メーカーでデータサイエンティストをしているウマたん(@statistics1012)です。
統計学の分野で、記述統計学→推計統計学→単変量解析と来て、続いて応用的に登場するのが多変量解析!
複数の変数が存在するデータの構造を把握しパターンを見出すことに秀でた手法です。
多変量解析は、昔から存在する手法であっても現在も実務で使われているケースが多いです。
多変量解析をマスターしておくことで必ず実務の場面で役立ちます。
ということで、この記事ではそんな多変量解析について見ていきたいと思います!
目次
多変量解析とは

まずは、多変量解析とはどのような手法群なのか詳しく見ていきましょう!
以下のYoutube動画でも詳しく解説していますよ!
多変量解析とは、その名の通り「複数の変数を持った手元のデータを解析して何かしらの知見を得ること」。
よくマーケティングの文脈で用いられるのが、売れる商品の傾向を多変量解析で見ていった時に「おむつとビールの売上に相関があった」と。
これによりビールとおむつを近くに置くことで売上がアップしたそうな。
※ウォルマートの例で、本当の話なのかは紆余曲折あります
このように大量にある商品の売上の相関を調べることで、新たな傾向を見つけることができました。
この手の分析はアソシエーション分析と呼ばれ、回帰分析を行う前手に使われることが多いです。
このように統計学に端を発する多変量解析では、既存の大量データの構造を分析して何かしらの特徴を得ることを最終ゴールとします。
実は、その部分が機械学習と違う部分。
機械学習は現状のデータ構造の把握よりもとにかく未知データの予測精度を上げることを最終ゴールとすることが多いです。
機械学習と統計学の違いについては以下の記事で詳しくまとめています!

多変量解析の種類とRでの実装

続いて多変量解析にはどんな種類があるのか見ていきましょう!
適宜Rでの実装も合わせておこなっていきますよー!
重回帰分析
多変量解析の中でまず初めに覚えておいてほしい手法が、重回帰分析。
回帰分析とは「ある変数を用いて他の変数を説明(予測)するモデルを作ること」です。
土地の価格を築年数や駅からの距離や広さなどの変数で説明するみたいなモデルがよくカリキュラムに出てきますねー!
n個のサンプルがあるデータセットで一つの目的変数をp個の説明変数で説明するモデルを作ると以下のようになります。
$$y_i=\beta_0+\beta_1x_{i1}+\cdots+\beta_px_{ip}+\epsilon_i, \epsilon_i \sim N(0,\sigma^2),(i=1,\cdots,n)$$
\(y\):目的変数、\(\beta_0\):ある定数、\(\beta_j\):ある係数、\(\epsilon\):誤差項を表しています。また添え字のiはサンプルを表します。
重回帰分析は全ての手法の原点であり、絶対に抑えて欲しい手法です。
重回帰分析については以下の記事で詳しくまとめていますのでチェックしてみてください!

主成分分析

主成分分析は、1900年代前半にピアソンやホテリングにより導かれた手法であり長い歴史を持っています。
教師データ(正解データ)がいらない手法であり、手元にあるデータの次元を圧縮し構造化するのに優れています。
良く主成分分析の例として取り上げられるのが学校の成績の例。
生徒それぞれに対して算数・国語・理科・社会の点数が変数として存在します。
そんなデータセットに対して主成分分析をかけると、見事に2つの変数に集約することができます。
算数と理科は理系の能力、国語と社会は文系の能力。元々4つあった変数を2つの理系・文系という能力に集約することができるのです。
データの構造を分かりやすくすることが可能です。
変数が多くデータの構造が分かりにくい時は、主成分分析をかけてみると良いでしょう。
主成分分析については以下の記事で詳しくまとめています!

コレスポンデンス分析
多変量解析手法の1つでありアンケート調査の可視化などに使われる「コレスポンデンス分析」
コレスポンデンス分析は、データの可視化に非常に優れた手法であり、マーケティングの場でよく使われます。
それでは、早速コレスポンデンス分析をRで実装してみます。
使用するデータは、統計科学研究所の「成績データ」。以下のURLからダウンロードできます。
https://statistics.co.jp/reference/statistical_data/statistical_data.htm
kokugo | shakai | sugaku | rika | ongaku | bijutu | taiiku | gika | eigo |
30 | 43 | 51 | 63 | 60 | 66 | 37 | 44 | 20 |
39 | 21 | 49 | 56 | 70 | 72 | 56 | 63 | 16 |
29 | 30 | 23 | 57 | 69 | 76 | 33 | 54 | 6 |
95 | 87 | 77 | 100 | 77 | 82 | 78 | 96 | 87 |
70 | 71 | 78 | 67 | 72 | 82 | 46 | 63 | 44 |
67 | 53 | 56 | 61 | 61 | 76 | 70 | 66 | 40 |
29 | 26 | 44 | 52 | 37 | 68 | 33 | 43 | 13 |
9科目の点数が166人分入ってます。
166人から30人抽出してコレスポンデンス分析にかけてみます。
コレスポンデンス分析はMASSパッケージのcorrepという関数で行うことが可能です。
コードは以下のように非常に簡単に実装が可能なんです。
最後の行で、結果をプロットしています。

音楽と英語が他の科目と少し離れていることが分かります。
これにより、科目同士の近さや生徒の強い科目などが可視化することができました。
コレスポンデンス分析については以下の記事で詳しくまとめています!

コンジョイント分析
消費者にとって、商品のどんな機能が響くのか知りたい場合に用いられる「コンジョイント分析」
直接的に機能の良し悪しを聞くのではなく様々なスペックの商品に点数を付けてもらうことにより機能の効用値を算出するのがコンジョイント分析になります。
コンジョイント分析を行うことで、消費者にとって最適なスペックを把握することができます。
それでは、コンジョイント分析をRで実装していきましょう!
パッケージ「conjoint」を用います。
teaというデータセットに入っている、プロファイルデータを使ってコンジョイント分析を行います。
tprofは以下のようなプロファイルデータ。

tlevnにはそれぞれの水準データが入っています。

分かりにくいのですが、この商品プロファイルは3水準×3水準×3水準×2水準になっており、priceの水準が「low/medium/high」、varietyの水準が「black/green/red」、kindの水準が「bags/granulated/leafty」、aromaの水準が「yes/no」。
最後にそれらに対する効用値が100人分入ったデータがtprefm。

これらのデータをコンジョイント分析にかけると、自動的にグラフをプロットしてくれます。

これにより要因ごとの寄与率が分かります。varietyの寄与率が若干高いですねー。

価格の部分効用値が分かります。
コンジョイント分析については以下の記事で詳しくまとめています!

階層的クラスター分析
教師なし学習の定番として取り上げられるクラスター分析!
手元のデータの特徴を基に、ある規則によってグループ分けします。
クラスター分析には階層的なタイプと非階層的なタイプがあり、階層的なタイプの方がどのようにグループ分けされたかが可視化され分かりやすくなっています。
一方、大規模データでは非階層的クラスター分析の方が計算負荷が低いため、実データでは専ら非階層的クラスター分析が使われるのが一般的です
クラスター分析については以下の記事でまとめています!

k-means
k-means法はまさに非階層のクラスター分析!
一般的にビジネスの場では膨大なデータを扱うことが多いため非階層的クラスター分析が良く用いられます。
k-means法では、パラメータを基にクラスターの数をあらかじめ決めておきます。
そのクラスターの数に応じて何回かの分類処理を経て最終的にクラスター分けを行うのがk-means法の特徴です。
Rのパッケージで簡単に実装できるのでおこなってみましょうー!
irisというめちゃんこ有名なR内のデータセット(150サンプル5変数で花びらの特徴を表したデータセット)を使います。
3つの花のタイプに分かれているので、そのラベルがk-means法とx-means法で上手く分類できるかどうか見ていきますよー!
実際に行ってみた結果がこちら
■k-means法
1 | 2 | 3 | |
setosa | 0 | 50 | 0 |
versicolor | 48 | 0 | 2 |
virginica | 14 | 0 | 36 |
Verginicaは少し外してますが、それ以外は比較的当たってますね!
正答率は89%です。
k-means法について以下の記事でまとめていますのでよければチェックしてみてください!

多変量解析を学ぶ方法

多変量解析について詳しく見てきましたが、どのように勉強すれば良いのか勉強法について見ていきましょう!
多変量解析は統計学の基礎知識を身に付けた後に学ぶ手法群です。
統計学の基礎知識がまだ身に付いていないよ、という方は以下の記事を参考にしてみてください!

書籍で学ぶ
多変量解析に関しては有用な書籍がいくつかあります。
書籍で学べる自信のある人はぜひ書籍で学んでみましょう!
多変量解析入門
多変量解析の幅広い知識を身に付けたいなら手っ取り早いのがこちらの多変量解析法入門。
基礎となる回帰のお話から主成分分析などの話が丁寧に分かりやすく載っています。
単回帰、重回帰、判別分析、主成分分析のところは丁寧に読み込んでおくと良いでしょう。
データ解析モデリング
(2021/03/02 22:58:37時点 Amazon調べ-詳細)
緑本とデータサイエンス界隈で呼ばれる超名著!
多変量解析における回帰系の分析手法から複雑な混合分布を仮定した一般化線形混合モデルの話までの流れを理解しておく上で非常に有用な本です。
多変量解析の世界からベイズ統計学・機械学習への橋渡しに最適です。
他の多変量解析の本に関しても以下の記事でまとめていますのでチェックしてみてくださいね!

Udemyで学ぶ
Udemyという動画サービスで学ぶこともオススメ!
Udemyは世界最大の教育オンラインプラットフォームで買い切り型で色んなコースを学べるのでオススメなんです!

多変量解析を学ぶのにオススメな講座を紹介していきますね!
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 中級編 –

【オススメ度】 | |
---|---|
【講師】 | 株式会社キカガク代表取締役 |
【時間】 | 4.5時間 |
【レベル】 | 初級~中級 |
本コースでは、多変量解析の基本である重回帰分析の理解に重要な線形代数を分かりやすく学べます。
線形代数は機械学習を学ぶ上で非常に重要なんです!
実際に数式的に重回帰分析を行い、その後にscikit-learnを使って分析を行っていきます。
Pythonだとライブラリを使えば中身を理解しなくても実装できちゃうので結構実務で危ないんですよねー。
やはりある程度は中身を理解していることが大事です。
このコースを受講しておけば、書籍で突然出てくる行列やベクトルに対しても吐き気をもよおさず読み進めることができるでしょう!
書籍でここまで親切に分かりやすく教えてくれるものはないので是非チェックしてみてください!
【世界で21万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

【オススメ度】 | |
---|---|
【講師】 | ITコンサルタント |
【時間】 | 26時間 |
【レベル】 | 初級 |
海外で非常に人気だったデータサイエンスコースの日本語版!
コミカルな動画と共に学べるので非常に分かりやすく、かつボリューミーです。
ビジネスサイドの話から多変量解析の各種手法について学べるのでビジネスサイドの人でも入りやすいです。
ただ、分かっている人にとってはかなり冗長な部分も多いです。
章立ての最後にある実践問題では、学んだ内容を実際にビジネスでどのように使うか分かりやすく解説してくれます!
本筋とはあまり関係ありませんが、k近傍法(Knn)とk平均法(Kmeans)を間違って使っていて、だいぶ気になりました笑
2020年版と書いてあるが若干内容が古めな気がします。
最後には実データを使って実際の前処理→ロジスティック回帰による分析→タブローで可視化という流れを行っていくので実践に即した内容になっています。
多変量解析 まとめ
多変量解析の手法とRでの実装、そして最終的には多変量解析の勉強法について見てきました!
最後に多変量解析の種類についてまとめておきましょう!
以下の記事でそれぞれの勉強法についてまとめているのでチェックしてみてください!


