DAU_MAU

データサイエンス・ブートキャンプに参加したときのノートの書き写し。
データサイエンス・ブートキャンプ 第2弾

DAUを求める

データを変換する

テキストデータをタイムスタンプデータに変換する。

日ごとのデータに丸める

このままグループ化すると、秒ごとにグループ化されてしまうので、丸め処理を行う。

グループ化する

丸めた日付データでグループ化する。

日ごとのデータを集計する

ここでやっとDAUを求める。 useridで一意の値で集計する。

こんな感じのデータが出来上がる。

Loading…

MAUを求める

ここまで作成したDAUを無駄にしたくないので、ブランチを切って作業をする。

日データを切り捨てる

yy/mm/ddのデータになっているので、ddを削除して、月ごとのデータに変換する。

そしてさっきと同じようにグループ化して集計すればMAUのデータが完成する。

Loading…

データを結合する

DAUのデータフレームにMAUのデータを追加する。 そして、DAU/MAUでエンゲージメント率を算出する。

join用のカラムを追加する

このままだとjoinすることができないので、DAUのデータに月で丸めた列を追加する。 こんなデータができる。

join関数で結合する

結合する準備が整ったので、DAUデータフレームのmonth列とMAUデータフレームのtimestamp列で結合する。

こんな感じでデータができあがった。

エンゲージメント率を算出する

エンゲージメント率はDAU/MAUで計算する。 この数値は特定のDAUが、月の中でどのくらいの割合を占めているのかを判断する指標。 この割合が日毎に増えていくと、そのサービスはユーザーが増加しかつ使い続けている人も増えている=エンゲージメントが上がっている。ということが解釈できる。

列を追加する

エンゲージメント率の列を計算して追加する。 下記のスクリプトはDAU/MAUで小数点を切り捨てている。

mutate(engagement_ratio = round(count_dau / count_mau, digits=2))

可視化する

DAU

DAUは日毎に上昇していることがわかる。
Loading…

エンゲージメント率

しかしエンゲージメント率は下がってきている。 つまりユーザーは継続してアクセスしていないということになる。 ここでエンゲージメント率
Loading…

月ごとのエンゲージメント率

全体的には上昇しているが、月毎に回帰直線を引いてみると、直近の2ヶ月はあ上昇傾向ではあるものの、ばらつきが大きくなっているのがわかる。

Loading…