Кривая наилучшего соответствия линии тренда - PullRequest
5 голосов
/ 24 марта 2010

Ограничения проблемы

  • Размер набора данных, но не сами данные, известен.
  • Набор данных увеличивается на одну точку данных за раз.
  • Линия тренда отображается по одной точке данных за раз (с использованием кривой сплайна / кривой Безье).

Графы

Коллаж ниже показывает наборы данных с достаточно точными линиями тренда:

enter image description here

Графики:

  • Верхний левый. По часам с ~ 24 точками данных.
  • Верхний правый. По дням в течение года, с ~ 365 точками данных.
  • Внизу слева. По неделям в течение одного года, с ~ 52 точками данных.
  • Внизу справа. По месяцам за один год, ~ 12 точек данных.

Пользовательские входы

Пользователь может выбрать:

  • тип временных рядов (ежечасно, ежедневно, ежемесячно, ежеквартально, ежегодно); и
  • даты начала и окончания временного ряда.

Например, пользователь может выбрать ежедневный отчет за 30 дней в июне.

Тренд Вес

Для расчета размера окна (т. Е. Количества точек данных для усреднения при расчете линии тренда) используется следующее выражение:

data points / trend weight

Где data points получено из пользовательских данных, а trend weight равно 6.4 . Даже если вес тренда, равный 6,4 , хорошо подходит, он довольно произвольный и может не подходить для разных пользовательских вводов.

Вопрос

Как рассчитать trend weight с учетом ограничений этой задачи?

Ответы [ 3 ]

1 голос
/ 24 марта 2010

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

(Data points)^1.2/14.1

Я понимаю, что это даже более произвольно, чем то, что у вас уже есть, но произвольное - не самое страшное в мире.

(Я получил 14,1, пытаясь сохранить фиксированный 52-точечный график, поскольку он выглядит хорошо, взяв (52^(1.2)/52)*6.4=14.1. Используя эту технику, вы можете попробовать другие способности, кроме 1,2, чтобы увидеть, что вы получаете визуально.

Dan

0 голосов
/ 24 марта 2010

Может показаться, что линии тренда на этих 4 графиках точны, но на самом деле они совершенно не верны. (Это лучше всего видно в начале нижнего левого и в начале верхнего правого. Я думаю, что вы хотели бы использовать не менее половины своих точек при поиске линии тренда (хотя на самом деле вы должны использовать гораздо больше больше половины). Я бы предложил максимальный вес тренда 2. Хотя на самом деле вы должны придерживаться диапазона 1-1,5. Так как это произвольно, я бы посоветовал вам дать вашему пользователю ползунок «Точность линии тренда», который они могут использовать там, где наиболее точная настройка использует вес тренда 1, а наименее точный - вес #of data points +1. Это будет использовать 0 баллов (забавно, что вы всегда округляетесь), и, я полагаю, хотя ваше программное обеспечение для статистики может быть отличается, сгенерирует прямую горизонтальную линию.

0 голосов
/ 24 марта 2010

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

Я боюсь, что это может быть методом проб и ошибок с весом тренда, пока вы не увидите улучшенную посадку.

Возможно, вы могли бы сделать это также и для пользователей: позволить им манипулировать значением, учитывая реалистичные ограничения, пока они не получат удовлетворительные значения.

Мне также стало интересно, будет ли вес отличаться для каждого графика, поскольку количество точек в каждом из них различно. Вы пытаетесь получить один вес, который работает для всех графиков?

Отличная работа; хороший вопрос Отлично сработано. Я хотел бы быть более полезным. Возможно, у кого-то еще будет больше мудрости, чем я.

...