Rで売上ランキングをカラフルに可視化
この記事の目的
- k-meansを用いて売上データ(擬似データ)をヘビー・ミドル・ライトに分類
- ggplot2を用いてプロット
- 技術系の記事初めて書くので、練習のため
パレートの法則
「ソーシャルゲームの売上の8割は全ユーザーの2割のヘビーユーザーの課金によるものである」みたいな話のように、全体の数値の大部分が、全体を構成する要素の一部によって賄われている現象のこと。この考え方に従って、課金額がミドルやライトなユーザーをヘビーに変えるための導線を探すことがマーケティング戦略上重要になる。
前準備
対数正規分布を用いて擬似データを作成
sales <- rlnorm(10000, meanlog = 10, sdlog = 1) dataFrame <- as.data.frame(sales)
k-meansクラスタリング
library(ykmeans) yk_data <- ykmeans(dataFrame, k = 9, variable.names = "sales", target.name = "sales", cluster.name = "cluster", n = 100)
少し加工してggplot
library(dplyr) library(ggplot2) library(scales) yk_data <- yk_data %>% arrange(desc(sales)) %>% mutate(cluster = factor(cluster)) %>% mutate(row = row_number()) ggplot(yk_data, aes(x = row, y = sales, group = cluster, colour = cluster)) + geom_point() + scale_y_continuous() + xlab("売上ランク") + ylab("売上額") + scale_y_continuous(label = comma) + theme_bw(base_family = "Osaka")
結果
ちょうど曲がってるあたりがヘビーとミドルの境目くらいかなあ
3~5に分類されたユーザーと6~9に分類されたユーザーの行動比較みたいなのをやりたいけど、擬似データなのでここまで
感想
ggplotの書き方すぐ忘れるので備忘録がてら描いてみました
コード載っけてみたけど見にくいので、はっきり見える方法わかったら修正します
サンキュー