データサイエンス・ブートキャンプに参加したときのノートの書き写し。
データサイエンス・ブートキャンプ 第2弾
テキストデータをタイムスタンプデータに変換する。
このままグループ化すると、秒ごとにグループ化されてしまうので、丸め処理を行う。
丸めた日付データでグループ化する。
ここでやっとDAUを求める。 useridで一意の値で集計する。
こんな感じのデータが出来上がる。
ここまで作成したDAUを無駄にしたくないので、ブランチを切って作業をする。
yy/mm/ddのデータになっているので、ddを削除して、月ごとのデータに変換する。
そしてさっきと同じようにグループ化して集計すればMAUのデータが完成する。
DAUのデータフレームにMAUのデータを追加する。 そして、DAU/MAUでエンゲージメント率を算出する。
このままだとjoinすることができないので、DAUのデータに月で丸めた列を追加する。 こんなデータができる。
結合する準備が整ったので、DAUデータフレームのmonth列とMAUデータフレームのtimestamp列で結合する。
こんな感じでデータができあがった。
エンゲージメント率はDAU/MAUで計算する。 この数値は特定のDAUが、月の中でどのくらいの割合を占めているのかを判断する指標。 この割合が日毎に増えていくと、そのサービスはユーザーが増加しかつ使い続けている人も増えている=エンゲージメントが上がっている。ということが解釈できる。
エンゲージメント率の列を計算して追加する。 下記のスクリプトはDAU/MAUで小数点を切り捨てている。
mutate(engagement_ratio = round(count_dau / count_mau, digits=2))
全体的には上昇しているが、月毎に回帰直線を引いてみると、直近の2ヶ月はあ上昇傾向ではあるものの、ばらつきが大きくなっているのがわかる。