today_statsというMySqlテーブルがあります。ID、日付、クリック数があります。値を取得し、次の7日間のクリックを予測するスクリプトを作成しようとしています。PHPでそれを予測するにはどうすればよいですか?
5 に答える
ここで説明されているさまざまな種類のカーブ フィッティング: http://en.wikipedia.org/wiki/Curve_fitting
これは PHP とはあまり関係がなく、数学と関係があります。このようなものを計算する最も簡単な方法は、過去 X 週間の特定の日の平均トラフィックを取得することです。流行やページ コンテンツが変化するため、すべてのデータを取得する必要はありません。
たとえば、先月の各日の平均トラフィックを取得します。見積もりを実際のトラフィックと比較することで、見積もりの正確性を確認できます。まったく正確でない場合は、計算を試してみてください (たとえば、サンプリングする期間を変更します)。または、あなたの見積もりが外れているのは良いことかもしれません: あなたのサイトが New York Times の 1 面に取り上げられたばかりです!
乾杯。
あなたが探しているアルゴリズムは最小二乗法と呼ばれています
あなたがする必要があるのは、各ポイントから将来の値を予測するために使用する関数までの距離の合計を最小限に抑えることです。距離が常に正になるように、絶対値ではなく、値の 2 乗を計算に取り入れます。差の二乗和は最小でなければなりません。その合計を構成する関数を定義し、それを導出し、結果の方程式を解くことで、過去の統計値に最も近い関数のパラメーターを見つけることができます。
Excel (おそらく OpenOffice スプレッドシートも) のようなプログラムには、多項式関数を使用して依存関係を定義する組み込み関数があります。
基本的に、Time を独立した値として、その他すべてを記述された値として使用する必要があります。
これは、経済学で広く使われているため、計量経済学と呼ばれています。このようにして、過去の統計データが大量にある場合、翌日の予測は非常に正確になります (信頼区間 (発生する可能性のあるエラー) も特定できます)。次の日は、ますます精度が低くなります。
曜日ごとに異なるモデルを作成し、休日や特別な日を変数として含めると、はるかに高い精度が得られます。
これは、将来の値を数学的に予測する唯一の正しい方法です。しかし、これらすべてから疑問が生じます。それは本当に価値があるのでしょうか?
まず、データベースに接続してから、x日前にデータを取得します。次に、前の日に最適なラインを作成し、それを使用して将来に拡張することを試みることができます。ただし、アプリケーションによっては、最適なラインでは十分ではありません。
簡単なアプローチは、日ごとにグループ化し、各値を平均することです。これはすべてSQLで実行できます