Кривые в PHP - PullRequest
       41

Кривые в PHP

1 голос
/ 28 апреля 2010

У меня есть таблица MySql под названием today_stats.У него есть идентификатор, дата и клики.Я пытаюсь создать скрипт для получения значений и пытаюсь предсказать следующие 7 дней кликовКак я могу предсказать это в PHP?

Ответы [ 5 ]

2 голосов
/ 28 апреля 2010

Различные типы подгонки кривой описаны здесь: http://en.wikipedia.org/wiki/Curve_fitting

Также: http://www.qub.buffalo.edu/wiki/index.php/Curve_Fitting

1 голос
/ 29 апреля 2010

Алгоритм, который вы ищете, называется Наименьших квадратов

Вам нужно минимизировать суммарные расстояния от каждой точки до функции, которую вы будете использовать для прогнозирования будущих значений. Чтобы расстояние всегда было положительным, в расчет принимается не абсолютное значение, а квадрат значения. Сумма квадратов разностей должна быть минимальной. Определив функцию, которая составляет эту сумму, выведя ее, решив полученное уравнение, вы найдете параметры для вашей функции, которые будут БЛИЖАЙШИЕ к статистическим значениям из прошлого.

Такие программы, как Excel (может быть, и OpenOffice Spreadsheet) имеют встроенную функцию, которая делает это за вас, используя полиномиальные функции для определения зависимости.

Как правило, вы должны принимать Time как независимое значение, а все остальные как описанные значения.

Это называется эконометрикой, потому что оно широко распространено в экономике. Таким образом, если у вас много статистических данных из прошлого, прогноз на следующий день будет достаточно точным (вы также сможете определить доверительный интервал - возможная ошибка, которая может возникнуть). Следующие дни будут все менее и менее точными.

Если вы создадите разные модели для каждого дня недели, включите в качестве переменных выходные и особые дни, вы получите гораздо более высокую точность.

Это единственный ПРАВИЛЬНЫЙ способ математического прогнозирования будущих значений. Но из всего этого возникает вопрос: Стоит ли оно того?

1 голос
/ 28 апреля 2010

Это связано не столько с PHP, сколько с математикой. Самый простой способ рассчитать что-то вроде этого - взять средний трафик за данный день за последние X недель. Вы не хотите извлекать все данные, потому что изменения и содержимое страницы изменяются.

Так, например, получите средний трафик за каждый день за последний месяц. Вы сможете сказать, насколько точны ваши оценки, сравнив их с фактическим трафиком. Если они не совсем точны, попробуйте поиграть с расчетом (например, измените период времени, из которого вы производите выборку). Или, может быть, хорошо, что ваша оценка неверна: ваш сайт только что появился на первой странице New York Times!

Приветствие.

0 голосов
/ 28 апреля 2010

простой подход - группировать по дням и усреднять каждое значение. Все это можно сделать в SQL

0 голосов
/ 28 апреля 2010

Начните с подключения к базе данных и последующего извлечения данных за x дней до этого. Тогда вы могли бы попытаться создать линию, наиболее подходящую для предыдущих дней, а затем просто использовать ее и продолжить в будущем. Но в зависимости от приложения линия наилучшего соответствия не будет достаточно хорошей.

...