FANCOMI Ad-Tech Blog

株式会社ファンコミュニケーションズ nend・新規事業のエンジニア・技術ブログ

『ユーザの平均継続期間が「1/解約率」』であるための十分条件について

 こんにちは、サービス開発部情報科学技術研究所所属のk_oomoriです。先日、
migi.hatenablog.com
というブログが公開され、アドテク界隈で話題になったようです。私も読ませていただきましたが、平易に書かれていてとても良い記事だと思いました。僭越ながら要約させていただくと、

  1. ある段階でのユーザ数をUとし、その後の流入は考えない
  2. 毎月の解約率(常に一定で変わらないとする!)はC

という仮定をおくとnか月後のユーザ数はU(1-C)^nとなり、それを0から\inftyまで足しあげた延べ継続期間が
\displaystyle
\sum_{n=0}^{\infty}U(1-C)^n=\frac{U}{C}
となるため、平均継続期間=ユーザの延べ継続期間/ユーザ数 として定義した平均継続時間が1/解約率で与えられることが示された、というものです。
 似たような問題は実は他の文脈でも現れます。例えば原子核物理学の分野で不安定な原子核の放射性崩壊という現象があり、ある時刻t=0における不安定原子核の数をN_0崩壊率あるいは崩壊定数(崩壊のしやすさ、詳しくは後ほど説明します)を\lambdaとしたときに、時刻tにおいて崩壊せずに残っている原子核数N(t)N_0\lambdaを用いて表すことができます。この場合、1個の原子核が平均的にどのくらい生き延びるか?という問題を考えることができ、平均寿命と呼ばれています。これを先ほどのユーザの解約問題と比較すると、

  • 解約率 ⇔ 崩壊率 (どちらも減る割合を表す。以後まとめて減衰率と表現することにする)
  • 平均継続期間 ⇔ 平均寿命 (解約/崩壊せずに生き残る時間間隔)

によって対応付けできるため、数学的には同種の問題とみなすことができます。(離散、連続の違いはありますが)

続きを読む

アクセスログの残しかた ~ Aerospike×DynamoDB

 こんにちは、k_oomoriです。突然ですが、アクセスログを記録するにあたり、以下の要件を満たすデータベースが必要になりました。

  • ユーザを区別するID(uid)、アクセス時刻、アクセスURL、その他必要に応じて追加される属性を記録する
  • 特定のuidに対して過去のアクセスログをまとめて取得できる
  • 過去400日(約13か月分)のログを蓄積できる

今回は、AerospikeとDynamoDBを比較検討しましたのでその結果をまとめようと思います。

続きを読む

季節変動を考慮した異常値の発見をやってみた話

ご無沙汰しています。情報科学技術研究所のy_kawasakiです。今回も無事、Blogを書くタイミングで所属名が変わってます。これで、今までの投稿ですべて違う、所属名(≠所属)で記事を書いています。

やりたいこと

例えば、imp数の監視をしたいということがあると思います。しかし、imp数は季節トレンド(例えば、時間帯や曜日に応じての変化)、さらには、長期トレンド(例えば人気記事の追加など)、さらに突発的な変化があります。そこで、それらを分解して監視すれば、突発的な変化なのか、実はトレンドの変化なのかということが追えるはずです。

続きを読む