2019年も終わりに近づき、空いている時間でブログの年間アクセス集計をしてみようか、という気分になった。Google Analyticsを日々参照し、大体の傾向は掴んでいるのだが、複数の観点から参照することで思いがけない特徴を示すのではないか、同時に昨年から学び始めた統計を用いて、興味深い分類、傾向を見出せないか、と考えたからだ。
アクセス集計でよくあるのは、今年最も参照された記事、のような事柄だろう。「最も参照された」と言えば、おそらくアクセス数(Pageview)を真っ先に思い浮かべるのではないだろうか。とはいえ同一人物が繰り返し参照している可能性もあれば、アクセス数は多いものの、実際のところ短時間で離脱されている可能性もある。加えて次の事柄も集計すべきだろう。
User | ユーザー数 |
New User | 新規ユーザー数 |
Bounce rate | 繰り返し参照された数 |
Avg. Time on Page | 参照時間 |
同時に、これらのデータを元に同じタイプの投稿を分類し、傾向を分析してみることにした。
どういう結果が出るだろうか。
準備
Google Analyticsにて、分析用にレポートを作成する。今回の分析では、このような具合だ。
このレポートを表示し、参照期間を今年1月1日から、に設定する。出力されたレポートをExcelファイルとしてExportすれば、分析用のデータを入手できる。Avg. Time on Pageの時分秒が、出力ファイルでは秒換算してくれているのがありがたい。
出力したファイルをExcelで開き、集計不要な行を削除する。例えばブログ管理に関わるページで、一般読者と名無関係のページであったり、投稿タイトルが空白や「(Not Set)」のような集計不要なデータだ。
各項目に関する集計はGoogle Analyticsでも、Excelでもソートすれば簡単にできるのだが、クラスタ分析にはRStudioを用いる。RStudioについて、ならびにコードを含めたクラスタ分析などの詳細については、末尾に記載のリンク先を参照してほしい。
Pageview
いわゆる、今年最も参照された投稿だ。1位の投稿はWindows Update配信直後にアップしたこともあり、このブログにしては爆発的なアクセスを記録した。企業IT部門で業務上の必要に迫られ、多く参照されたのだろう。
2位の投稿は、一般ユーザーの参照も多い投稿だ。昨年5月の投稿依頼、安定的に高頻度で参照されている。Chromeの同期というのは、余り安定していないことの証左でもある。
3位以降VSCodeとXperia Tabletに関する投稿がアクセスを集めている。「Ruby終わった」と言われる割には、まだまだ必要とされている場面が多いのではないだろうか。
Xperia Tabletの話題は2015年に投稿したものだ。おそらく需要は一巡したと思うのだが、まだまだ根強く参照されている。Androidタブレットが事実上のオワコン化し、現在でも実用になる機種として入手したユーザーが、OS更新のために参照しているのだろう。
User
割愛する。Pageviewとの相関が高すぎ、順位にほとんど変化がないのだ。相関の高さについては「RStudioでの集計」で触れる。
WSL、牛すじ肉、BOOTMGRに関する投稿がランクインしているのだが、これは次に触れるNew User獲得の影響でもある。
New User
今年一年で最も新規ユーザーを獲得した投稿だ。このブログの読者には、いわゆるサラリーマンが多く、業務時間中に参照されている。おそらく問題に遭遇した際に、その解決法を求めて参照しているのだろう。
新規ユーザーが多いということは、採り上げられている話題が長くの間、継続的に誰かが遭遇している問題であることを示している。実際7~9位の投稿は、2005~2008年に投稿したものだ。
先の集計と若干異なる趣を与えているのが、「牛すじ肉」の投稿だ。2007年の投稿なのだが、Pageviewでは11位、Userでは8位、未だに多くの人に参照され続けているのだが、同時に新しいユーザーも集めてくれている。
順位に入れ替わりはあるものの、1~5位までは先の集計結果と変わらなかった。6位以下を示す。
6 | WSL環境を作って壊す、覚書-lxrunは使わない。 |
7 | 牛すじ肉の下ごしらえ |
8 | BOOTMGR is missing - スタートアップ修復オプション |
9 | VBScriptでフォルダの参照権限を参照する。Vol.1 |
10 | FSMT - Microsoftファイルサーバー移行ツールキット |
Bounce rate
100%の投稿が52も見つかった。とにかく話題の幅が広い。その中からPageviewの高い順にTop 10を並べると次の結果を得た。先程までと趣が明らかに大きく異なっている。
これらの投稿は、同一のユーザーが繰り返し訪れていることを意味している。個人的にホッとしているのが、これらがPage View、Userでの集計と重複がないことだ。つまり先の集計で参照された投稿は、おそらくユーザーの問題を解決するに十分な情報を提供したということで、こちらの投稿は問題解決とは異なる目的で、繰り返し訪れたくなる何かを含んでいる、ということだ。
Avg. Time on Page
先程までと趣が大きく異なるのが、この集計情報だ。いくらアクセス数、ユーザー数が多くとも、文章一通りに目を通されているとは限らない。ある投稿ページにて、ユーザーがどれ程の時間とどまっていたのか、その平均時間を知ることができる。想像を少し広げれば、投稿が平均してどれ程の時間参照されていたのか、が分かる。この集計はTop10なので、その中でも特に真剣に読まれただろうことが想像できる投稿だ。
RStudioでの集計
まずデータのサマリーを取る。個人的に最も印象的なのがAvg. Time on Pageの最大値、973.67秒(16分)だ。本当に真剣に読んでくれたのだと思う。
各データの相関を確認してみる。Pageview、User、New Userの相関が非常に強く、その他のデータとの相関は弱いことが分かる。多重共線性回避のため、データからUser、New Userを除外する。
これらのデータを何らかの形で分類するとして、何グループに分けるのが都合が良いのだろうか?NbClustでは2~4グループへの分割が妥当だと言っている。
クラスタ分析を比較した結果、3グループへの分割が誤りも少なく良好な結果を得た。グラフとプロット上のグループと色が一致していないことに注意。
小数グループの1~3とは、次の投稿を指している。これらの投稿はPageviewが極端に多いのだが、Bounce rageはそれほど高くない。とはいえ、それでも82~91%なのだが。
1 | Intel RST導入済みPCへのWindows 10 May 2019 Update (Windows 10 1903)更新がブロックされるーその強硬的解決 |
2 | Chrome、同期できない場合の一解決 |
3 | VSCodeで最低限のRuby環境構築 - 設定編 |
プロット上でグリーンのグループは、Avg. Time on Pageが高い投稿のグループだ。これは次の主成分分析の結果から明らかだ。
先のプロットとDim1の左右が逆転していることに注意してほしい。Dim1が表しているのは、ほぼAvg. Time on Pageだ。矢印の反対方向に向かうほど、その値は大きくなる。
小数グループの1~3は、Pageviewの矢印の延長上にあり、他の記事との極端な違いが結果に反映されている。
ちょうどBounce Rateの矢印と逆方向へ延長するようにデータが広がっているのが分かる。この延長上に沿うように並ぶのが、グリーンのグループというわけだ。
このブログの全体の傾向、特徴として、次のことを見出すことができる。このブログは次のように構成されているというわけだ。
- ごく僅かの人気投稿
- 常連を抱えた投稿の小グループ
- PageviewもBounce rateも少ないとはいえ、多数派の投稿の文章にも目を通されている。
多くの人を集め、参照される3つの投稿に、限られた数の投稿を目当てに、繰り返し訪問してくれる熱心な少数のユーザーを抱えているのが、このブログの際立った特徴だ。