混合分布モデルとは?
混合分布モデル(mixture model)とは、母集団が複数の異なる確率分布に由来するという仮定の下で、観測分布をそれらの「混合」として表すモデルです。代表形は有限混合分布です。
-
概念自体は1890年代から。
-
医薬生物・疫学で「当たり前に使う」感覚は,1920年代に負の二項(Po–Ga)が根付いて以降。
-
数理統計のカリキュラムで“混合=標準ツール”として広く常識化したのは,EM(1977)以後,1990〜2000年代に完全定着
-
2000年頃まで
EM は周知でも、主流は「正規+二乗誤差」。ヘビーテイルは Mandelbrot–Fama(1960s) で知られつつも、実務では $t$ やGH族は限られた領域(クオンツ、保険)止まり。econophysics(1990s) が“尾の厚さ”を可視化したが、統計学本流は「便利な近似」として脇に置きがち。 -
今(実務・研究ともに明確に様相が違う)
“ただのフィット”ではなく、意思決定に直結する理由でヘビーテイル/混合が採用されています。
何が変えたか(本質)
- 意思決定の評価軸が尾部へ移動
リスク管理・レギュレーション(ストレステスト、尾部VaR/ES)、サプライチェーン、パンデミック、サイバー/気候リスク—尾側の誤差が致命的。
→ $t$・Lomax・GH族・EVT、$t$コピュラ等が標準選択肢に。 - データが“素で”ヘビーテイル
Web計量、レイテンシ、売上のラスパイレス型分布、医療費・滞在日数、クレーム額など。ゼロ膨張・過分散・重尾が常態。
→ ポアソン–ガンマ(負の二項)、指数–ガンマ(Lomax)、混合ゼロ膨張がデフォルトに。 - ロバスト性と分布ずれ(shift)への要求
A/B テストや因果推論で外れ値耐性がKPIに直結。
→ $t$尤度・Huber損失・分散混合正規、$t$-GLMM、重尾事前(horseshoe/Laplace/$t$)が普及。 - モデル検証の文化変化
予測分布の校正(PIT、PPDチェック)、tail-focused metrics(上位分位誤差、ES)、決定理論的評価が一般化。
→ “当たりの良い平均近似”より“尾で外さない”。
どこで混合/重尾がデフォルト化したか(例)
- 金融:$t$-GARCH、GH/NI G、$t$コピュラ、EVT統合VaR/ES。
- 医薬生物:過分散→負の二項、待ち時間の重尾→Lomax、ランダム効果→正規–正規(メタ解析)。
- テック/プロダクト:ロバスト回帰・重尾尤度のA/B、ゼロ膨張/混合回帰。
- 機械学習:分布外・外れ値耐性、重尾事前でスパース推定、正規の分散混合としての$ t $が標準武器。
なぜそこで効くか(共通構造)
- 異質性の周辺化:$X\mid\phi$ を平均して $f_X(x)=\int f(x\mid\phi)dG(\phi)$。個体差・文脈差を統合。
- 過分散・重尾・多峰性への対応:Po–Ga $\Rightarrow$ 負の二項、Exp–Ga $\Rightarrow$ ロマックス、Nor–InvGa $\Rightarrow$ $t$。
- 推定が回る:EM/VI/MCMCで大規模でも実用(ランダム効果、ゼロ膨張、有限混合)。
代表モデルと“症状”の対応
- 負の二項(Po–Ga):カウントで $S^2>\bar X$。
- ロマックス/パレートII(Exp–Ga):待ち時間・費用の重尾。
- $t$・GH 族(正規の分散混合):外れ値に強い連続量。
- GMM・混合回帰:多峰性・潜在クラスタ。
- ZIP/ZINB:零が多い計数。
- フレイルティ/ランダム効果:層間ばらつき・試験差。
定義(有限混合)
$K$ 成分の混合を
$$
f(x)=\sum_{k=1}^K \pi_k f_k(x;\theta_k),\qquad
\pi_k\ge 0,\ \sum_{k=1}^K\pi_k=1
$$
で与える。ここで $f_k(\cdot;\theta_k)$ は第 $k$ 成分の密度(例:正規分布)、$\pi_k$ は混合比(混合重み)。
階層表現(潜在変数)
潜在ラベル $Z\in{1,\dots,K}$ を導入:
$$
P(Z=k)=\pi_k,\qquad X\mid Z=k \sim f_k(\cdot;\theta_k).
$$
周辺化すると $X$ の密度は上式の $f(x)$ に一致。
混合分布が「数理」でも「医薬生物学」でも頻出になる構造的理由を、理論・統計モデリング・応用の三層で要点化します。
- 理論的に“核”にいるから
- 周辺化=不確実性の統合
未観測の異質性(潜在パラメータやクラス)を確率変数化し、周辺化(積分/総和)で観測分布を作るのが混合。統計の根本操作 $f(x)=\int f(x\mid \phi)dG(\phi)$ の練習台です。
すると自動的に
$$E[X]=E_\phi[E[X\mid\phi]],\quad \mathrm{Var}(X)=E_\phi[\mathrm{Var}(X\mid\phi)]+\mathrm{Var}_\phi(E[X\mid\phi])$$
が立ち、分散が膨らむ/尾が厚くなる/多峰性が出る等の“現象学”が一発で説明できます。 - 普遍近似性
有限混合(特にガウス混合)は任意の連続密度を近似できる(密度推定の基底)。 - 閉形式が豊富(可積分)
ガンマ・ベータとの共役組で解析的に閉じる。
例:ポアソン–ガンマ→負の二項、二項–ベータ→ベータ二項、正規–逆ガンマ→$t$(コーシー含む)、指数–ガンマ→Lomax。試験で計算と洞察が両立します。
-
数理 2024 問4 [4]–[5]
指数–ガンマ混合:f_X(x)=\int_0^\infty \underbrace{\lambda e^{-\lambda x}}_{X\mid\lambda} \underbrace{\frac{\beta^\alpha}{\Gamma(\alpha)}\lambda^{\alpha-1}e^{-\beta\lambda}}_{\lambda}d\lambda =\frac{\alpha\beta^\alpha}{(\beta+x)^{\alpha+1}}(Lomax/Pareto II)。この周辺化を使って $E[X]$ の存在条件・値を求める。
-
数理 2022 問3 [3]–[5]
ポアソン–ガンマ混合:P(X=k)=\int_0^\infty \underbrace{\frac{e^{-\lambda}\lambda^k}{k!}}_{X\mid\lambda} \underbrace{\frac{\beta^\alpha}{\Gamma(\alpha)}\lambda^{\alpha-1}e^{-\beta\lambda}}_{\lambda}d\lambda =\binom{k+\alpha-1}{k}\Big(\tfrac{\beta}{\beta+1}\Big)^\alpha\Big(\tfrac{1}{\beta+1}\Big)^k(負の二項)。周辺化→モーメント→MoM 推定まで一貫。
-
医薬生物学 2022 問3
同じくポアソン–ガンマ混合(周辺化で負の二項を導出)。 -
医薬生物学 2022 問4
ベータ二項分布:πによる連続混合でベイズの事前-予測分布 -
医薬生物学 2023 問3
正規–正規のランダム効果:
$$Y_k\mid\theta_k\sim N(\theta_k,\sigma_k^2),\ \theta_k\sim N(\theta,\tau^2)
\ \Rightarrow\ Y_k\sim N(\theta,\ \tau^2+\sigma_k^2)$$
潜在 $\theta_k$ を周辺化して単一の正規に落とす($\mathrm{Var}$ が足し合わさる)。
注意:混合“的”だが周辺化を問わない例
- 数理 2023 問2[2](コーシー)
$X=Z/\sqrt{Y_1}$ から変数変換で密度を出す設計。コーシーは正規のスケール混合表現を持ちますが、この設問は周辺化を使わない導出です。
混合分布として成り立つ有名な確率分布として離散/連続に分け、典型的な混合形を併記します。
離散型
- 負の二項分布(ポアソン–ガンマ混合)
$$X\mid \lambda\sim \mathrm{Po}(\lambda)\ \lambda\sim \mathrm{Ga}(\alpha\beta)\ \Rightarrow\ X\sim \mathrm{NegBin}.$$ - ベータ–二項分布(二項–ベータ混合)
$$X\mid p\sim \mathrm{Bin}(n,p)\ p\sim \mathrm{Beta}(a,b)\ \Rightarrow\ X\sim \mathrm{Beta\text{-}Bin}. $$ - ディリクレ–多項分布(多項–ディリクレ混合)
$$\mathbf{X}\mid \mathbf{p}\sim \mathrm{Mult}(n\mathbf{p})\ \mathbf{p}\sim \mathrm{Dir}(\boldsymbol\alpha).$$ - ZIP/ゼロ膨張ポアソン(有限混合)
$$P(X=0)=\pi+(1-\pi)e^{-\lambda},\quad P(X=x\ge1)=(1-\pi)e^{-\lambda}\frac{\lambda^x}{x!}.$$ - ポアソン–対数正規混合(オーバーディスパージョン対処)
$$X\mid \Lambda\sim \mathrm{Po}(\Lambda), \log \Lambda\sim N(\mu\sigma^2).$$
連続型
- スチューデントの$t$分布(正規–逆ガンマのスケール混合)
$$X\mid V\sim N(\mu,V) V\sim \mathrm{Inv\text{-}Ga}\left(\tfrac{\nu}{2},\tfrac{\nu\sigma^2}{2}\right)\Rightarrow X\sim t_\nu(\mu,\sigma).$$
※$\nu=1$でコーシー分布($t_1$)。 - ラプラス(両側指数)(正規の分散指数混合)
$$X\mid \tau\sim N(\mu,\tau) \tau\sim \mathrm{Exp}\left(\tfrac{1}{2}b^{2}\right)\Rightarrow X\sim \mathrm{Laplace}(\mu,b).$$ - ハイパー指数(hyperexponential)(有限混合の指数分布)
$$f(x)=\sum_{k=1}^K\pi_k\lambda_k e^{-\lambda_k x}\ (x>0).$$ - ロマックス/パレートII(指数–ガンマ混合;ヘビーテール)
$$X\mid \Lambda\sim \mathrm{Exp}(\Lambda) \Lambda\sim \mathrm{Ga}(\alpha,\beta)\Rightarrow X\sim \mathrm{Lomax}(\alpha,\beta).$$ - 正規の分散–平均混合(GH族)
一般形:
$$X=\mu+\beta W+\sqrt{W}Z,\quad Z\sim N(0,\Sigma),\quad W\sim \mathrm{GIG}(p,a,b).$$
特例:Variance–Gamma, Normal–Inverse–Gaussian, Hyperbolic など。 - ガウス混合モデル(GMM)(有限混合の正規)
$$f(x)=\sum_{k=1}^K \pi_k\mathcal{N}(x\mid \mu_k\Sigma_k).$$
時系列・構造
- HMM(隠れマルコフモデル):各時点の観測は「その時点の潜在状態」による有限混合。
- 混合回帰/混合GLM:条件付き分布 $f(y\mid x)$ をコンポーネントごとに持つ有限混合。
要点:$f(x)=\sum_k \pi_k f_k(x)$(有限混合)や $f(x)=\int f(x\mid \phi)dG(\phi)$(連続混合)へ落ちるものは「混合分布」として成り立ちます。負の二項・ベータ二項・$t$/コーシー・ラプラス・GH族・GMM・ZIPが特に実務で頻出です。
実用性で絞った“本命”です(各項目に識別式と出題ポイントを付記)。
-
ポアソン–ガンマ混合 ⇒ 負の二項分布
$$P(X=k)=\binom{k+\alpha-1}{k}\Big(\tfrac{\beta}{\beta+1}\Big)^\alpha\Big(\tfrac{1}{\beta+1}\Big)^k$$
出題ポイント:$S^2>\bar X$ の過分散、$E[X]=\alpha/\beta$、$\mathrm{Var}(X)=\alpha/\beta+\alpha/\beta^2$、MoM推定($S^2>\bar X$が必要)。 -
二項–ベータ混合 ⇒ ベータ二項分布
$$P(X=k)=\binom{n}{k}\frac{B(k+a,n-k+b)}{B(a,b)}$$
出題ポイント:集団内異質な成功確率、$E[X]=n,a/(a+b)$、$\mathrm{Var}$ の過分散、ベータ関数と$\Gamma$の使い分け。 -
正規–逆ガンマ(分散の混合)⇒ スチューデント$t$($\nu$自由度)
$$X\mid V\sim N(\mu,V),\ V\sim \mathrm{Inv\mbox{-}Ga} \ \Rightarrow\ X\sim t_\nu$$
出題ポイント:重尾・ロバスト、$\nu=1$でコーシー、周辺化で正規の分散が足しこまれる直観。 -
正規–正規(ランダム効果)⇒ 周辺は正規
$$Y\mid \theta\sim N(\theta,\sigma^2),\ \theta\sim N(\mu,\tau^2)\Rightarrow Y\sim N(\mu,\sigma^2+\tau^2)$$
出題ポイント:メタ解析、$Q$統計と$\tau^2$、$\mathrm{Var}(Y)=E[\mathrm{Var}]+ \mathrm{Var}(E)$ の確認。 -
指数–ガンマ混合 ⇒ Lomax(Pareto II)
$$f(x)=\frac{\alpha\beta^\alpha}{(\beta+x)^{\alpha+1}},\ x>0$$
出題ポイント:待ち時間の重尾、$E[X]$存在条件($\alpha>1$)、$E[X]=\beta/(\alpha-1)$。 -
複合ポアソン(頻度×損失)
$$N\sim \mathrm{Po}(\lambda),\ {Y_i}\ \text{iid}\ \Rightarrow\ S=\sum_{i=1}^N Y_i$$
出題ポイント:$M_S(t)=\exp{\lambda(M_Y(t)-1)}$、保険・クレーム集計、ゼロ質量の扱い。 -
ゼロ膨張ポアソン(有限混合)
$$P(X=0)=\pi+(1-\pi)e^{-\lambda},\ \ P(X=x\ge1)=(1-\pi)e^{-\lambda}\lambda^x/x!$$
出題ポイント:ゼロ過多検出、$\pi$と$\lambda$の推定、過分散との違い。 -
ハイパー指数(指数の有限混合)
$$f(x)=\sum_{k=1}^K \pi_k \lambda_k e^{-\lambda_k x}$$
出題ポイント:異なるレートの混在、直列・並列系の信頼性近似、ラプラス変換での和。 -
ディリクレ–多項混合 ⇒ ディリクレ多項分布
$$\mathbf{X}\mid \mathbf{p}\sim \mathrm{Mult}(n,\mathbf{p}),\ \mathbf{p}\sim \mathrm{Dir}(\boldsymbol\alpha)$$
出題ポイント:カテゴリ過分散、$E[X_j]=n\alpha_j/\alpha_0$、分散・共分散の形。 -
正規の分散–平均混合(Generalized Hyperbolic, Variance–Gamma, NIG)
一般形 $X=\mu+\beta W+\sqrt{W},Z$($Z\sim N$、$W$はGIG 等)
出題ポイント:重尾・歪度の同時表現、$t$を包含、密度の同定よりも“混合の構造”を問われがち。
横断で“頻出”の計算・論点
- 周辺化の型:$f(x)=\int f(x\mid\phi),dG(\phi)$、$E[X]=E_\phi[E[X\mid\phi]]$、$\mathrm{Var}(X)=E[\mathrm{Var}]+\mathrm{Var}(E)$。
- 定番積分:$\displaystyle \int_0^\infty \lambda^{a-1}e^{-c\lambda}d\lambda=\Gamma(a)c^{-a}$。
- 過分散の検出:$S^2>\bar X$(Poisson系)、ゼロ過多の判定。
- MoM/MLE/EM:負の二項やLomaxはMoMが一撃、有限混合はEMの初期化にMoM。
- パラメータ化の注意:ガンマのrate/scale、負の二項の$(r,p)$表記の揺れ。
統計検定1級:分布の関係マップ(日本語・重なり最小化版)
変更点:
- 注記は最小限(凡例に集約)
- 座標を再配置・キャンバス拡大
- 文字サイズ調整&注記の微オフセット
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle, FancyArrowPatch
from matplotlib import font_manager as fm
---- 日本語フォント自動検出 ----
CANDIDATES = ["Noto Sans CJK JP","Noto Sans JP","IPAexGothic","Yu Gothic",
"MS Gothic","Hiragino Sans","Hiragino Kaku Gothic ProN","TakaoGothic"]
def pick_font():
for f in fm.findSystemFonts(fontext='ttf'):
try:
n = fm.get_font(f).family_name
if n in CANDIDATES:
return n
except Exception:
pass
return None
jp = pick_font()
if jp:
plt.rcParams["font.sans-serif"] = [jp]
plt.rcParams["font.family"] = "sans-serif"
plt.rcParams['figure.dpi'] = 180
plt.rcParams['font.size'] = 9
---- レイアウト(広め) ----
fig, ax = plt.subplots(figsize=(16, 10)) ←幅広に
nodes = {
離散(左列を縦に間隔広め)
"多項分布": (-12, 3.6),
"ディリクレ多項": (-12, 1.6),
"ベータ二項": (-12, -0.2),
"ゼロ膨張ポアソン": (-12, -2.2),
"二項分布": (-9.2, 2.6),
"ポアソン分布": (-9.2, 0.2),
"負の二項分布": (-9.2, -2.2),
連続(中央クラスターを上下に展開)
"一様分布": (-2.5, 4.6),
"正規分布": (0.0, 3.4),
"カイ二乗分布": (3.6, 2.4),
"t分布": (0.0, 1.2),
"コーシー分布": (0.0, -0.4),
"F分布": (3.6, 0.0),
"ラプラス分布": (-2.5, 1.2),
指数族(右列も縦に間隔広め)
"指数分布": (8.0, 3.6),
"ワイブル分布": (11.0, 3.6),
"ガンマ分布": (8.0, 2.0),
"逆ガンマ分布": (11.0, 2.0),
"ベータ分布": (8.0, 0.4),
"ロマックス(パレートII)": (11.0, 0.4),
"対数正規分布": (11.0, -1.8),
}
def box(label, xy, w=2.5, h=0.9):
x, y = xy
ax.add_patch(Rectangle((x-w/2, y-h/2), w, h, ec='black', fc='white', zorder=2))
ax.text(x, y, label, ha='center', va='center', zorder=3)
for k,xy in nodes.items():
box(k, xy)
def link(a, b, txt=None, curve=0.0, yoff=0.14):
x1,y1 = nodes[a]; x2,y2 = nodes[b]
ax.add_patch(FancyArrowPatch((x1,y1),(x2,y2),
connectionstyle=f"arc3,rad={curve}", arrowstyle='->', mutation_scale=10, lw=1, zorder=1))
if txt: 注記は最小限のみ
xm, ym = (x1+x2)/2, (y1+y2)/2
ax.text(xm, ym+yoff, txt, ha='center', va='bottom', fontsize=8, zorder=3)
---- 矢印(注記は極力削減;凡例に集約)----
離散
link("二項分布","ポアソン分布","n→∞, p→0, np=λ",0.0,0.2)
link("二項分布","ベータ二項", "混合", 0.18)
link("多項分布","ディリクレ多項","混合", 0.18)
link("ポアソン分布","負の二項分布","混合",-0.12)
link("ポアソン分布","ゼロ膨張ポアソン","有限混合",-0.20,0.20)
連続(中央):t/χ²/F 周辺は特に重なりやすいので注記を短縮
link("正規分布","カイ二乗分布","平方和→χ²",0.10,0.22)
link("カイ二乗分布","t分布","N/√(χ²/ν)",-0.12,0.20)
link("t分布","コーシー分布","ν=1",0.0,0.16)
link("カイ二乗分布","F分布","比",0.0,0.16)
link("正規分布","t分布","スケール混合",0.22,0.16)
link("正規分布","ラプラス分布","分散の指数混合",-0.26,0.16)
指数族
link("指数分布","ガンマ分布","特例 k=1",0.02,0.20)
link("ガンマ分布","カイ二乗分布","χ²(ν)=Ga(ν/2,1/2)",-0.24,0.18)
link("ガンマ分布","逆ガンマ分布","逆変換",0.10,0.14)
link("指数分布","ワイブル分布","一般化",0.08,0.14)
link("指数分布","ロマックス(パレートII)","混合(レート)",-0.04,0.20)
link("対数正規分布","ポアソン分布","→Poisson–Lognormal",0.24,0.22)
近似
link("二項分布","正規分布","CLT(標準化)",0.04,0.24)
link("ポアソン分布","正規分布","正規近似",-0.10,0.24)
余白・凡例
ax.set_xlim(-13.5, 12.8)
ax.set_ylim(-3.2, 5.2)
ax.axis('off')
ax.set_title("統計検定1級:分布の関係マップ(重なり最小化)", pad=12)
legend = (
"凡例:矢印の意味\n"
"・極限/近似:二項→ポアソン、二項/ポアソン→正規(CLT)\n"
"・混合:ベータ二項、ディリクレ多項、負の二項、ゼロ膨張ポアソン\n"
"・変換/比:正規→χ²(平方和)、χ²→t(N/√(χ²/ν))、χ²比→F\n"
"・特例:t(ν=1)=コーシー、指数はガンマの特例(k=1)"
)
ax.text(-13.2, -2.9, legend, fontsize=8, ha='left', va='bottom')
plt.tight_layout()
plt.savefig("distribution_map_ja_v3.png", bbox_inches='tight')
plt.savefig("distribution_map_ja_v3.pdf", bbox_inches='tight')
print("保存: distribution_map_ja_v3.png / distribution_map_ja_v3.pdf")
参考
Python3ではじめるシステムトレード【第2版】環境構築と売買戦略
「画像をクリックしていただくとpanrollingのホームページから書籍を購入していただけます。
「画像をクリックしていただくとpanrollingのホームページから書籍を購入していただけます。」
