【データ分析の罠】「アイスが売れると溺れる人が増える?」エンジニアなら知っておきたい交絡因子の正体

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

みなさんは、データをパッと見て「あ!これが原因だ!」と飛びついた経験はありませんか?

データ分析や不具合調査をしていると、一見すると明らかに関係がありそうな数字に出会うことがあります。でも、そこには大きな落とし穴が隠されているかもしれません。

今日は、新人エンジニアのみなさんが必ず知っておくべき交絡因子(こうらくいんし)という少し怖い、けれどとても重要なテーマについてお話しします。

これを理解していないと、まったく検討違いな修正をしてしまったり、無意味な施策に予算を投じてしまったりする恐れがあります。

ぜひ最後までお付き合いください!

アイスクリームと水難事故の不思議な関係

まずは、専門用語の解説に入る前に、有名な例え話を使って直感的に理解していきましょう。

ある海辺の街でデータを取ったところ、次のような衝撃的な事実が判明しました。

「アイスクリームの売上が伸びると、海で溺れる人の数も増える」

さて、みなさんがこの街の市長ならどうしますか?

「水難事故を防ぐために、アイスクリームの販売を禁止しよう!」と命令を出しますか?

ちょっと待ってください。冷静に考えると、アイスを食べたからといって泳ぎが下手になるわけではありませんよね。

ここで登場するのが、今回の主役である交絡因子です。

隠れた犯人「気温」を見つけ出せ

実は、この話には裏に隠れたもう一つの要素が存在しています。それは「気温」です。

  1. 気温が高くなる(夏になる)
  2. 暑いからアイスクリームがたくさん売れる
  3. 暑いから海で泳ぐ人が増えて、結果として溺れる人も増える

つまり、アイスクリームと水難事故には直接的な因果関係はなく、両方に影響を与えている「気温」こそが真の原因だったのです。

このとき、「気温」のことを交絡因子と呼びます

もし、この交絡因子に気づかずに「アイス禁止令」を出していたらどうなっていたでしょう?市民からは怒られ、肝心の水難事故はまったく減らないという最悪の結果になっていたはずです。

エンジニアの現場で起きる「交絡」の罠

では、もう少しエンジニアらしい現場の例で考えてみましょう。

あなたが開発しているWebサービスの管理画面で、次のようなデータを見つけたとします。

「サーバーのCPU使用率が上がると、ユーザーの会員登録数が増える」

これを鵜呑みにして、「よし、会員登録を増やすために、無駄な処理を走らせてCPU使用率を上げよう!」と考えたら、それは大きな間違いです。

ここにも交絡因子が隠れている可能性が高いのです。例えば「テレビCMの放映」がそれにあたります。

  1. テレビCMが流れる(交絡因子)
  2. サイトへのアクセスが急増し、CPU使用率が上がる
  3. 多くの人がサイトを訪れた結果、会員登録数も増える

この場合、CPU使用率と会員登録数は、あくまで「結果として同時に増えただけ」であって、そこに直接的な関係はありません。これを専門用語で疑似相関(ぎじそうかん)と呼びます。

数式で見る関係性

少しだけ数学的な視点で整理してみましょう。高校数学のレベルで大丈夫です。

私たちが知りたい「結果」を y とし、その「原因」だと思われるものを x とします。通常、単純な比例関係であれば次のように書けます。

結果 = 係数 \times 原因

しかし、ここに交絡因子 z が絡んでくると、実際の世界はもっと複雑になります。

結果 = 係数A \times 原因 + 係数B \times 交絡因子

私たちがデータを見るとき、ついつい x (原因)と y (結果)だけの関係を見てしまいがちです。しかし、実際には z (交絡因子)が裏で大きく値を動かしていることがあるのです。

例えば、システムの応答速度(レスポンスタイム)を分析する場合を考えてみましょう。

応答速度 = 処理効率 \times コードの品質 + サーバーの負荷

もし「サーバーの負荷」という交絡因子を無視して、「最近応答速度が遅いな。コードの品質が悪いに違いない!」と決めつけてリファクタリング(プログラムの整理)を始めても、実は単にアクセスが増えてサーバーが重くなっていただけなら、その努力は徒労に終わってしまいます。

交絡因子を考えるメリットとデメリット

交絡因子の存在を常に意識することには、良い面もあれば、難しい面もあります。

メリット:本質的な解決策が見つかる

最大のメリットは、問題の「真の原因」にたどり着けることです。

表面的な数字の動きに惑わされず、「本当にAがBを引き起こしているのか?」「別のCという要因が影響しているのではないか?」と疑う癖をつけることで、無駄な作業を減らし、効果的な打ち手を打てるようになります。

デメリット:調査が大変になる

一方で、交絡因子を疑い始めるとキリがありません。「曜日による影響は?」「ユーザーの年齢層は?」「天候は?」と、考慮すべきパラメータが無限に出てきてしまいます。

すべての交絡因子を完全に排除してデータを集めることは、現実の世界では非常にコストがかかり、時には不可能な場合もあります。

まとめと今後の学習指針

いかがでしたか?

データ分析において、「Aが増えればBも増える」という相関関係だけを見て、すぐに「Aが原因だ」と因果関係を決めつけるのは危険です。

常に「第三の隠れた要素、つまり交絡因子がないか?」と自問自答する姿勢を持ってください。

最後に、これからさらに学びたい方への指針です。

今回の内容をより深く理解するためには、「因果推論(いんがすいろん)」という分野を勉強してみてください。

また、Webサービス開発の現場では、交絡因子の影響を排除して正しい判断をするために「A/Bテスト」という手法がよく使われます。

まずは「相関関係と因果関係は違う」という言葉を胸に刻み、日々のログやデータを眺めてみましょう。

それでは、また次回の記事でお会いしましょう!

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

投稿者プロフィール

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