頻度主義統計学とベイズ統計学、それぞれのアプローチ

はじめに

統計学には、大きく分けて頻度主義統計学とベイズ統計学の2つのアプローチが存在します。これらは確率の解釈と、それに基づく統計的推論の方法において根本的に異なります。本記事では、コイン投げという単純な例を通じて、これら2つのアプローチの違いを具体的に示し、それぞれの特徴と使い分けについて解説します。

この記事を書いたひと

デジタルリアクタ合同会社 代表
機械学習・統計、数値計算などの領域を軸としたソフトウェアエンジニアリングを専門としています。スタートアップからグローバル企業まで、さまざまなスケールの企業にて、事業価値に直結する計算システムを設計・構築してきました。主に機械学習の応用分野において、出版・発表、特許取得等の実績があり、また、IT戦略やデータベース技術等の情報処理に関する専門領域の国家資格を複数保有しています。九州大学理学部卒業。日本ITストラテジスト協会正会員。

対象読者:

  • 統計学の基本的な概念を学びたい方
  • 頻度主義とベイズ主義の違いを知りたい方
  • データ分析の実務でどちらのアプローチを使うべきか悩んでいる方

記事のポイント:

  • 頻度主義とベイズ主義の「確率」の解釈の違いを明確にします
  • コイン投げのシミュレーションを通じて、両アプローチの具体的な計算方法を示します
  • それぞれの長所と短所を比較し、実務での使い分けの指針を示します
  • 仮説検定における両アプローチの違いと解釈について説明します

頻度主義とベイズ統計学の基本的な考え方

頻度主義統計学とベイズ統計学の最も重要な違いは、「確率」をどのように解釈するかという点にあります。

  • 頻度主義統計学: 確率を「無限回の試行における事象の相対頻度の極限」と定義します。
  • ベイズ統計学: 確率を「事象に対する信念の度合い(degree of belief)」として解釈します。

これらの違いは、以下の数式で表されます。

頻度主義統計学における確率:

P(A) = \lim_{n \to \infty} \frac{\text{事象Aの発生回数}}{n}

ベイズ統計学における事後確率:

P(\theta|D) = \frac{P(D|\theta)P(\theta)}{P(D)}

ここで、\theta はパラメータ(例えばコインの表が出る確率)、D は観測データ(例えばコイン投げの結果)を表します。ベイズの定理では、事前確率 P(\theta)(データを見る前のパラメータへの信念)と尤度 P(D|\theta)(パラメータが与えられた下でのデータの出現確率)を組み合わせて、事後確率 P(\theta|D)(データを見た後のパラメータへの信念)を計算します。

コイン投げ実験による実践的な比較

確率の解釈の違いを具体的に理解するため、「コインの表が出る確率」を推定する問題を考えます。

頻度主義的アプローチ

頻度主義的アプローチでは、コインを何度も投げ、表が出た回数の割合(相対頻度)を計算します。試行回数を増やすほど、相対頻度は真の確率に近づくと考えます。

def frequentist_coin_flips(n_flips, true_prob=0.5):
    """頻度主義的アプローチによるコイン投げシミュレーション"""
    flips = np.random.binomial(1, true_prob, n_flips)
    cumulative_heads = np.cumsum(flips)
    proportions = cumulative_heads / np.arange(1, n_flips + 1)
    return proportions

ベイズ統計的アプローチ

ベイズ統計的アプローチでは、まず表が出る確率 \theta に対する事前分布 P(\theta) を設定します。これは、コインを投げる前の \theta に関する信念を表します。次に、コイン投げの結果(データ)を観測し、尤度関数 P(D|\theta) を計算します。最後に、ベイズの定理を用いて事後分布 P(\theta|D) を計算します。

def bayesian_coin_flips(n_heads, n_trials):
    """ベイズ統計的アプローチによるコイン投げの確率分布計算"""
    theta = np.linspace(0, 1, 1000)
    prior = np.ones_like(theta)  # 一様事前分布
    likelihood = stats.binom.pmf(n_heads, n_trials, theta)
    posterior = likelihood * prior
    posterior /= np.trapz(posterior, theta)  # 正規化
    return theta, posterior

ここでは、事前分布として一様分布([0, 1] 上の全ての値が等しく確からしい)を使用しています。

実験結果の比較

上図は、1000回のコイン投げシミュレーションの結果です。

  • 左図 (頻度主義): コインを投げた回数に対する、表が出た割合の推移を示します。試行回数が増えるにつれて、割合は真の確率(この場合は0.5)に近づきます。
  • 右図 (ベイズ主義): 表が出る確率 \theta の事後分布を示します。この分布は、データを観測した後での \theta に関する信念を表します。最初は一様分布(平らな線)でしたが、データが増えるにつれて、真の確率付近にピークを持つ分布に変化します。

両アプローチの特徴と使い分け

特徴 頻度主義統計学 ベイズ統計学
確率の解釈 無限回の試行における相対頻度 信念の度合い
パラメータの扱い 固定値 確率変数(確率分布を持つ)
事前知識 使用しない 事前分布として使用する
データ量 大量のデータを必要とする 少ないデータでも推論可能
計算量 比較的少ない 場合によっては非常に多い(特に複雑なモデルの場合)
解釈 客観的(ただし、有意水準などの恣意的な設定が必要な場合がある) 主観的(事前分布の選択に依存する)だが、不確実性を定量的に表現できる
代表的な手法 仮説検定、信頼区間 ベイズ推定、ベイズ因子、信用区間

どちらのアプローチが優れているというわけではなく、問題の性質、利用可能なデータ、分析の目的に応じて使い分けることが重要です。

仮説検定における両アプローチの違い

統計的仮説検定は、データに基づいて仮説の妥当性を評価する手法です。頻度主義とベイズ主義では、仮説検定のアプローチも異なります。

頻度主義的仮説検定

頻度主義的アプローチでは、帰無仮説(H₀)と対立仮説(H₁)を設定し、帰無仮説の下で観測されたデータが得られる確率(p値)を計算します。p値が事前に設定した有意水準(α、通常は0.05)よりも小さい場合、帰無仮説を棄却し、対立仮説を採択します。

コインの公平性(表が出る確率が0.5)を検定する場合:

def frequentist_test(data, alpha=0.05):
    """頻度主義的な二項検定
    帰無仮説: p = 0.5 (公平なコイン)
    対立仮説: p ≠ 0.5 (不公平なコイン)
    """
    n = len(data)
    n_heads = np.sum(data)
    p_value = stats.binomtest(n_heads, n, p=0.5).pvalue
    return {
        'p_value': p_value,
        'reject_h0': p_value < alpha
    }

ベイズ統計的仮説検定

ベイズ統計的アプローチでは、仮説そのものに確率を割り当てます。事前分布と尤度関数から事後分布を計算し、事後分布に基づいて仮説の確からしさを評価します。
ROPE (Region of Practical Equivalence: 実質同等領域) を使う方法が一例です。

def bayesian_test(data, rope_width=0.05):
    """ベイズ的な検定
    ROPE (Region of Practical Equivalence) を用いたアプローチ
    rope_width: 実質的に等価とみなす範囲の幅(片側)
    """
    theta = np.linspace(0, 1, 1000)
    prior = np.ones_like(theta)  # 一様事前分布

    n = len(data)
    n_heads = np.sum(data)

    # 尤度と事後分布の計算
    likelihood = stats.binom.pmf(n_heads, n, theta)
    posterior = likelihood * prior
    posterior /= np.trapz(posterior, theta)

    # ROPEの範囲(0.5±rope_width)内の確率を計算
    rope_idx = (theta >= 0.5 - rope_width) & (theta <= 0.5 + rope_width)
    prob_in_rope = np.trapz(posterior[rope_idx], theta[rope_idx])

    return prob_in_rope

ROPEは、実質的に「差がない」とみなせるパラメータの値の範囲です。事後分布がROPE内にどれだけ含まれるかを計算し、その割合に基づいて仮説を評価します。

実験結果の比較


上図は、公平なコイン(p=0.5)と不公平なコイン(p=0.7)それぞれに対する両アプローチの検定結果の例です。

  • 頻度主義 (左図): 縦線はp値を、点線は有意水準(α=0.05)を示します。p値がαより小さい場合、帰無仮説(コインは公平)を棄却します。
  • ベイズ主義 (右図): \theta の事後分布とROPE(灰色の領域)を示します。事後分布の大部分がROPE内にある場合、「コインは実質的に公平である」と結論付けます。

両アプローチの解釈の違い

  • 頻度主義: 「帰無仮説が正しいと仮定した場合、観測されたデータ(またはより極端なデータ)が得られる確率」がp値。p値は、帰無仮説の証拠の強さを測る指標。
  • ベイズ主義: 事後分布は、「データと事前知識を考慮した上で、パラメータが特定の範囲にある確率」を表す。ROPEを用いた検定では、「パラメータが実質的に等価な範囲にある確率」を直接評価できる。

まとめ

頻度主義統計学とベイズ統計学は、確率の解釈、推論の方法、そして仮説検定のアプローチにおいて根本的に異なります。

  • 頻度主義: 客観性を重視し、データの頻度に基づいて推論を行う。
  • ベイズ主義: 主観的な事前知識を組み込むことができ、不確実性を確率分布として表現する。

実務では、以下の点を考慮して適切なアプローチを選択することが重要です。

  • データの量: データが豊富にある場合は、頻度主義的アプローチでもベイズ統計的アプローチでも、結果は似通ってくることが多い。データが少ない場合は、事前知識を活用できるベイズ統計的アプローチが有利な場合がある。
  • 事前知識の有無: 信頼できる事前知識がある場合は、ベイズ統計的アプローチがその知識を有効活用できる。事前知識がない、または客観性を重視したい場合は、頻度主義的アプローチが適している。
  • 不確実性の表現: 不確実性を確率分布として表現したい場合はベイズ統計的アプローチ、二値的な判断(棄却/非棄却)を行いたい場合は頻度主義的アプローチが適する。
  • 計算コスト: ベイズ統計は、複雑なモデルの場合、計算コストが高くなる場合がある。

近年では、両アプローチの長所を組み合わせた手法や、問題に応じて柔軟に使い分ける考え方が広まっています。

お気軽にご相談ください!

弊社のデジタル技術を活用し、貴社のDXをサポートします。

基本的な設計や実装支援はもちろん、機械学習・データ分析・3D計算などの高度な技術が求められる場面でも、最適なソリューションをご提案します。

初回相談は無料で受け付けております。困っていること、是非お聞かせください。