相関分析は最強の「データスカウト」!機械学習の精度を上げる”相棒”の正体とは

こんにちは。ゆうせいです。

機械学習モデルを作ろう!と意気込んで、データを集めてきた新人エンジニアのあなた。

そのデータを、いきなりモデルに「えいっ」と投入していませんか?

ちょっと待ってください!

そのデータ、ちゃんと「中身」を見ましたか?

優秀な料理人が、素材(データ)の味見や下ごしらえを念入りにするように、私たちエンジニアも、データを調理する前に「データの味見」をする必要があります。

その「最強の味見道具」こそが、今回お話しする「相関分析(そうかんぶんせき)」なんです。

「統計学のやつでしょ?」「機械学習とどう関係するの?」

そう思ったあなたにこそ、読んでほしい!

相関分析が、いかに機械学習の「良き相棒」であるかを、分かりやすく解説していきますね。

そもそも「相関分析」って何?

相関分析とは、ものすごくシンプルに言うと、「2つの物事(変数)が、どれくらい一緒に動くか」を調べる方法です。

「片方が増えたら、もう片方も増えるのか?」「それとも減るのか?」「あるいは、全然関係ないのか?」

この「関係性の強さ」を、数値でズバリと示してくれます。

相関係数(r )という名の「関係性スコア」

その数値のことを「相関係数(そうかんけいすう)」と呼びます。

よく r という記号で表されますね。

このスコアは、必ず -1 から +1 の間に入ります。

  • +1 に近い(正の相関が強い)
    • 片方が増えれば、もう片方も増える関係。
    • 例:「気温が上がる」と「アイスクリームの売上が上がる」
  • -1 に近い(負の相関が強い)
    • 片方が増えれば、もう片方は減る関係。
    • 例:「勉強時間が増える」と「ゲームのプレイ時間が減る」
  • 0 に近い(相関が(ほとんど)ない)
    • 2つの物事に関連性が見られない。
    • 例:「あなたの靴のサイズ」と「明日の株価」

どうです? この「関係性スコア」、なんだか機械学習の役に立ちそうだと思いませんか?

機械学習における相関分析の「2大ミッション」

相関分析は、特に機械学習の「前処理(データをモデルに入れられる形に整えること)」や「特徴量エンジニアリング(モデルが学習しやすいデータを作ること)」において、2つの重要なミッションを担っています。

ミッション1:予測に「役立つ特徴量」のスカウト

機械学習モデルの目的が「何かを予測すること」だとしましょう。

例えば、「家の価格」を予測するモデルを作るとします。

データとして「部屋の広さ」「駅からの距離」「築年数」などがありますよね。

このとき、相関分析を使って、「予測したいもの(家の価格)」と「各データ(特徴量)」の関係性スコアを計算します。

  • 「部屋の広さ」と「家の価格」:+0.7(強い正の相関)
  • 「駅からの距離」と「家の価格」:-0.6(やや強い負の相関)
  • 「近所の公園の名前」と「家の価格」:+0.01(ほぼゼロ)

この結果を見れば、一目瞭然!

「部屋の広さ」や「駅からの距離」は、価格予測にすごく役立ちそうだ、と分かります。

一方で、「近所の公園の名前」は、予測に全然関係なさそうですよね?

このように、相関分析は、予測に役立つ「有望な選手(特徴量)」を見つけ出す、優秀なスカウトマンの役割を果たしてくれるんです。

ミッション2:モデルを混乱させる「似た者同士」の発見

もう一つのミッションは、スカウトした選手(特徴量)同士の関係を見ることです。

ここで注意したいのが、特徴量同士の相関が強すぎる場合です。

これを専門用語で「多重共線性(たじゅうきょうせんせい、マルチコとも言います)」と呼んだりします。

例:「家の広さ(平方メートル)」と「家の広さ(坪)」

この2つのデータ、当たり前ですが、言っていることはほぼ同じですよね?

相関係数を計算したら、ほぼ +1 になるはずです。

このような「似た者同士」のデータを両方モデルに入れてしまうと、モデルが混乱してしまうんです。

「えっ、どっちの『広さ』を見ればいいの!?」「広さの影響が2倍になっちゃう!」

特に、線形回帰のようなシンプルなモデルは、この問題にとても弱いんです。

相関分析を使えば、「あ、この2つの特徴量、相関が 0.95 もある!似すぎているから、片方は削除しておこう」という判断ができます。

モデルが混乱しないよう、事前に交通整理をしてあげるわけですね。

最大の注意点!「相関関係は、因果関係ではない」

さて、相関分析はとても便利ですが、一つだけ、絶対に覚えておかなければならない落とし穴があります。

それは、「相関があるからといって、片方がもう片方の『原因』であるとは限らない」ということです。

有名な例:「アイスの売上」と「水難事故の件数」

この2つ、実は「強い正の相関」があります。

データだけ見ると、「アイスが売れるほど、水難事故が増える」ように見えます。

では、質問です。

「水難事故を減らすために、アイスの販売を禁止すべき」でしょうか?

...違いますよね!

この2つには、「共通の原因」が隠れています。

それは「気温(夏であること)」です。

  • 気温が上がる → アイスが売れる
  • 気温が上がる → 海や川で泳ぐ人が増え、事故も増える

アイスが事故の原因なのではなく、「気温」という隠れたボス(潜伏変数)が、両方を引き起こしていただけなんです。

機械学習モデルは、この「見せかけの相関」に騙されてしまうことがあります。

モデルが「アイスの売上」を水難事故の予測に使い始めたら、おかしなことになりますよね。

相関分析で高い数値が出ても、「なぜ、この2つに関係があるんだろう?」と、必ず自分の頭で「因果関係」を考えるクセをつけてください!

まとめと次のステップ

相関分析は、機械学習モデルという「エンジン」を組み立てる前の、「データという素材」を吟味するためのシンプルかつ強力なツールです。

  • メリット:計算が速く、-1から+1の数値で関係性が直感的にわかる。
  • デメリット:あくまで「直線的な関係」しか見られない。「原因と結果」は教えてくれない。

この「データのスカウトマン」をうまく使いこなせるかどうかで、あなたの作るモデルの精度や安定性が大きく変わってきますよ。

次のステップ

  1. 実際に計算してみよう!PythonのPandasライブラリを使えば、df.corr() というたった一行のコードで、データ全体の相関行列(相関係数の一覧表)を計算できます。まずは触ってみましょう!
  2. ヒートマップで可視化しよう!計算した相関行列を、「ヒートマップ」というグラフにすると、どの特徴量同士の相関が強いか(色が濃いか)が一目でわかります。Seabornというライブラリですぐに作れますよ。
  3. 「スピアマンの順位相関」を調べてみよう今回紹介した(ピアソンの)相関係数は、直線的な関係しか測れません。世の中には「増えれば増えるほど、伸び方が緩やかになる」ような関係もあります。そういうものも捉えたい場合は、「スピアマンの順位相関」という別の方法があることも知っておくと、武器が増えます。

データの「声」を聞く第一歩として、ぜひ相関分析と仲良くなってくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。