読者です 読者をやめる 読者になる 読者になる

廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

(R + Google アナリティクス)層別箱ひげ図、ストリップチャート、バイオリンプロットで訪問時のページビュー数を視覚化

Google アナリティクス R

状況設定

Googl アナリティクスでなんらかの「層別」に「サイトへの関心度合い」の指標を見たいときに使えそうな可視化を紹介します。

今回は「チャネル(訪問経路)ごと」に「訪問時のベージビュー数」を見ることにします。

データ取得

RGoogleAnalytics でデータを取得します。

詳しくは、

を参照。

まずはオーサライズ。

library("RGoogleAnalytics")
query <- QueryBuilder()
access_token <- query$authorize()

ここでアクセストークンをコピペ。

#データ取得
ga <- RGoogleAnalytics()
ga.profiles <- ga$GetProfileData(access_token)

sta = "2015-01-01" #データ取得期間
en = "2015-01-31"

query$Init(start.date = sta,
           end.date = en,
           dimensions = "ga:channelGrouping,ga:pageDepth",  
           metrics = "ga:sessions", 
           table.id = paste("ga:",ga.profiles$id[1],sep="",collapse=","),
           max.result = 10000,
           access_token=access_token)

CGPD <- ga$GetReportData(query)

以上でデータ取得は完了です。

箱ひげ図

まずは エンゲージメントを測る指標はエンゲージメント「率」だけじゃない。やみくもに割り算値をKPIにするのはよくない。 - 廿TT で紹介した箱ひげ図で訪問時のページビュー数の分布を見てみます。

###データ再整形
PDraw <- with(CGPD,rep(sessions,pageDepth))
cg <- with(CGPD,rep(channelGrouping,pageDepth))
###
#nihongo() マックユーザーは日本語のフォントを指定
boxplot(PDraw ~ cg,ylab="訪問時のページビュー数")

f:id:abrahamcow:20150204212835p:plain


箱は下に固まって潰れていて若干見づらいかな、という印象ですが、つまり最小値から第三四分位数まで、ほとんどのセッションがページビュー数 1(直帰)ということです。

また、外れ値を見てとることができます。

ストリップチャート

箱ひげ図は外れ値のみを点で表していますが、もっと素朴にすべてのデータを点で表すこともできます。

つまり一次元の散布図です。

それをストリップチャートと呼びます。

stripchart(PDraw~ym ,data=PD2,
           vertical = TRUE,
           method = "jitter", pch = 16, col = densCols(PDraw),
           yaxt="n",ylab="訪問時のページビュー数")
###
#y軸の目盛りをカンマ区切りにする
yrange <- range(PDraw)
ticks <- pretty(yrange)
labels <- format(ticks, big.mark=",", scientific=FALSE)
axis(2, at = ticks, labels = labels, las = 1, cex.axis=0.7)

点の密度を色の濃淡で示しています。

f:id:abrahamcow:20150204213108p:plain

この場合は箱ひげ図よりストリップチャートのほうが良さそうです。

個人的にはオーガニックサーチ(自然検索)とソーシャルで傾向にあまり差がないことが意外でした。

バイオリンプロット

ストリップチャートでは色の濃淡で密度を示しましたが、密度を横幅で示すこともできます。

それがバイオリンプロットです。

library(ggplot2)
library(scales)

ggplot(PD2,aes(x=チャネル,y=訪問時のページビュー数)) + 
  geom_violin() +
  scale_y_continuous(labels = comma) +
  theme_grey(15,"HiraKakuPro-W3") 

f:id:abrahamcow:20150204214144p:plain

横幅で訪問の多さ、縦幅で訪問時のページビュー数をみることができます。

ソーシャルはオーガニックに比べるとページビュー数 1の訪問(直帰数)が多く、縦にも伸びていることから、ライトユーザー層のなかにポツポツと、何ページも閲覧するヘビーユーザーがいる、という感じです。

オーガニックサーチはロングテールな(ヒストグラムにしたとき、右に裾が長い)分布になっています。

まとめ

個人的にはバイオリンプロットが見た目きれいかなと思いますが、好きなのを選んでください。

KPI として期間比較する際にはある程度集計しなおして、色付きテーブル(ヒートマップ)にしたほうが読み取りやすいかもしれません。

エンゲージメントを測る指標はエンゲージメント「率」だけじゃない。やみくもに割り算値をKPIにするのはよくない。 - 廿TT を参照してください。