全部の国が1つのグラフにプロットされても汚くなるだけなので、一旦TOP10の国からアクセスがあるPVだけに絞って探索してみる。
mutate(country = fct_lump(country, n = 10), source = fct_lump(source, n = 10))
これでTOP10以下の国はOther(その他) で一括りにできた。
そして国毎に異常値検知をしたグラフを出してみる。
数値でソートしてみると、オーストラリアの2016-11-23が最大のポジティブな異常値であることがわかる。
様々な説明変数の組み合わせを試して、UniquePageviewsを最も説明している線形回帰モデルを構築してみる。
構築されたモデルのパラメータ推定値をP Valueでソートしてみると、この上位3つはかなり有効らしいので、これを元に新たにモデルを構築してみる。
※P値が高いということは、それが偶然である可能性が高い。
※P値が高い指標はEstimateの範囲も広いので、どちらに転ぶ可能性もあるということがわかる。
先ほど抽出した3つの変数でもう一度線形回帰モデルを構築してみると、R Squareは下がっているものの、このくらいなら許容範囲だそう。
※説明変数はシンプルイズベストなので、より少なく、より精度の高いモデルを構築することにフォーカスしたほうが良い。
X軸にTerm、Y軸にestimateをプロットし、範囲を指定して信頼区間も表示してみる。そうすると、それぞれの説明変数がUniquePageviewsに対してどのくらいインパクトがあるのかを可視化することができる。
この可視化から以下のようなことがわかる。
この結果から、もしこのサイトのKGIがUniquePageviewsだった場合に、bouncesとpageviewsとsessionsを上げればKGIの達成に貢献できるという仮設を立てることができる。
そしてそれぞれの説明変数がどの程度目的変数に影響するのかを数値で表すことができるので、優先順位を立てながらKPIの設計をすることが可能になる。
この分析の目的として、最終的にどの説明変数を上昇させれば目的変数の目標を達成できるのかを考える。
重回帰の式は以下のようになる。
y = -0.12x + 0.46y + 0.69z + 0.27
もし他の指標が1つも変動しなかった場合は、次のような式になる。 この例でいうと、KGIとKPIは以下のようになるのではないか。
※KGIの数値は決めで適当に設定している。
※以下の式で使われる0.27は(Intercept)の値
ただ、一般常識からも見てわかるように、セッションとPVは相関関係にあり、どちらか一方だけが上昇するということはありえない。
そしてバウンスが-1,666,664になることは現実的にありえない。
この場合は__現在の数値から▲▲▲を●●●上げればKGIにxxx近付くから▲▲▲を上昇させる施策を1ヶ月間実施してみましょう。次月は…__という結論にすればクライアントも納得するのではないか。