メインコンテンツへスキップ
ブログ一覧に戻る
統計・データサイエンス

ビジネスで使う多変量解析:主成分・因子・クラスター・回帰の選び方

2025年10月16日
最終更新: 2026年10月8日
8分で読めます

この記事でわかること

多変量解析は、変数を減らす、似た対象をまとめる、未知の結果を予測するなど、問いによって手法が変わります。主成分分析と因子分析、クラスタリングと分類の違いを整理。架空の解約予測計画と図を使い、前処理での情報漏洩、評価の分け方、観測データから因果を断定しない実務の進め方を解説します。分析の前提と限界も示します。

2026年10月8日にscikit-learnのPCA・LDA・GaussianMixture・交差検証本文を再確認した。主成分、因子、クラスター、分類、回帰は、問いが圧縮・潜在構造・予測・説明・因果のどれかで選ぶ別のモデルである。標準化、欠測、外れ値、成分数、クラス数、ラベル不確実性、未見評価を記録し、きれいな2軸や高いスコアを事業の原因や施策の効果とみなさない。

顧客の利用回数、契約期間、購入金額、問い合わせ履歴。列が増えるほど、一つの平均値だけでは状況を捉えにくくなります。多変量解析は、こうした複数の変数を同時に扱うための手法のまとまりです。

ただし、手法を使うだけで売上や利益が改善するわけではありません。データを要約する、似た対象をまとめる、未知の結果を予測する、介入の効果を知るという問いを分けると、必要な分析と次の行動が見えてきます。

30秒で要点

  • 手法名から始めず、何を知りたいかと、一行が誰・何・いつを表すかを決める。
  • PCAと因子分析、クラスタリングと分類は、それぞれ目的が違う。
  • 予測評価では前処理前にデータを分ける。予測できることと施策が効くことも区別する。

問いに合わせて手法を選ぶ

この記事では、日本語で広く「多変量解析」と呼ばれる範囲を扱います。用語を厳密に使う場面では、説明変数が複数で目的変数が一つの重回帰と、複数の目的変数を同時に扱う多変量回帰を区別します。

表が収まらない場合は、横にスクロールできます

知りたいこと手法の候補得られるものそれだけでは言えないこと
多数の指標を少ない軸で要約したい主成分分析(PCA)分散を多く表す合成軸重要な業務情報を全て保持したこと
複数の質問に共通する構造を考えたい因子分析潜在因子と各項目の関係のモデル因子の実在や因果関係
似た顧客や店舗をまとめたいクラスタリング選んだ特徴量と距離に基づく群固定した「本当の顧客タイプ」
売上などの数値を予測したい重回帰など説明変数からの予測値係数どおりの介入効果
解約など既知のラベルを予測したい判別分析・ロジスティック回帰など群の予測や確率介入したときの結果の変化
二組の変数群の関連を調べたい正準相関分析両群の合成軸どうしの関連どちらが原因かという結論

手法の基本は、scikit-learnの分解手法、クラスタリング、線形モデル、正準相関を含む二群の分解で確認できます。多くの変数を扱えることは、少ないデータで安定して推定できることを意味しません。

主成分と因子は、何を残すかが違う

PCAは、元の変数を組み合わせ、分散を多く表す方向から順に互いに直交する軸を作ります。二つの軸で散布図を描けば、元の多数の列では見えにくい配置を眺められます。ただし残した軸の寄与率は、入力の分散をどれだけ表すかの指標です。売上や解約をどれだけ正しく予測できるかとは別です。

例えば利用回数と利用金額では単位が違います。金額を円で表すか万円で表すかだけで、未調整の分散や距離は変わります。各変数を平均ゼロ・標準偏差一にする標準化は選択肢ですが、変数を等しい尺度で扱うことが目的に合うかを考えます。scikit-learnのPCAは平均を引く中心化は行いますが、元の各変数の標準化は自動で行いません。

因子分析は、質問項目などの共通する変動を潜在因子で説明し、変数固有の誤差と分けるモデルです。因子負荷量を見て「使いやすさ」と名付けても、それは質問内容を踏まえた解釈です。別の回答者や時期でも構造が成り立つか、尺度や因子数が適切かを確認します。PCAの軸に名前を付ける作業と同一ではありません。

群分けは、使える仮説になって初めて役立つ

クラスタリングには正解ラベルがありません。同じ顧客でも、金額と頻度でまとめる場合と、問い合わせ内容でまとめる場合では、違う群ができて自然です。距離の定義、標準化、群の数、外れ値によって結果も変わります。

ここで確かめたいのは、見栄えのよい色分けよりも、どんな違いを持つ群なのか、期間や標本を変えても似た構造が残るか、担当者が異なる対応を取れるかです。「価格重視層」と命名しただけでは、値引きが効くと確認されたわけではありません。

一方、「翌月に解約した/しなかった」という既知のラベルで学習するなら分類です。解約予測の目的では、クラスタリングを必須の前処理にせず、直接予測するモデルも比較対象にします。

架空の解約予測計画で、情報の境界を決める

ここからは学習用の架空の業務設計です。実在企業の導入事例や改善実績を表すものではありません。月末に、翌月の解約リスクを予測して担当者の確認対象を絞るとします。

一行は「ある顧客のある月末時点」です。説明変数には、その時点までの利用回数、在籍月数、問い合わせ件数などを置きます。目的変数は翌月の解約の有無です。翌月の最終請求額や解約申請の記録を説明変数に混ぜれば、予測時点では知り得ない答えの一部を使うことになります。

架空の解約予測の流れ。月末までの情報を用意し、時間順に学習側と評価側へ分割。学習側だけで補完・標準化・モデルを決め、評価側には確定した処理を適用する。評価の答えを学習へ戻さない。
図1:モデルだけでなく、補完値や主成分の軸も学習対象。後の期間の答えを見て作り直すと、その期間を最終評価には使えない。

過去期間で開発し、それより後の期間で評価する場合、欠測補完の値、標準化の平均・標準偏差、PCAの軸も過去側だけで求めます。評価側には確定した同じ変換を適用します。さらに学習側で候補を比較する交差検証でも、各分割の内側で前処理を学習させます。

scikit-learnのデータ漏洩の解説は、分割前の標準化・PCA・変数選択が評価を楽観的にする問題を説明しています。Pipelineは処理を揃える助けになりますが、元の列に将来情報が混ざっている問題まで自動では直しません。

同じ顧客の複数月がある場合、どの顧客へ使うかも決めます。既存顧客の翌月を予測する場面と、新しい顧客へ一般化する場面では、時間や顧客単位の分け方が異なります。学習期間の末尾の目的変数が確定してから、次の評価を行えるかも確認します。

数字を出す前に、評価の物差しを決める

予測結果を評価するなら、凝ったモデルの前に、単純な基準と比較します。売上なら過去平均など、解約なら全体の解約率を使う予測などです。どのモデルも同じ対象・同じ期間で比べます。

表が収まらない場合は、横にスクロールできます

目的比較するもの読み違いを避ける確認
数値の予測平均絶対誤差など、単位の分かる誤差一部の大口顧客だけで結果が決まっていないか
解約の分類見逃し、誤警報、確認できる人数解約が少ないと「全員継続」でも正解率が高くなる
確率の予測予測確率と実際の発生割合の対応順位が良くても確率の値が適切とは限らない
探索的な群分け群の特徴、安定性、対応の違い群の数を増やしただけで成功としない

評価用データで何度も手法を選び直したら、そのデータは開発に使ったことになります。新たな最終評価を用意し、評価値には件数・期間・分割方法と、不確実性の評価方法を添えます。繰り返し記録を含む場合は、行をばらばらに再標本化して独立とみなさないことも必要です。

予測の次に、施策の効果を別に確かめる

解約リスクが高い人を見つけられても、その人へ割引を提示すると継続するとは限りません。介入の対象を選ぶ予測と、介入によって変わる結果は別の量です。売上と広告費の回帰、正準相関による変数群の関連も、それだけで施策の因果効果にはなりません。

結果を施策に使う際は、まず分析が扱った対象と期間、できる判断、まだ確認していない判断を担当者と共有します。効果を確かめる段階では、条件が整えばランダム割付の実験を計画します。観測データを使う場合も、比較可能性など追加の因果推論の条件を明示します。

次に進むなら、線形回帰の係数と区間で数値予測の読み方を、A/Bテストの統計で実験設計と結果の不確実性を確認できます。

よくある質問(FAQ)