Статистика / алгоритм: Как сравнить недельный график с его собственной историей, чтобы увидеть, когда в прошлом он был почти таким же? - PullRequest
0 голосов
/ 09 октября 2018

У меня статистическая / математическая проблема, с которой я столкнулся, и я действительно надеялся получить помощь.Я работаю над исследованием, в котором мне нужно сравнить недельный график с его собственной историей, чтобы увидеть, когда в прошлом он был почти таким же.Думайте об этом как о «поиске ближайшего соответствия».Информация отображается в виде линейного графика, но она легко доступна в виде необработанных данных:

  • Дата ...................Результат

    • 08/10/18 ...... 52,5
    • 08/07/18 ...... 60,2
    • 08/06/18 ...... 58,5
    • 08/05/18 ...... 55,4
    • 08/04/18 ...... 55,2
  • и т. Д. ...

Что я действительно хочу, так это чтобы выход был формой корреляции между текущими точками данных и другим набором из 5одновременные данные в истории.Итак, что-то вроде:

  • Диапазон дат ..................... Корреляция

    • 07/10 / 18-07 / 15/18 .... 0,98

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

Вот где начинается сложность: поскольку числа с течением времени имеют тенденцию к общему росту, мы не хотим, чтобы они сравнивали абсолютное значение (поскольку числа могут никогда не совпадать).Одним из предложений было сравнение дельты (скорости изменения в процентах по сравнению с предыдущим днем) или использование логарифмической шкалы.

Мне интересно: как мне это сделать?Какой вид расчета я могу использовать для получения желаемых результатов?Я смотрел на различные виды уравнений корреляции, но они не учитывают «форму» данных, а обычно просто усредняют их.Важна форма линейного графика.

Заранее большое спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

Я бы просто разделил данные каждой недели на их среднее значение (т.е. нормализовал бы их до 1), а затем суммировал квадраты разностей каждого дня каждой пары недель.Эту сумму вы хотите минимизировать.

Если вас не волнует, сколько графиков колеблется относительно его среднего значения, вы также можете нормализовать дисперсию.Для каждой недели вычислите среднее значение и дисперсию, затем вычтите среднее значение и разделите на корень дисперсии.Каждая неделя будет иметь среднее значение 0 и дисперсию 1. Затем сведите к минимуму сумму квадратов различий, как и раньше.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...