
NBDモデルとは?計算方法と活用事例をシミュレーターで解説
「どの顧客がまた買ってくれるのか」「離れそうな顧客はだれか」
NBD(Negative Binomial Distribution)モデルなら、過去の購買データから将来の購入回数や“まだ顧客である確率”を推定する確率モデルです。
本稿では、基礎→実践→発展の順で整理し、最後に簡易シミュレーターで手触りまで確認できます。
1. NBDモデルの基本
1-1. NBDモデルとは?過去の購買データから顧客の将来行動を予測する

NBDモデルは、**「過去の購買履歴から顧客が将来どれくらい購入するか」**を確率的に推定する手法です。
契約がない都度購入型ビジネスでは「離脱したのか、単に買っていないだけなのか」が曖昧ですが、NBDはその不確実性を定量化できます。
- 入力:顧客ごとの「リピート回数」「最後の購入からの期間」「観測開始から現在までの期間」
- 出力:顧客が「今もアクティブである確率」「将来の購入回数の見込み」
(補足)NBDモデルの統計的な背景
NBDは *Negative Binomial Distribution(負の二項分布)* の略です。 これは、(1)各顧客の購買は一定のペース(ポアソン分布)で発生するが、(2)その購買ペース自体は顧客ごとに異なる(ガンマ分布)、という仮定を組み合わせることで導出されます。 結果として「ほとんど買わない顧客が多い一方、一部のヘビーユーザーは頻繁に買う」という実際の購買パターンをよく表現できます。1-2. なぜマーケティングで役立つのか?(3つのメリット)
優良顧客の見極め
将来購入が見込める顧客を特定し、重点的にアプローチできます。
離脱防止
「今も顧客である確率」が低い顧客を抽出し、復帰キャンペーンやリマインドを行えます。
広告費の最適化
短期的な見込み利益から許容CPA(顧客獲得単価)を逆算し、効率的な広告投資判断に活用できます。
1-3. NBD・BG/NBD・Pareto/NBDの違い
NBDにはいくつかのバリエーションがあります。以下の表で比較すると違いが明確になります。
モデル | 特徴 | 離脱の扱い | 向いているケース |
---|---|---|---|
NBD | シンプルで基本形。 | 離脱の概念を直接扱わない。 | 離脱が少ないビジネスの短期予測。 |
BG/NBD | 購買直後に離脱の可能性を仮定。 | 購買と離脱を二重にモデル化。 | 一般的なECサイトなど都度購入型ビジネス。 |
Pareto/NBD | 顧客はいつでも離脱可能と仮定。 | 連続的な離脱プロセスをモデル化。 | 契約がなく顧客が自由に離脱しうる長期予測や理論的検証。 |
1-4. このモデルが効きやすい/効きにくいビジネス
効きやすいビジネス
- ECの消耗品や日用品(食品・化粧品など)
- 実店舗の高頻度来店(カフェ・ドラッグストアなど)
- アプリ内課金など利用頻度にムラのあるサービス
効きにくいビジネス(別モデル推奨)
- サブスクリプション型(解約率分析が適切)
- 高額耐久商品(購入周期が長すぎる)
- 単発イベント商品(ブライダル、受験など)
これらの効きにくいビジネスはNBDモデルはおすすめしません。別モデルを検討してください。
2. NBDモデルの実践
2-1. 実務イメージ(要点)
- 課題:優良顧客と離脱顧客の見分けがつかない
- 施策:NBDモデルで「将来購買」と「生存確率」を推定
- 結果:離脱リスク顧客に復帰クーポン、安定顧客にまとめ買い提案 → 売上改善
2-2. 【触ってわかる】リピート予測シミュレーター(簡易)
事例ボタンで自動入力 → 「計算する」で将来回数や P(alive) を確認できます。
シミュレーター結果の読み方と実用的な使い方
- 今後1年間の期待購入回数
→ 1.0回を超える顧客は「優良層」。まとめ買いや新商品の提案を検討する。 - 「いまも顧客である」確率 (P(alive))
→ 50%未満は離脱リスク大。復帰クーポンや在庫リマインドの対象にする。
2-3. 計算に必要なデータと準備方法
NBDモデルを実務で使うには、最低限以下のデータが必要です。
- 総購入回数(x):顧客ごとのリピート回数(初回除く)
- 初回→最終購入までの期間(tₓ):最初と最後の購買の間の日数
- 初回→観測終了までの期間(T):最初の購買からデータ観測終了時点までの日数
これらを顧客ID単位で集計したデータフレームを作成すれば、NBD計算が可能になります。
2-4. 計算ツールの選択肢(+最小コード例)
- Excel:関数やアドインを用いた簡易分析
- Python(lifetimesライブラリ):BG/NBDやPareto/NBDを含む本格分析が可能
# --- Python (lifetimes) のサンプル ---
from lifetimes import BetaGeoFitter
bgf = BetaGeoFitter()
bgf.fit(summary['x'], summary['tx'], summary['T'])
summary['predicted_purchases'] = bgf.predict(30, summary['x'], summary['tx'], summary['T'])
3. 発展情報と次のステップ
3-1. より発展的な予測モデル
NBDモデルは万能ではないため、ビジネスの課題によっては以下のモデルを検討してください。
- BG/NBDモデル:離脱を「購買直後に起こりやすい」と仮定する発展版。
- CNBD-kモデル:離脱率が時間で変動することも考慮可能。
- Gamma-Gammaモデル:購買金額も含めたLTV予測に拡張できる。
3-2. まとめ:NBDモデル活用への第一歩
- NBDモデルは「過去の購買 → 将来の確率的予測」に強みがある。
- 難しい数式を知らなくても、シミュレーターで体感しながら応用できる。
- 自社データで試し、優良顧客特定・離脱防止・広告費最適化に活かすことが第一歩。
3-3. よくある質問(FAQ)
Q1. 新規顧客にもNBDモデルは使えますか?
A. できません。最低2回以上の購買がある顧客が対象です。
Q2. セール時期など、特殊な要因で購買が増えた場合どうすればいいですか?
A. NBDは外部要因を直接扱えません。販促効果を分析するには階層ベイズなど高度なモデルを検討してください。
Q3. サブスクリプションビジネスとの違いは何ですか?
A. サブスクは「解約率」で分析できますが、NBDは「離脱が不明な都度購入ビジネス」で顧客の生存確率を推定するのに適しています。
参考:本記事で用いた記号
- x:総購入回数(定義は要件に合わせて)
- tₓ:最後の購入から今日まで
- T:初回購入から今日まで
- h:将来を見たい期間(horizon)

本コンテンツはコンテンツ制作ポリシーにそって、当社が独自の基準に基づき制作しています。 >>コンテンツ制作ポリシー