多変量解析

多変量解析の基礎をRで実装しながら学んでいこう!

多変量解析
ウマたん
ウマたん
本記事では、データの構造把握に役立つ多変量解析について見ていきます。多変量解析とは予測的な観点ではなくあくまで現状データの構造把握に端を発していることが特徴です。Rでの実装も同時に行いながら理解を深めていきましょう!

こんにちは!

消費財メーカーでデータサイエンティストをしているウマたん(@statistics1012)です。

統計学の分野で、記述統計学→推計統計学→単変量解析と来て、続いて応用的に登場するのが多変量解析!

複数の変数が存在するデータの構造を把握しパターンを見出すことに秀でた手法です。

ロボたん
ロボたん
多変量解析って難しそう!単純ではないんでしょ?
ウマたん
ウマたん
そんなに難しくない!ただ、いきなり理論から入ってしまうとモチベーションが続かない場合が多いからRでの実装も行いながら学んでいこう!

多変量解析は、昔から存在する手法であっても現在も実務で使われているケースが多いです。

多変量解析をマスターしておくことで必ず実務の場面で役立ちます。

ということで、この記事ではそんな多変量解析について見ていきたいと思います!

多変量解析とは

ルービックキューブ

まずは、多変量解析とはどのような手法群なのか詳しく見ていきましょう!

多変量解析とは、その名の通り「複数の変数を持った手元のデータを解析して何かしらの知見を得ること」。

よくマーケティングの文脈で用いられるのが、売れる商品の傾向を多変量解析で見ていった時に「おむつとビールの売上に相関があった」と。

これによりビールとおむつを近くに置くことで売上がアップしたそうな。

※ウォルマートの例で、本当の話なのかは紆余曲折あります

このように大量にある商品の売上の相関を調べることで、新たな傾向を見つけることができました。

この手の分析はアソシエーション分析と呼ばれ、回帰分析を行う前手に使われることが多いです。

このように統計学に端を発する多変量解析では、既存の大量データの構造を分析して何かしらの特徴を得ることを最終ゴールとします。

実は、その部分が機械学習と違う部分

機械学習は現状のデータ構造の把握よりもとにかく未知データの予測精度を上げることを最終ゴールとすることが多いです。

機械学習と統計学の違いについては以下の記事で詳しくまとめています!

機械学習と統計学の違いについてモノ申す!!当サイト【スタビジ】の本記事では、機械学習と統計学の違いについて考察していきます。定義と境界が曖昧な2つの領域ですが、目的の違いを理解しておくことが大事。機械学習は予測精度を上げることを目的とし統計学はデータ構造の把握をすることを目的とします。...

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

PC

続いて多変量解析にはどんな種類があるのか見ていきましょう!

適宜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はサンプルを表します。

重回帰分析は全ての手法の原点であり、絶対に抑えて欲しい手法です。

重回帰分析については以下の記事で詳しくまとめていますのでチェックしてみてください!

回帰分析
回帰分析の理論とRでの実装!当サイト【スタビジ】の本記事では、統計学・データサイエンスの基本である回帰分析について理論とRでの実装を見ていきます。回帰分析についてしっかりおさえておくことで機械学習など高度な手法についても理解が深まります。...

主成分分析

主成分分析

主成分分析は、1900年代前半にピアソンやホテリングにより導かれた手法であり長い歴史を持っています。

教師データ(正解データ)がいらない手法であり、手元にあるデータの次元を圧縮し構造化するのに優れています。

良く主成分分析の例として取り上げられるのが学校の成績の例。

生徒それぞれに対して算数・国語・理科・社会の点数が変数として存在します。

そんなデータセットに対して主成分分析をかけると、見事に2つの変数に集約することができます。

算数と理科は理系の能力、国語と社会は文系の能力。元々4つあった変数を2つの理系・文系という能力に集約することができるのです。

データの構造を分かりやすくすることが可能です。

変数が多くデータの構造が分かりにくい時は、主成分分析をかけてみると良いでしょう。

主成分分析については以下の記事で詳しくまとめています!

主成分分析とは?簡単な説明とPythonでの実装!当サイト【スタビジ】の本記事では、実務の基礎分析にて使われることの多い主成分分析について詳しく見ていきます。最後にはカンタンなPythonでの実装も載せていますのでぜひ参考にしてみてください!...

コレスポンデンス分析

多変量解析手法の1つでありアンケート調査の可視化などに使われる「コレスポンデンス分析」

コレスポンデンス分析は、データの可視化に非常に優れた手法であり、マーケティングの場でよく使われます。

それでは、早速コレスポンデンス分析をRで実装してみます。

使用するデータは、統計科学研究所の「成績データ」。以下のURLからダウンロードできます。

https://statistics.co.jp/reference/statistical_data/statistical_data.htm

kokugoshakaisugakurikaongakubijututaiikugikaeigo
304351636066374420
392149567072566316
29302357697633546
9587771007782789687
707178677282466344
675356616176706640
292644523768334313

9科目の点数が166人分入ってます。

166人から30人抽出してコレスポンデンス分析にかけてみます。

コレスポンデンス分析はMASSパッケージのcorrepという関数で行うことが可能です。

コードは以下のように非常に簡単に実装が可能なんです。

最後の行で、結果をプロットしています。

音楽と英語が他の科目と少し離れていることが分かります。

これにより、科目同士の近さや生徒の強い科目などが可視化することができました。

コレスポンデンス分析については以下の記事で詳しくまとめています!

コレスポンデンス分析とは?Rでのやり方を見ていこう!当サイト【スタビジ】の本記事では、マーケティングで用いられることの多い統計的手法「コレスポンデンス分析」について簡単に解説していきたいと思います。Rを使えば簡単に実装できるので合わせて実装方法も見ていきますよー!...

コンジョイント分析

消費者にとって、商品のどんな機能が響くのか知りたい場合に用いられる「コンジョイント分析

直接的に機能の良し悪しを聞くのではなく様々なスペックの商品に点数を付けてもらうことにより機能の効用値を算出するのがコンジョイント分析になります。

コンジョイント分析を行うことで、消費者にとって最適なスペックを把握することができます。

それでは、コンジョイント分析を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の寄与率が若干高いですねー。

価格の部分効用値が分かります。

コンジョイント分析については以下の記事で詳しくまとめています!

コンジョイント分析
コンジョイント分析とは?特徴とRでのやり方を見ていこう!当サイト【スタビジ】の本記事では、マーケティングにおける消費者調査の分析に使われるコンジョイント分析をカンタンに解説していきます。Rでの実装も合わせておこなっていくので、ぜひ自分の手を動かして実装してみてくださいね!...

階層的クラスター分析

教師なし学習の定番として取り上げられるクラスター分析!

手元のデータの特徴を基に、ある規則によってグループ分けします。

クラスター分析には階層的なタイプと非階層的なタイプがあり、階層的なタイプの方がどのようにグループ分けされたかが可視化され分かりやすくなっています。

一方、大規模データでは非階層的クラスター分析の方が計算負荷が低いため、実データでは専ら非階層的クラスター分析が使われるのが一般的です

クラスター分析については以下の記事でまとめています!

クラスター分析
クラスター分析とは?RとPythonでの実装方法を一緒に見ていこう!当サイト【スタビジ】の本記事では、クラスター分析についてまとめていきます。クラスター分析は教師なし学習の定番手法で、データの構造や傾向を把握するのに非常に役立ちます。クラスター分析を利用してデータを可視化してみましょう!...

k-means

k-means法はまさに非階層のクラスター分析!

一般的にビジネスの場では膨大なデータを扱うことが多いため非階層的クラスター分析が良く用いられます。

k-means法では、パラメータを基にクラスターの数をあらかじめ決めておきます。

そのクラスターの数に応じて何回かの分類処理を経て最終的にクラスター分けを行うのがk-means法の特徴です。

Rのパッケージで簡単に実装できるのでおこなってみましょうー!

irisというめちゃんこ有名なR内のデータセット(150サンプル5変数で花びらの特徴を表したデータセット)を使います。

3つの花のタイプに分かれているので、そのラベルがk-means法とx-means法で上手く分類できるかどうか見ていきますよー!

実際に行ってみた結果がこちら

■k-means法

123
setosa0500
versicolor4802
virginica14036

Verginicaは少し外してますが、それ以外は比較的当たってますね!

正答率は89%です。

k-means法について以下の記事でまとめていますのでよければチェックしてみてください!

k-means法とは?RとPythonで実装してみよう!当サイト【スタビジ】の本記事では、非階層クラスター分析のk-means法について徹底的に解説していきます。メリットとデメリットがあるので使う際は注意しましょう!x-means法という改良手法も合わせて一緒に見ていきますよー!...

多変量解析を学ぶ方法

メモ

多変量解析について詳しく見てきましたが、どのように勉強すれば良いのか勉強法について見ていきましょう!

多変量解析は統計学の基礎知識を身に付けた後に学ぶ手法群です。

統計学の基礎知識がまだ身に付いていないよ、という方は以下の記事を参考にしてみてください!

統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...

書籍で学ぶ

多変量解析に関しては有用な書籍がいくつかあります。

書籍で学べる自信のある人はぜひ書籍で学んでみましょう!

多変量解析入門

created by Rinker
¥2,420
(2020/09/21 16:10:32時点 Amazon調べ-詳細)

多変量解析の幅広い知識を身に付けたいなら手っ取り早いのがこちらの多変量解析法入門。

基礎となる回帰のお話から主成分分析などの話が丁寧に分かりやすく載っています。

単回帰、重回帰、判別分析、主成分分析のところは丁寧に読み込んでおくと良いでしょう。

データ解析モデリング

緑本とデータサイエンス界隈で呼ばれる超名著!

多変量解析における回帰系の分析手法から複雑な混合分布を仮定した一般化線形混合モデルの話までの流れを理解しておく上で非常に有用な本です。

多変量解析の世界からベイズ統計学・機械学習への橋渡しに最適です。

他の多変量解析の本に関しても以下の記事でまとめていますのでチェックしてみてくださいね!

厳選5冊!多変量解析を勉強する上でおすすめな本!当サイト【スタビジ】の本記事では、推計統計学の発展手法である多変量解析手法を学ぶのにおすすめな書籍をまとめていきます。多変量解析はデータの解釈を行うことに端を発しており、機械学習はデータの予測を行うことに端を発しています。...

Udemyで学ぶ

Udemyという動画サービスで学ぶこともオススメ!

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

Udemy
【体験談】評判の良いUdemyを実際に20コース受けてみてレビュー!当サイト【スタビジ】の本記事では、世界最大のオンライン学習プラットフォームであるUdemyのメリット・デメリット・評判・口コミについてまとめていきます!実際にPython関連のコースを20個受講して分かった体験談をもとにお伝えしていきます。...

多変量解析を学ぶのにオススメな講座を紹介していきますね!

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 中級編 –

Udemy コース ブラックボックス中級
【オススメ度】
【講師】株式会社キカガク代表取締役
【時間】4.5時間
【レベル】初級~中級

本コースでは、多変量解析の基本である重回帰分析の理解に重要な線形代数を分かりやすく学べます。

線形代数は機械学習を学ぶ上で非常に重要なんです!

実際に数式的に重回帰分析を行い、その後にscikit-learnを使って分析を行っていきます。

Pythonだとライブラリを使えば中身を理解しなくても実装できちゃうので結構実務で危ないんですよねー。

やはりある程度は中身を理解していることが大事です。

このコースを受講しておけば、書籍で突然出てくる行列やベクトルに対しても吐き気をもよおさず読み進めることができるでしょう!

書籍でここまで親切に分かりやすく教えてくれるものはないので是非チェックしてみてください!

\30日間返金無料/

【世界で21万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

Udemy コース データサイエンス
【オススメ度】
【講師】ITコンサルタント
【時間】26時間
【レベル】初級

海外で非常に人気だったデータサイエンスコースの日本語版!

コミカルな動画と共に学べるので非常に分かりやすく、かつボリューミーです。

ビジネスサイドの話から多変量解析の各種手法について学べるのでビジネスサイドの人でも入りやすいです。

ただ、分かっている人にとってはかなり冗長な部分も多いです。

章立ての最後にある実践問題では、学んだ内容を実際にビジネスでどのように使うか分かりやすく解説してくれます!

本筋とはあまり関係ありませんが、k近傍法(Knn)k平均法(Kmeans)を間違って使っていて、だいぶ気になりました笑

2020年版と書いてあるが若干内容が古めな気がします。

最後には実データを使って実際の前処理→ロジスティック回帰による分析→タブローで可視化という流れを行っていくので実践に即した内容になっています。

\30日間返金無料/

多変量解析 まとめ

多変量解析の手法とRでの実装、そして最終的には多変量解析の勉強法について見てきました!

最後に多変量解析の種類についてまとめておきましょう!

ロボたん
ロボたん
この後はどうやって勉強を進めたら良いの?
ウマたん
ウマたん
機械学習やディープラーニングなどさらに高度な手法を学ぶか、Pythonの能力を磨くか自分の進みたい方向に進むとよいよ!

以下の記事でそれぞれの勉強法についてまとめているのでチェックしてみてください!

機械学習
機械学習入門に必要な知識と勉強方法をPythonとRの実装と一緒に見ていこう!当サイト【スタビジ】の本記事では、入門者向けに機械学習についてカンタンにまとめていきます。最終的にはどのように機械学習を学んでいけばよいかも見ていきます。細かい手法の実装もPython/Rを用いておこなっていくので適宜参考にしてみてください。...
【初心者向け】ディープラーニングの学習ロードマップまとめ当サイト【スタビジ】本記事では、ディープラーニングの学習方法について詳しくまとめていきます!ディープラーニングは難しいと思われがちですが、アルゴリズムは意外とシンプルで実装自体も非常に簡単なんです!Pythonでの実装もおこなっていきますよー!...
Python 勉強
【入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!