毎日の訪問を使用してWebサイトがアクティブかどうかを判断する


15

環境:

私は毎日の訪問数を記録するウェブサイトのグループを持っています:

W0 = { 30, 34, 28, 30, 16, 13, 8, 4, 0, 5, 2, 2, 1, 2, .. } 
W1 = { 1, 3, 21, 12, 10, 20, 15, 43, 22, 25, .. }
W2 = { 0, 0, 4, 2, 2, 5, 3, 30, 50, 30, 30, 25, 40, .. } 
...
Wn 

一般的な質問:

  • 最もアクティブなサイトを特定するにはどうすればよいですか?

これにより、過去数日間で訪問数が増えたり、訪問数が急増したりすることになります。説明のために、上記の小さな例では、最初はW0が人気がありますが、放棄を示し始めています。W1は安定した人気を示しています(孤立したピークがあります)。

最初の考え:

私はこのスレッドを簡単な式が記述されているSOで見つけました:

// pageviews for most recent day
y2 = pageviews[-1]
// pageviews for previous day
y1 = pageviews[-2]
// Simple baseline trend algorithm
slope = y2 - y1
trend = slope * log(1.0 +int(total_pageviews))
error = 1.0/sqrt(int(total_pageviews))
return trend, error

これは見栄えがよく簡単ですが、問題があります。

計算は勾配に基づいています。これは問題なく、私が興味を持っている機能の1つですが、私見では非単調なシリーズには問題があります。数日中に訪問数が一定であるため(勾配= 0)、上記の傾向はゼロになると想像してください。

質問:

  • ケース(単調な増加/減少)と多数のヒットの両方を処理するにはどうすればよいですか?
  • 別の数式を使用する必要がありますか?

1
回答がまだ届いていないことに驚いています(明らかによくある質問ですが)。4つの箇条書きのそれぞれは、それ自体で質問する価値があるので、この質問をそれらの1つに限定し、他の質問を別の質問に投稿してください。これらはすべて、明確なアプローチを取る本当に優れた質問であり、4つすべてが単独で価値があります。
アンディW

こんにちはアンディ、答えてくれてありがとう。言い換えると、一度に1つの問題に焦点を当てようとします。私の最初の考えは、それを可能な限り広くすることでした(そして、その後同じ質問を繰り返すことは避けます)が、答えが不足していることを考えると、答えるには一般的すぎるようです。
ダン

質問を編集して、主に関心のある2つの主要な問題を明らかにしました。緊密な関係を考えると、同じ質問に入れることにしました。
ダン

1
わずかな誤差で1つの推定値を使用するとアプローチが「使用不能」になる理由を理解できていません。
ワンストップ

コメントありがとう。アプローチ(トレンド計算)が使用できないと言っているわけではありませんが、そのエラー計算には潜在的な問題がある可能性があります。これまでに答えがなかったので、答えが簡単になることを期待して、質問からその項目を削除します。
ダン

回答:


4

「オンラインの変化点検出方法」を探しているようです。(これはグーグルの便利なフレーズです。)最近の便利な(そしてアクセスしやすい)論文には、Adams&MacKay(ベイズのアプローチ)とKeogh et al。があります。R の監視パッケージを使用可能にすることができます。統計的なプロセス制御方法を使用して、孤立した多数のヒットを見つけることができます。


2

この種の問題に対処するには、間違いなく複雑な方法があります。物事の音から、あなたはかなり簡単な解決策(SOで見つけた公式)から始めました。そのような単純さを念頭に置いて、私はあなたの投稿(の現在のバージョン)であなたが作るいくつかの重要なポイントを再訪すると思いました。

これまで、「サイトアクティビティ」の測定値をキャプチャする必要があると述べました。

  • 「過去数日間」にわたる1日あたりの訪問数の勾配の変化
  • 「過去数日間」の訪問数/日の大きさの変化

@ jan-galkowskiが指摘しているように、あなたは(少なくとも暗黙のうちに)これらの次元に沿った相互の相対的なサイトのランクにも興味があるようです。

その記述が正確であれば、これらの3つの測定(変化、大きさ、ランク)を個別のコンポーネントとして組み込む最も単純なソリューションを検討することを提案します。たとえば、次のものを取得できます。

  • 勾配の変動をキャプチャするSOソリューションの結果(ただし、3日または4日のデータを組み込みます)
  • 各サイトの最新の訪問数/日の値(y2)をそのサイトの平均訪問数/日で割った値(Y):

y2 / mean(Y)

それぞれW0、W1、W2の場合、0.16、1.45、2.35になります。(解釈のために、最新の1日あたりの訪問数の値が平均1日あたりの訪問数に等しいサイトの結果は1になると考えてください)。この測定値を調整して、最新の2(またはそれ以上)の日数をキャプチャすることもできます。

y2 + y1 / 2 * mean(Y)

その結果、3つのサンプルサイトで0.12、1.33、1.91が得られます。

実際に、この種の測定に各サイトの訪問/日の分布の平均を使用する場合、分布の標準偏差も調べて、相対的なボラティリティを把握します。各サイトの訪問/日分布の標準偏差は、12.69、12.12、および17.62です。y2/mean(Y)標準偏差に対する測定値を考えると、サイトW2での最近のアクティビティの大きさを遠近感を保つことができるため、役立ちます(標準偏差が大きい=全体的に安定性が低い/一貫性があります)。

最後に、ランクに興味がある場合は、これらのアプローチもその方向に拡張できます。例えば、私は一日あたりの値最も最近の訪問の面でサイトのランクを知っているだけでなく、一日あたりの各サイトの平均訪問(のランクのランクと思うだろうmean (Y)それぞれのW中にはWn)役に立つかもしれません。繰り返しますが、ニーズに合わせて調整できます。

これらすべての計算の結果を表として表示したり、定期的に更新される視覚化を作成して、それらを毎日追跡したりできます。


1

Webサイトへのユーザーの到着率は厄介なシリーズであり、ポアソンの観点から過剰に分散される傾向があるため、到着とそのフィッティングを調べるために負の二項分布を検討してください。また、サイトの数ではなく、毎日の注文統計を調べることもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.