サイトの導線を評価する:応用編1


ちょっと想定外に忙しい日々が続いたため、前回の続きが書けないでいました。
今回は応用編です。最初に宣言しておくと、So What?となる可能性がかなり高い分析です。そのことを踏まえた上で、読んでいただければ幸いです。

前回、導線を評価する際には、「ページレベル」と「セッションレベル」があり、それぞれの分析方法があるというお話をしました。今回はページレベルでの分析をもっとエレガントにする方法について検討します(わかりにくいとしても)。

まずはページ別に取得した導線を一つの表にまとめる作業から始めます。
仮に下記のような単純なプロモーションサイトの解析を想定します。大規模なサイトの場合はページ単位ではなく、コンテンツグループ単位で分析した方が良いでしょう。

前後ページMatrix

前後ページの遷移データは下記ような表にまとめることができます。

この表の見方ですが、表側が前のページ、表頭が次のページという意味で、表側側から右に読んでいって、それぞれの項目の次にどのページを見たのかをまとめたものです。
例えば、index.htmlの次にa.htmlを見たのは20回、b.htmlを見たのは30回という見方です。
表側の「in」はセッションの始め(流入)となったページ、表頭の「out」はセッションの終わり(出口)となった回数を意味しています。「total」は遷移数の合計です。
この表だけでも十分意味のあるデータです。表を見ると、どのページから、どのページへと遷移したのかがわかります。各項目のtotalを母数として、パーセンタイルで表示すれば、どのページの遷移が割合的に多かったのかが簡単にわかるようになります。
ここを出発点として、もうちょっと考えていきましょう。

きょり?

表をよーく見てみると、何かが見えてきます。
遷移数が大きいとは何を意味するのでしょうか?たくさん誘導しているということはページ間の関連が大きいと捉えることができます。つまり、ページ間が内容的に「近い」と言えます。ということは、数学的には数が大きければ大きいほど、距離が近いと言うことが出来ます。距離といえば、MDS(多次元尺度構成法)。MDSを使って、2次元上にグラフ化することができます。

下準備

ただ、ちょっと問題があります。距離が近いということは、数学的には、距離の値が小さいということを意味します。この表では完全に逆になっていて、近ければ近いほど、値が大きくなっています。そこで、各値に逆数を取ることで解決します。遷移数が「0」という場合は距離的に最も遠いと考えられるので「1」と置き換えます。また、各項目間の遷移(対角成分)については、もっとも近いと考えられるので、「0」と置き換えます。ちょっと面倒なので、「in」と「out」のデータは無視します。そうすると、以下の表に変換されます。

Rでゴリゴリ

このデータはまだ距離データにはなっていません。「順」と「逆」のデータを併せ持ってしまっています。距離データとみなすには、三角行列になっていなければなりません。そこで、Rを使って距離データに変換します。ここでは、最もシンプルなユークリッド距離として考えます。

#Excel経由クリップボードデータの読み込み
a <- read.delim("clipboard")
#距離を算出
a.d <- dist(a)

これだけです。これで距離が算出されました。
あとはMDSを行って、グラフ化しましょう。

#MDSを行う
a.cmd <- cmdscale(a.d)
#グラフ化する
plot(a.cmd, type="n")
text(a.cmd, names(a))

できました。

これで、各ページ間の遷移を2次元グラフ上にマッピングすることができました。
So What?なんて、野暮な質問はやめましょう。
まだまだ続きます。

3 Comments

  1. phar より:

    とても参考になります。続きを楽しみにしています。

    • yosimox より:

      コメントどうもありがとうございます。こういうデータ分析の話を理解してくれる人があまりいないので、励みになります。

      • phar より:

        応用編2も勉強になりました。定常状態になった時の被クリック数がpage rankという事でしょうか。

        上のMDSのマッピングでひとつ思いついたのですが、この二次元上に、page単位のperformance indicatorで高さ表示をすると面白いかなと思いました。 page rankやgaでのダラーインデックスなど(ゴールの設定いかんでかなりヘンになりそうですが、、、)
        離脱状態のサイト全体的な把握ができそう?

        自分でやればいいのですが、思いついたら書き込みたくなって、書き込みました。

Leave a Reply