先月からの売上減少を可視化してみる3
さて、前回までで、新規ユーザーの全体課金額が減少していて、その原因の一つとして、そもそも新規ユーザー登録数が減少しているのではないか、というところまで進んだ。
今回は、6,7月の新規ユーザーに課金額の違いがあるのかを見ていく。(ユーザー層が変化した可能性をみたい)
まずは全体の確認。
all_df.head()
log_date | user_id | install_date | payment | log_month | install_month | new(0)/old(1) | |
---|---|---|---|---|---|---|---|
0 | 2013-06-01 | 116 | 2013-04-17 | 0.0 | 06 | 04 | 1 |
1 | 2013-06-01 | 13491 | 2013-06-01 | 0.0 | 06 | 06 | 0 |
2 | 2013-06-01 | 7006 | 2013-05-03 | 0.0 | 06 | 05 | 1 |
3 | 2013-06-01 | 117 | 2013-04-17 | 0.0 | 06 | 04 | 1 |
4 | 2013-06-01 | 13492 | 2013-06-01 | 0.0 | 06 | 06 | 0 |
色々覚えてきて、ここから一発でグラフ化できそうだなと思ったので、やってみた。
sns.set() sns.set_context("notebook") plt.figure(figsize=(24, 12)) sns.distplot(all_df[all_df['log_month'] == "06"].payment) sns.distplot(all_df[all_df['log_month']== "07"].payment)
お?
どうやら無課金ユーザーが多いので、そっちにplotが引っ張られてしまったようだ。 課金勢のみを抽出して再度可視化。
all_df = all_df[all_df.payment != 0]
sns.set() sns.set_context("notebook") plt.figure(figsize=(24, 12)) sns.distplot(all_df[all_df['log_month'] == "06"].payment) sns.distplot(all_df[all_df['log_month']== "07"].payment)
今度はうまくいった!
結果
さて、青が6月新規勢で、緑が7月新規勢だが、kdeplotの部分もほぼ一緒なのでこれは単に新規登録人数が減ったと考えられそう。
追記
本を確認すると、2000円以下の課金数が減ったと書いてあった。 まあ確かにplotを見てもその通りなのだが、3つのplotピークの差がちょっとずつ減少傾向にある。そのため、課金額0をスタートとして、正規分布しているのだろうと勝手に判断した。(なので問題ないかなと)
理想は、この判断を数学的に行いたいが、まだその辺はよくわかってないので、勉強した時に、振り返りたい。