1

NBDモデルの解説

119
0

はじめに

マーケティング(marketing)で使われる「NBDモデル」についてまとめました。

NBDモデルとは、次のような数理モデルです。

一定期間において消費者の商品Aの購入回数をXとするときに、その確率分布をXNB(κ,p)と仮定します。κpは"拡張された負の二項分布"のパラメータです。
このとき、2つの初期値

  • 消費者の購入回数の期待値(または平均):μ=E(X)
  • 消費者が0回購入する割合(相対度数):p0=P(X=0)

からパラメータκpを決定します。これより消費者が商品Aをx回購入する割合(相対度数)P(X=x) を求めることが出来ます。

μ,κはギリシャ文字で、それぞれミュー(mu)、カッパ(kappa)と読みます。

もくじ

  1. 負の二項分布とは?
  2. NBDモデル
  3. NBDモデルの例
  4. パラメータを求める方法
  5. まとめ

負の二項分布とは?

まず、確率論における二項分布(Binomial Distribution)を復習しましょう。

二項分布

p0<p<1を満たす実数とします。nは正の整数とします。

アタリの確率がpのくじにて、n回引くときのx回アタリを引く回数をXとします。このとき、XB(n,p)と表します。

Xが取りうる値xx=0,1,2,,nです。

X=xとなる確率P(X=x)は、

P(X=x)=n!x!(nx)!px(1p)nx

となります。

二項分布の期待値μ=E(X)

XB(n,p)ならば、μ=E(X)=npが成り立ちます。

二項分布の分散σ2=Var(X)

XB(n,p)ならば、σ2=Var(X)=np(1p)が成り立ちます。

二項分布の期待値と分散の関係

0<p<1よりσ2<μが成り立ちます。期待値μを固定したときに、分散σ2μを上回ることが出来ません。

期待値E(X)の計算は、n=1,2,3の場合で成り立つか確認すると良いでしょう。一般のnの場合は二項定理を使って証明できます。

具体例でみてみましょう。

サイコロを続けて6回振るときの1の目が出る回数をXとします。
p=16,n=6より、x=0,1,2,3,4,5,6に対して、
P(X=x)=6!x!(6x)!(16)x(56)6x
となります。確率分布表は次のようになります。

xの値P(X=x)の値x×P(X=x)の値
00.33490.0000
10.40190.4019
20.20090.4019
30.05360.1608
40.00800.0322
50.00060.0032
60.00000.0001
合計1.00001.0000

確かに確率の和は1になっており、Xの期待値μ=E(X)=1もわかります。
公式より、

  • μ=E(X)=6×16=1
  • σ2=Var(X)=6×16×56=56

と計算できます。

!FORMULA[51][-1143705460][0]の確率分布(!FORMULA[52][328485552][0]) B(6,16)の確率分布(μ=1)

サイコロを6回振ったら1はちょうど1回出そうですが、その確率は約40%です。1回も出ない確率が約33%もあります。2回出る確率は約20%で、3回出る確率は約5%です。4回出る確率は1%もありません。

次は、負の二項分布(Negative Binomial Distribution)です。普通の二項分布と同じくらい基本的な確率分布です。

負の二項分布

p0<p<1を満たす実数とします。rは正の整数とします。

アタリの確率がpのくじにて、r回アタリが出るまで引くときのハズレの引く回数をXとします。このとき、XNB(r,p)と表します。

Xが取りうる値xx=0,1,2,3,4,です。

X=xとなる確率P(X=x)は、

P(X=x)=(x+r1)!x!(r1)!(1p)xpr

となります。

負の二項分布の期待値μ=E(X)

XNB(r,p)ならば、μ=E(X)=r(1p1)が成り立ちます。

負の二項分布の分散σ2=Var(X)

XNB(r,p)ならば、σ2=Var(X)=r1p(1p1)が成り立ちます。

負の二項分布の期待値と分散の関係

0<p<1よりμ<σ2が成り立ちます。期待値μを固定したときに、分散σ2μを下回ることが出来ません。

負の二項分布の期待値の計算の導出は無限級数(数列の無限和)を扱うので、少なくとも数Ⅲの知識が必要です。r=1の場合は、無限等比級数なので数Ⅲまでの知識で計算できます。r>1の場合は、(高校数学を超える)負の二項定理を使います。

こちらも具体例でみてみましょう。

サイコロを1の目が出るまで振るときの、1以外の目の出る回数をXとします。

p=16,r=1より、
P(X=x)=(56)x16
となります。確率分布表は次のようになります。

xの値P(X=x)の値x×P(X=x)の値
00.16670.0000
10.13890.1389
20.11570.2315
30.09650.2894
40.08040.3215
50.06700.3349
60.05580.3349
合計1.00005.0000

確率の和が1であるかはこの表から分かりませんが、計算により確認できます。

期待値がμ=E(X)=5であるかも表からは分かりませんが、公式より

  • μ=E(X)=1×(61)=5
  • σ2=Var(X)=1×6×(61)=30

と計算できます。

!FORMULA[92][-1531885001][0]の確率分布(!FORMULA[93][328485676][0]) NB(1,16)の確率分布(μ=5)

1回目で1が出る確率は約17%です。期待値の5回までに出る確率は約67%です。期待値を超えてしまう割合が約33%もあります。

"拡張された負の二項分布"

p(0,1)κ(0,)とします。

Xが取りうる値xx=0,1,2,3,4,です。

X=xとなる確率P(X=x)は、

P(X=x)=Γ(x+κ)x!Γ(κ)(1p)xpκ

を満たすとき、このときXは"拡張された負の二項分布"に従うと言います。

また、XNB(κ,p)と表します。

ガンマ関数y=Γ(x)の性質より、κが正の整数のとき負の二項分布と一致します。

ガンマ関数y=Γ(x)の定義とその性質

関数y=Γ(x)x(0,)において、
Γ(x)=0tx1etdt
と積分によって定義される関数でガンマ関数と呼ばれます。

定義よりΓ(1)=1Γ(x+1)=xΓ(x)という関係式が得られます。

これらより正の整数nに対して、Γ(n)=(n1)!という関係式が得られます。このことから、ガンマ関数y=Γ(x)は階乗の数列an=(n1)!の一般化と見なすことが出来ます。

拡張された負の二項分布の期待値や分散の公式も、負の二項分布の期待値や分散と同様の形で成り立ちます。

"拡張された負の二項分布"の期待値μ=E(X)

XNB(κ,p)ならば、μ=E(X)=κ(1p1)が成り立ちます。

"拡張された負の二項分布"の分散σ2=Var(X)

XNB(κ,p)ならば、σ2=Var(X)=κ1p(1p1)が成り立ちます。

"拡張された負の二項分布"の別形式

μ=E(X)=κ(1p1)pについて解くと、p=κμ+κを得ます。これを"拡張された負の二項分布"の式に代入すると、
P(X=x)=Γ(x+κ)x!Γ(κ)(μμ+κ)x(κμ+κ)κ
を得ます。このとき、

  • E(X)=μ
  • Var(X)=μ+μ2κ

となります。

このようにμ,κをパラメータとして"拡張された負の二項分布"を考えることもあります。このとき、μは期待値そのものであり、κは分散に関連する量です。これより、κが"分布の形状を決める"ということもできます。

NBDモデル

一定期間における商品Aの購入回数に関する度数分布が与えられているとしましょう。
このとき、平均購入回数μ購入回数0回の割合(相対度数)p0を求められます。

逆に、商品Aの平均購入回数μと購入回数0回の割合(相対度数)p0が与えられているとしましょう。このとき、購入回数に関する度数分布を求められるでしょうか?

NBDモデルでは、これが出来るのです。

NBDモデル

商品Aの平均購入回数をμ(0,)、購入回数0回の割合(相対度数)をp0(0,1)とします。
また、商品Aの購入個数をXとします。

μ>loge1p0のとき、パラメータκpの連立方程式

{κ(1p1)=μpκ=p0

はただ一つの解κ(0,)p(0,1)を持ちます。

このパラメータκpを用いて割合(相対度数)P(X=x)は、
P(X=x)=Γ(x+κ)x!Γ(κ)(1p)xpκ
と表されます。

連立方程式の意味

まず、確率分布が"拡張された負の二項分布"に従うと仮定しているので、様々な量がパラメータκ,pを用いて表されます。

第1式は"拡張された負の二項分布"の期待値E(X)をパラメータκ,pで表し、それがμである条件を課しています。

第2式はX=0のときの割合P(X=0)をパラメータκ,pで表し、それがp0であるという条件を課しています。

μ,p0が異常な値の場合、この連立方程式は解をもちません。この場合はNBDモデルが適応できません。連立方程式が解をもつ場合にて、解が複数あることはないことが確認できます。

κが正の整数の場合に、ガンマ関数の性質から右辺は負の二項分布の式と同じになります。しかしNBDモデルにおいてκが整数になることはほとんどありません。

NBDモデルの例

これも具体例で確認しましょう。

Nは全世帯数、N0は一定期間における購入回数0回の世帯数、Sは一定期間における売上個数とします。

グラフが逆J型になる場合

N=5,000(世帯)、N0=1,000(世帯)、S=20,000(個)とします。
このとき、(μ,p0)=(4,0.2)となります。
連立方程式を解くと(κ,p)=(1,0.2)となり、これを"拡張された負の二項分布"の式に代入すると、次の確率分布表が計算できます。

xの値P(X=x)の値x×P(X=x)の値N×P(X=x)の値
00.20000.00001000(世帯)
10.16000.1600800(世帯)
20.12800.2560640(世帯)
30.10240.3072512(世帯)
40.08190.3277410(世帯)
50.06550.3277328(世帯)
60.05240.3146262(世帯)
合計1.00004.00005,000(世帯)

この場合は、確率が単調に減っていきます。

!FORMULA[176][819509185][0]の確率分布!FORMULA[177][1094574212][0] μ=4,p0=0.200の確率分布NB(1,0.2)

グラフが逆J型にならない場合

N=8,000(世帯)、N0=1,000(世帯)、S=20,000(個)とします。
このとき、(μ,p0)=(2.5,0.125)となります。
連立方程式を解くと(κ,p)=(5.183,0.699)となり、これを"拡張された負の二項分布"の式に代入すると、次の確率分布表が計算できます。

xの値P(X=x)の値x×P(X=x)の値N×P(X=x)の値
00.12500.00001000(世帯)
10.21850.21851748(世帯)
20.22390.44771791(世帯)
30.17530.52601403(世帯)
40.11620.4647929(世帯)
50.06860.3428549(世帯)
60.03720.2230297(世帯)
合計1.00002.50008,000(世帯)

この場合は、x=2の場合に確率が最大になっています。

!FORMULA[192][-524363302][0]の確率分布!FORMULA[193][-612085014][0] μ=2.5,p0=0.125の確率分布NB(5.183,0.699)

グラフが存在しない場合

N=10,000(世帯)、N0=1,000(世帯)、S=20,000(個)とします。
このとき、(μ,p0)=(2,0.1)となり、(κ,p)は存在しません。

以下でどのようにして2つのパラメータκ,pを求めるのかを見てみましょう。

パラメータを求める方法

STEP1 2文字の方程式を1文字の方程式に還元する

パラメータκpは次の連立方程式を満たしているとします。

{κ(1p1)=μpκ=p0

となります。第1式と第2式をそれぞれ式変形すると、

{1p1=μ1κp=(p0)1κ

となります。第2式を第1式に代入してpを消去すると、パラメータκの方程式

(1p0)1κ1=μ1κ

を得ます。ここでx=1κとおくとx>0であり、xの方程式

(1p0)x1=μx

となります。loge1p0<μのとき、この方程式は正の実数解x+を唯一つ持ちます。このとき連立方程式の解は、

{κ=1x+p=(p0)x+

と表せます。方程式の解x+のが分かれば、連立方程式の解(κ,p)が求められます。

pの求め方

実際は、p=κμ+κの関係から、κの値からpの値を求めることが出来ます。

STEP2 1文字の方程式を近似的に解く

方程式の解x+を、いわゆるニュートン法に従って求めます。

STEP2-1 初期値x0を決める

左辺と右辺のxに正の整数を順に代入することによって、解のおよその値をまず求めます。左辺が負で右辺が正となるx0を探します。グラフを考えることにより、このようなx0は一つしかありません。また、x+x0より大きな最小の整数です。

初期値x0を以下で定めます。

1p01>μならば0<x+<1なので、x0=1とします。

・そうでないとき、(1p0)21>2μならば1<x+<2なので、x0=2とします。

・そうでないとき、(1p0)31>3μならば2<x+<3なので、x0=3とします。

・そうでないとき、(1p0)41>4μならば3<x+<4なので、x0=4とします。

これを左辺が右辺より大きくなるまで繰り返します。有限回で計算が終わります。

STEP2-2

グラフとx軸との交点を接線を使って求めます。x0からx1,x2,を順に構成し、値が止まるまで続けます。この値がx+です。

また、数列{xn}を次の漸化式で定めます。
xn+1=xn(1p0)xnμxn1loge1p0(1p0)xnμ

この数列{xn}は単調に減少し、方程式の解x+にどんどん近づきます。

漸化式の導出(数Ⅲ)はここをクリック


関数f(x)

f(x)=AxBx1

とする。f(x)の1階導関数と2階導関数をそれぞれf(x),f(x)とすると、

f(x)=(logA)AxB

f(x)=(logA)2Ax

となる。f(x)>0より、y=f(x)は下に凸のグラフで、原点を通り、仮定より原点における傾きが負であることが分かります。

xn>x+とします。曲線y=f(x)の点(xn,f(xn))における接線の式は、

yf(xn)=f(xn)(xxn)
となります。これをx軸との交点を(xn+1,0)とすると、

f(xn)=f(xn)(xn+1xn)

両辺をf(xn)で割ると、

f(xn)f(xn)=xn+1xn
となります。移項すると、
xn+1=xnf(xn)f(xn)

となります。当然、x+<xn+1<xnを満たします。

"拡張された負の二項分布"の導出方法

仮定することは2つです。

  1. 平均購入回数がλ(>0)の世帯の購入回数は、ポアソン分布Poisson(λ)に従うとします。ポアソン分布の確率質量関数はf(x|λ)=eλλxx!です。

  2. 全世帯の購入回数λは、ガンマ分布Gamma(α,β)に従うとします。ガンマ分布の確率密度関数は、g(λ|α,β)=1Γ(α)βαλα1eλβです。ただし2つのパラメータα,βは、α>0,β>0とします。

平均購入回数がλから(λ+Δλ)の世帯がk回購入する確率はf(k|λ)であり、その相対度数g(λ|α,β)Δλを掛けて足し合わせたもの(積分したもの)です。

P(X=x)=0f(x|λ)g(λ|α,β)dλ=0eλλxx!1Γ(α)βαλα1eλβdλ=1x!1Γ(α)βα0λ(x+α)1eβ+1βλdλ=1x!1Γ(α)βαΓ(x+α)(ββ+1)x+α=Γ(x+α)x!Γ(α)βx(β+1)x+α=Γ(x+α)x!Γ(α)(ββ+1)x(1β+1)α=Γ(x+α)x!Γ(α)(1p)xpα
ただし、積分公式
0xα1exβdx=Γ(α)βα
を用いました。また、p=1β+1
と置きました。

全世帯の購入回数λが、本当にガンマ分布Gamma(α,β)に従うかどうかは、論理的な必然性はなさそうです。関数の台が(0,)であるような確率密度関数であれば何でもいいはずなので、その他の確率密度関数でも大丈夫のはずです。ただし、ガンマ分布だと"拡張された負の二項分布"になります。他の分布で計算が進む例はあるのでしょうか。

まとめ

以上より(適切な)μp0から、Excelのソルバーという機能を使わずに、確率分布NB(α,p)を求めることが出来ました。以上の内容を理解するために必要なことを挙げます。

  1. 基本的な数列の計算(階乗n!、等比数列、の計算、数列の極限、無限等比級数など)
  2. 基本的な関数の計算(二項定理、指数関数y=axや対数関数y=logaxのグラフの概形など。特にy=exy=logex)
  3. 確率変数の定義、確率分布の定義と期待値と分散の定義
  4. 二項分布B(n,p)とその期待値と分散
  5. 負の二項分布NB(r,p)とその期待値と分散
  6. ガンマ関数y=Γ(x)による階乗の拡張
  7. ガンマ関数y=Γ(x)による負の二項分布の拡張NB(κ,p)
  8. ニュートン法による方程式の解法

計算手順のみを追いたい場合は、(7)と(8)だけで大丈夫です。

投稿日:202461
更新日:2024610
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. もくじ
  3. 負の二項分布とは?
  4. NBDモデル
  5. NBDモデルの例
  6. パラメータを求める方法
  7. まとめ