パソコン操作

最尤推定法の手順は?計算方法と求め方も!(アルゴリズム・微分・対数尤度・正規分布・ポアソン分布など)

当サイトでは記事内に広告を含みます

統計学やデータサイエンスの学習を進める中で、最尤推定の考え方は理解できたものの「実際にどうやって計算するのか」「具体的な手順がわからない」という声をよく聞きます。

最尤推定法の計算手順は、確率モデルの設定→尤度関数の立式→対数尤度への変換→微分してゼロとおく→方程式を解くという一連の流れで進みます。

この流れを正規分布・ポアソン分布・二項分布などの具体的な確率分布を例に取りながら実際に手を動かして計算することで、最尤推定法が確実に身につきます。

本記事では、最尤推定法の一般的な手順を丁寧に説明した上で、正規分布・ポアソン分布の具体的な最尤推定量の導出を詳しく解説します。

解析的に解けない場合の数値的アプローチ(EMアルゴリズム・勾配降下法など)についても触れ、実践的な計算力が身につく内容を目指しています。

数式が苦手な方も、一ステップずつ丁寧に解説しますのでぜひ最後まで読んでみてください。

目次

最尤推定法の手順の結論|5ステップで計算を進める

それではまず、最尤推定法の基本的な計算手順の全体像から解説していきます。

最尤推定法の計算は、以下の5つのステップに沿って進めます。

最尤推定法の5ステップ

Step 1:確率モデル(確率分布)を設定する

Step 2:尤度関数 L(θ) を立式する(各データの確率の積)

Step 3:対数尤度関数 ℓ(θ) = log L(θ) を求める(積→和に変換)

Step 4:ℓ(θ) をθで微分してゼロとおく(dℓ/dθ = 0)

Step 5:方程式を解いてθ̂(最尤推定量)を求める

この5ステップは、推定するパラメータが一つでも複数でも同じ流れで適用されます。

パラメータが複数の場合は偏微分を使い、各パラメータについての尤度方程式を連立して解きます。

5ステップの各概要

ステップ 内容 ポイント
Step 1 確率モデルの設定 データの性質から適切な分布を選ぶ
Step 2 尤度関数の立式 独立なら各確率の積 ∏f(xᵢ|θ)
Step 3 対数尤度への変換 積→和、計算が楽になる
Step 4 微分してゼロとおく 尤度方程式 dℓ/dθ = 0 を立てる
Step 5 θ̂を求める 方程式を解くか数値最適化を使う

正規分布の最尤推定量の導出

続いては、最も重要な確率分布の一つである正規分布のパラメータ(平均μと分散σ²)の最尤推定量を導出していきます。

正規分布の最尤推定は統計学の基礎として非常に重要な計算です。

正規分布の最尤推定|設定と尤度関数

【設定】

データ x₁, x₂, …, xn が正規分布 N(μ, σ²) に独立に従うとする。

正規分布の確率密度関数

f(x | μ, σ²) = (1/√(2πσ²)) × exp(-(x-μ)²/(2σ²))

【Step 2:尤度関数の立式】

L(μ, σ²) = ∏ᵢ f(xᵢ|μ, σ²)

    = ∏ᵢ (1/√(2πσ²)) × exp(-(xᵢ-μ)²/(2σ²))

対数尤度の計算と微分

【Step 3:対数尤度への変換】

ℓ(μ, σ²) = log L(μ, σ²)

    = Σᵢ [log(1/√(2πσ²)) – (xᵢ-μ)²/(2σ²)]

    = -(n/2)log(2π) – (n/2)log(σ²) – (1/(2σ²)) Σᵢ(xᵢ-μ)²

【Step 4:μで偏微分してゼロとおく】

∂ℓ/∂μ = (1/σ²) Σᵢ(xᵢ-μ) = 0

→ Σᵢ(xᵢ-μ) = 0

→ Σᵢxᵢ – nμ = 0

【Step 5:μの最尤推定量】

μ̂ = (1/n) Σᵢxᵢ = x̄ (標本平均)

正規分布の平均μの最尤推定量は標本平均 x̄ になります。

これは日常的に使う「データの平均値」が、正規分布を仮定した場合に最尤推定量であることを意味し、最尤推定の直感と一致するすっきりした結果です。

分散σ²の最尤推定量の導出

【σ²で偏微分してゼロとおく】

∂ℓ/∂(σ²) = -(n/(2σ²)) + (1/(2σ⁴)) Σᵢ(xᵢ-μ)² = 0

→ n/(2σ²) = Σᵢ(xᵢ-μ)²/(2σ⁴)

→ σ² = (1/n) Σᵢ(xᵢ-μ)²

μ̂ = x̄ を代入すると

σ̂² = (1/n) Σᵢ(xᵢ-x̄)²

正規分布の分散σ²の最尤推定量は(1/n)Σ(xᵢ-x̄)²となります。

注意が必要なのは、不偏分散は (1/(n-1))Σ(xᵢ-x̄)² であるのに対し、最尤推定量は (1/n) が係数になっており、最尤推定量は分散の不偏推定量ではないという点です。

これは最尤推定量の「不偏性を必ずしも持たない」という性質の代表的な例です。

ポアソン分布の最尤推定量の導出

続いては、カウントデータ(発生件数・到着数など)によく使われるポアソン分布のパラメータλの最尤推定量を導出していきます。

ポアソン分布の設定と対数尤度

【設定】

データ x₁, x₂, …, xn が独立にポアソン分布 Po(λ) に従うとする。

ポアソン分布の確率質量関数

f(x | λ) = λˣ × e^(-λ) / x! (x = 0, 1, 2, …)

【Step 2:尤度関数】

L(λ) = ∏ᵢ (λˣⁱ × e^(-λ) / xᵢ!)

【Step 3:対数尤度】

ℓ(λ) = Σᵢ [xᵢ log λ – λ – log(xᵢ!)]

   = (Σᵢxᵢ) log λ – nλ – Σᵢ log(xᵢ!)

ポアソン分布のλの最尤推定量

【Step 4:λで微分してゼロとおく】

dℓ/dλ = (Σᵢxᵢ)/λ – n = 0

【Step 5:最尤推定量を求める】

(Σᵢxᵢ)/λ = n

λ̂ = (Σᵢxᵢ)/n = x̄ (標本平均)

ポアソン分布のパラメータλの最尤推定量も標本平均 x̄になります。

これはポアソン分布の理論的な平均がλであることと整合しており、「観測データの平均で母平均を推定する」という直感的にも自然な結果です。

解析的に解けない場合の数値的アプローチ

続いては、尤度方程式が解析的(数式として)解けない場合の数値的な最尤推定のアプローチを確認していきます。

実際の複雑なモデルでは解析解が存在しないことが多く、数値最適化が必要になります。

勾配降下法による最尤推定

機械学習で広く使われる最適化手法が勾配降下法です。

最尤推定では対数尤度 ℓ(θ) を最大化したいため、勾配降下法の代わりに「勾配上昇法」として使います(または負の対数尤度を最小化する勾配降下法として実装します)。

勾配上昇法のアップデート則

θ(t+1) = θ(t) + η × ∂ℓ/∂θ

η:学習率(ステップサイズ)

勾配(∂ℓ/∂θ)の方向に θ を更新することを繰り返して最大値を探す。

これを「負の対数尤度の最小化」として書くと

θ(t+1) = θ(t) – η × ∂(-ℓ)/∂θ

(これが通常の勾配降下法の形)

EMアルゴリズムによる最尤推定

潜在変数(隠れた変数)が存在するモデルの最尤推定にはEMアルゴリズム(期待値最大化法)が使われます。

混合ガウスモデル・隠れマルコフモデル・主成分分析(一部)などが代表的な適用例です。

EMアルゴリズムはEステップ(期待値ステップ)とMステップ(最大化ステップ)を交互に繰り返すことで対数尤度を単調増加させ、局所最大値に収束します。

数値的手法 特徴 主な適用例
勾配降下法 汎用的・実装が簡単 ニューラルネットワーク・ロジスティック回帰
ニュートン法 収束が速い・二次微分が必要 統計モデルの最適化
EMアルゴリズム 潜在変数モデルに適する 混合ガウスモデル・HMM
BFGS法 準ニュートン法・効率が高い 中規模の統計最適化問題

実務では Pythonの scipy.optimize.minimize、Rのoptim関数、Stan(ベイズ推定との組み合わせ)などを使って最尤推定を数値的に実行することが多いです。

理論的な手順を理解した上でこれらのツールを活用することで、複雑なモデルにも対応できる実践的な統計解析の力が身につきます。

まとめ

本記事では、最尤推定法の具体的な計算手順について、5ステップの流れ・正規分布の最尤推定量の導出・ポアソン分布の最尤推定量の導出・数値的アプローチまで幅広く解説しました。

最尤推定法の基本手順は「確率モデル設定→尤度関数立式→対数尤度変換→微分してゼロ→方程式を解く」という5ステップで、この流れはどの確率分布でも共通して適用されます。

正規分布では平均μの最尤推定量が標本平均 x̄ に、ポアソン分布ではλの最尤推定量も標本平均 x̄ に一致するという直感的にも美しい結果が得られます。

解析解が存在しない場合は勾配降下法・ニュートン法・EMアルゴリズムなどの数値最適化手法を活用することで、複雑なモデルへも最尤推定を適用できます。

最尤推定法の計算の流れを身につけることは、統計モデリング・機械学習モデルの損失関数の理解・パラメータ最適化の基礎となる非常に重要なスキルです。

本記事が最尤推定法の計算の習得に役立てば幸いです。

ABOUT ME
white-circle7338
私自身が今まで経験・勉強してきた「エクセル」「ビジネス用語」「生き方」などの情報を、なるべくわかりやすく、楽しく、発信していきます。 一緒に人生を楽しんでいきましょう