Google Analytics を構造方程式モデリング

投稿者: | 2017年11月17日

概要

  • Google Analytics のデータを使って構造方程式モデリング
  • データから見えない記事に対する興味や記事の質とデータの関係を分析

構造方程式モデリング(SEM)

構造方程式モデリングは、ざっくり言ってしまうと、
データとデータに直接見えていない要素の関係を、
図で視覚的に分析するためのツールです。

見えない要素

例えば、テストの点数と、
出席日数や授業中の発言回数のような授業への参加の様子、
睡眠時間のような生活の習慣に関するデータが与えられたとします。
この時、一般的な回帰を使えばテストの点数が、
他のデータとどのような関係があるかを調べることができます。

ところが、データとして得られていない要因によっても、
テストの点数は影響を受けるかもしれません。
例えば、理系が得意な子は数学の点数がいいと考えられますが、
理系が得意かどうかのデータは今回得られていません。
このようなデータとして得られていない情報を潜在変数と呼びます。
逆にデータとして得られている情報は 顕在変数 あるいは 観測値 と呼びます。

また、出席日数や授業中の発言回数が多く、早寝早起きを心がけている子は、
真面目な生徒と言っていいかもしれません。
もし、「真面目な生徒ほどテストの点数が高い」ということが分かれば、
同じ意味で、「出席日数が多く、授業中によく発言し、早寝早起きな生徒ほどテストの点数が高い」
というよりも、関係性の見通しが格段に良くなります。
この時、真面目かどうかは、直接データを計ったわけではないので、潜在変数です。
この潜在変数としての真面目度は、観測値に共通する性質を取り出したものになるので、
共通因子 とも呼ばれます。

データと潜在変数の関係

構造方程式モデリングでは、
実際に観測されたデータに加えて、
観測されていない潜在変数も含めて、
それらの関係性を分析します。

とはいえ、何の手がかりもなしに、
観測されていない情報とデータの関係を特定するのは無理です。
そのため、始めに、データと潜在変数の大まかな関係を与える必要があります。

例えば、先のテストの点数の例だと、
下の図のような関係があるんじゃないかなという当たりをつけることができます。
矢印は、ざっくり言うと原因と結果の関係を表しています。
例えば、
「真面目だと授業中の発言回数が多い」
「真面目だと総科目の平均点が高い」
「理系が得意だと国語の点数は低い」
みたいな関係がありそうだという考えを図で書いたものです。

また、原因と結果の関係ではなく、単に相関がありそうな変数間は両方向の矢印で結びます。
図の場合だと、
「真面目度と文系理系の適正には相関がありそう(あるかもしれない)」
ということを表すために、両方向の矢印を使っています。

関係がどの程度あるかを推定する

構造方程式モデリングにできるのは、
上のような図とデータが与えられた時に、
図の中の関係が本当にあるのかどうか、
そして、あるとしたらどの程度強い関係なのかを推定する

ことです。

この推定を行う時は、
片方向矢印は回帰係数
両方向矢印は相関係数
を表すものとして、回帰係数と相関係数の推定を行います。
この推定された回帰係数、相関係数が、関係性の強さ、
矢印の太さを表します。

つまり、片方向矢印の太さは、
矢印の先にある変数が、矢印の元にある変数でどの程度説明できるかを意味します。
そして、両方向矢印の太さは、
矢印の両側の変数が、どれだけ相関があるか(片方が増えた時にもう片方が増えるか)を意味します。

Google Analytics の SEM による分析

大まかに構造方程式モデリングについて理解したところで、
実際に Google Analytics のデータを使って分析してみましょう。

Google Analytics のデータ

Google Analytics は、Web サイトのアクセス情報を収集、集計、表示してくれるサービスで、
サイト全体としての訪問者数や、その時間的推移の他、
各ページ毎の表示数(ページビュー)や滞在時間など
様々なデータを提供してくれます。
今回は、ページ毎のデータの関係性を構造方程式モデリングを使って分析してみたいと思います。

そこで、まず、ページ毎のデータを取得します。
Google Analytics のサイトを開き、左側のメニューから
「行動」→「サイトコンテンツ」→「全てのページ」
を選択します。

デフォルトでは、ページビュー数上位10ページのみが表示されるので、
必要に応じて、右下の表示する行数を変更します。

そして、右上のエクスポートをクリックして、データを保存します。
始めは CSV でエクスポートしようと思ったのですが、
何故か文字化けしてしまったので、Excel 形式でエクスポートしました。