« 読了:Bass(1969) 諸君、俺の名をとってこれをBassモデルと呼び未来永劫語り継ぐがよい (とは書いてないけど) | メイン | 読了:Srinivasan & Mason (1986) Bassモデルは非線形最小二乗法で推定しろ »
2016年4月20日 (水)
新製品・サービスの普及プロセスを説明する古典的モデルである、Bassモデルの推定方法について、ちょっと混乱しちゃったので、覚え書きをつくっておく。個人的メモでごさいます。
そもそもBassさんが考えた理屈はこうだ。原典であるBass(1969)に沿ってメモする。
ある製品の初回購入だけに注目する。総購入個数を$m$としよう。
連続時間上の時点 $t$ における「購入の尤度」を $f(t)$ とする[わかりにくい表現だけど、ある潜在的購入者に注目したときにこの瞬間に購入が発生する確率密度、という意味合いであろう]。
$F(t)$ を以下のように定義する。
$F(t) = \int f(t) dt, \ \ F(0) = 0$
時点 $t$ における売上を $S(t)$、累積売上を $Y(t)$ とする。
時点$t$において、まだ購入が発生していないという条件の下での「購入の尤度」を$P(t)$とすると、
$P(t)=f(t)/(1-F(t))$
である。また、
$S(t) = m f(t) = P(t)(m-Y(t))$
$Y(t) = \int S(t) dt = m \int f(t) dt = m F(t)$
である。
さて、Bassモデルとは次のモデルである。
$P(t) = p + (q/m) Y(t)$
ここから以下が導かれる。
$f(t) = p + (q-p) F(t) - q F(t)^2$
$S(t) = pm + (q-p) Y(t) - (q/m) Y(t)^2$
さらに、$f(t), F(t)$を$t$について解くと、
$f(t) = \frac{(p+q)^2}{p} \frac{\exp(-(p+q)t)}{(q/p \exp(-(p+q)t)+1)^2}$
$F(t) = \frac{1-\exp(-(p+q)t)}{q/p \exp(-(p+q)t)+1}$
ここまではいいっすね。ここからはBass's Basement Research Instituteによる説明のメモ。
実際には$t$は離散変数だ。すると、次のような困った事態が発生する。
区間$[t-1, t]$について考えよう。$F(t)$は、この区間の右端までの$f(t)$の合計? では$f(t)$は? 時点$t$における瞬間の速度? それとも、$F(t-1)$から$F(t)$までの増分?
アルゴリズムとして実装するには、どうにかつじつまを合わせないといけない。ここで3つのアプローチが登場する。
第一のアプローチ。Sinivasan & Mason (1986)のアプローチである。$F(t)$のほうはさきほどの解をそのまま用いる。すなわち
$F(t) = \frac{1-\exp(-(p+q)t)}{q/p \exp(-(p+q)t)+1}$
いっぽう$f(t)$のほうを変えてつじつまを合わせる。
$f(t) = F(t) - F(t-1)$
ただし、$t=1$においては$f(t) = F(t)$。
このやり方の良い点:$F(t)$の定義はそのまま。$f(t)$は小さな値なので、これを直接求めずに引き算で求めるのは、数値的に正確。
第二のアプローチ。$f(t)$のほうの解をそのまま用いる。すなわち
$f(t) = \frac{(p+q)^2}{p} \frac{\exp(-(p+q)t)}{(q/p \exp(-(p+q)t)+1)^2}$
いっぽう$F(t)$のほうを変えてつじつまを合わせる。
$F(t) = \sum_{i=0}^{t} f(i)$
これはおかしい。$f(t)$はその瞬間の速度であって、ある期間の平均ではないからだ。
第三のアプローチ。Bass先生が1969年の段階で推していた方法。$f(t), F(t)$の差分方程式に戻る。
$f(t) = p + (q-p) F(t-1) - q F(t-1)^2$
$F(t) = F(t-1) + f(t)$
これはおかしい、すごくおかしい。Bass先生はなぜこんな方法を推したのか? コンピュータじゃなくて手回し計算機を使っていたからに他ならない。なんとかしてOLS回帰の形に持ち込む必要があったのだ。この$f(t)$の式なら、$f(t)$を当期購入数、$F(t-1)$を前期までの累積購入数として、重回帰で解けるからね。
教訓。Bass(1969)の推定方法を用いるなかれ。コンピュータを使いなさい。第一のアプローチを使って、非線形回帰で推定しなさい。
... なるほどね。
最後に、手元にあるいくつかの教科書を比較しておこう。
日頃より頼りにしております、朝野・山中(2000), p.152。
$m$をN, $F(t)$をn_T, $p$をp, $q$をr, $Y(t-1)$をZ_t (添え字に注意!), $S(t)$をX_tと呼んでいる。
本文中でZ_tを「t期における購入者」、X_tを「t期の購入者」と呼んでいるので、前後の文脈を読み取ってその意味をよく考えないといけない。
推定方法はOLS。推定する式はこうなる(8.5式):
$X_t= pN + (r-p) Z_t - \frac{r}{N} Z_t^2$
照井・ダハナ・伴(2009), pp.155-157。この本も頼りになります。
$m$をN, $F(t)$をF(t), $p$をp, $q$をq, $Y(t)$をN(t), $S(t)$をS(t), と呼んでいる。
推定方法はOLS。本文中の記号とRのコード例での変数名が違うので要注意。コード例ではなぜか$N(t-1)$にFt.1, $n(t)$にNtという名前をつけ、lm(Nt ~ Ft.1 + Ft.1^2)を推定している。(どうもよくわからないんだけど、formulaの指定はこれでいいのだろうか? Nt ~ Ft.1 + I(Ft.1^2) ならわかるんだけど...)
里村(2010)、pp.64-67。
$m$をm, $F(t)$をF(t)、$f(t)$をf(t)、$Y(t)$をN(t)、$S(t)$をX(t)と呼んでいる。$m-Y(t)$をY(t)と呼んでいるので注意。
この本は、$F(t)$を$t$の関数として解いた式を非線形回帰で推定している。推定にはRのnls()を使っている。シリーズの主旨に沿って、Rのコード例がとても充実している。よく見ると日本語の誤字が結構多いのだが(「統計的に有為」とか)、そういうことをいちいち気にしていてはいかんのである。
Lilien & Rangaswamy (2004), pp.255-258。ちょっと古い版の教科書だが、もったいないので使い続けている。前職のときに私費で買ったのだ、高かったのだ。
$m$を$\bar{N}$、$F(t)$をF(t), $f(t)$をf(t)、$p$をp, $q$をq, $Y(t)$をN(t), $S(t)$をs(t), と呼んでいる。推定方法として、OLSと非線形回帰の両方を紹介している。
分量も違うし、そもそも日本語の教科書と英語の教科書を比較してはいけないのだが(なにしろ市場規模が違う)、とにかくこの本の説明は最高にわかりやすい。もちろんBass(1969)なんかよりはるかにわかりやすい。
雑記:データ解析 - メモ:Bassモデルをどうやって推定するか (いろんな教科書を比べてみた)