アーカイブ ‘ 2013年 11月22日

平均継続月数の求め方

月額課金サービスのような継続利用サービスの場合、ユーザー平均利用月数は?と聞かれることがあるだろう。しかし、サービス開始間もないときなど、その値を出すにはちょっと頭を使う必要がある。では、どうやってそれを計算したらよいのか。

 

退会率を実測値から求める

まずは、簡単なモデルを作る。

X月にユーザがA人いて、X+1月にそのうちB人(≠0)がやめたとする。すると、

退会率=B/A

とおける。この退会率をαと置く。本来であれば、X月のユーザがX+2月にやめる率も出していくべきだが、簡易モデルとするため、各月の退会率は一定だと仮定しよう。この条件だけで、ユーザーの平均継続月数を試算する事が出来る。

 

退会率から平均継続月数を求める計算方法

では、実際に計算してみよう。n月目における期待値(n月目まででの平均継続月数)をSnと置くと、1ヶ月でやめる人α、やめなかった1-αのうち、2ヶ月目にやめるのは退会率αをかけて、(1-α)*αとなる。これを繰り返していく。従って

Sn = 1*α + 2*(1-α)*α + 3*(1-α)^2 *α + 4*(1-α)^3 *α + … + n*(1-α)^n-1 * α

となる。

 

では、このSnを求めてみよう。Snとそれに1-αをかけたものを用意し、引いてみる。

Sn = 1*α + 2*(1-α)*α + 3*(1-α)^2 *α + 4*(1-α)^3 *α + … + n*(1-α)^n-1 *α
-)
(1-α)*Sn =(1-α)*α + 2*(1-α)^2 *α + 3*(1-α)^3 *α + …. + n*(1-α)^n *α
- – - – - – - – - – - – -
Sn – (1-α)*Sn = α + (1-α)*α + (1-α)^2 *α + (1-α)^3 *α+ … +(1-α)^n-1 *α – n*(1-α)^n *α

 
これは(1-α)の等比数列になるので、
 

αSn = α*(1-(1-α)^n) / (1-(1-α)) – n*(1-α)^n *α

Sn = (1-(1-α)^n) / α – n*(1-α)^n = 1/α – (1-α)^n/α – n*(1-α)^n

と求められる。

 

次に、nが∞になった場合に、Snがどうなるかを求める。Snは上記の式になるので、それぞれを見ていく。

(1-α)^n / α

は、αは退会率であり、1以下である。従って 1-α は0以上1未満であり、それを∞乗している。そうすると、これは0に収束する。

∴ (1-α)^n / α –> 0

 

次に、

n*(1-α)^n

を求める。ただこれは一筋縄ではいかないので、ちょっと工夫する。

X = n*(1-α)^n

について、双方のlogをとる。

log X = log (n*(1-α)^n) = log n + log (1-α)^n = log n + n*log(1-α)

これも上記同様、1-αは0以上1未満となるので、log(1-α) は0未満の定数となる。 0 < βである定数βを置くと log X = log n - n*β となる。ここで、log n と n*βのグラフはどういうものになるかを考える。log n は対数関数のグラフであり、nが大きくなるにつれて傾きは小さくなる。log n の傾きは微分すると 1/n であるので、nが∞になったときは傾きが0である。一方で、n*βのグラフは傾きβ (<0) の直線のグラフとなる。この2つのグラフを考えると、nが∞までいったとすると、必ずn*βの直線は log n の上に来る。すなわち、 n*β > log n
(n –> ∞)

となる。従って、nが∞のときは、

log X = -∞

となり、

X = 0

となる。

 

ここまで来て、Sn の2項目、3項目が求められたので、

Sn = 1 / α
(n –> ∞)

となる。

 

まとめ

ここまで長々と計算過程を書いたが、ここだけ覚えておけばよい。サービスの月の退会率αを出したら、平均継続月数は、

1 / α

で出すことができる。

例えば、3月に100人いて、そのうち20人が4月にやめた場合、退会率は20%であり、ユーザーの平均継続月数は5ヶ月 (1/0.2)と推測できる。退会率が5%であれば、平均継続月数は20ヶ月(1/0.05)と推測できる。

 

もし、あなたのサービスで平均継続月数は?と聞かれたらこの方法で求めた数値を答えよう。

 


return top