PHP. Мозговой штурм: как на основании графика (или данных графика) сформировать условие

Дело в том, что придется потом КАЖДЫЙ элемент выборки сравнивать с этим среднеарифметическим и определять еще кучу переменных/массивов и пр. :) Это как померять среднюю температуру по больнице (с моргом включительно :) ) и пытаться понять, кто из больных уже "закипает", а на кого уже белые тапочки заказывать :)
Зачем такие сложности? ИМХО все проще. Имеем N отрезков на графике, вычисляем в реальном времени появляющиеся новые отрезки данных. Что видим - 36, 32, 30, 25, 37, 24, 28, 15, 10, 9.5 , 9.4 - опа, 0.1 у нас и есть как бы наш порог, и вот она красная точка.
 
Все зависит от скорости появления этих самых значений и необходимой скорости и точности вычислений, а так можно и по 2-м значениям вычислять :). .....

А по-моему, идея гениальна. )) Только осталось её чуть-чуть доработать. ))

Дело в том, что придется потом КАЖДЫЙ элемент выборки сравнивать с этим среднеарифметическим и определять еще кучу переменных/массивов и пр. :) ......

:D

Зачем такие сложности? ИМХО все проще. Имеем N отрезков на графике, вычисляем в реальном времени появляющиеся новые отрезки данных. Что видим - 36, 32, 30, 25, 37, 24, 28, 15, 10, 9.5 , 9.4 - опа, 0.1 у нас и есть как бы наш порог, и вот она красная точка.

Стоп. Что такое отрезки? Дельта соседних значений?
 
Последнее редактирование модератором:
Стоп. Что такое отрезки? Дельта соседних значений?
Ну это те самые ОТРЕЗКИ в 2-5-n значений, внутри которых мы и вычисляем среднеарифметическое значение, и потом из среднеарифметических уже делаем анализ для красной точки. так что нет необходимости КАЖДЫЙ элемент сравнивать.
 
  • Нравится
Реакции: zonr
Хорошо, а как можно выразить размер минимального порога НЕ в конкретных статичных единицах? А в процентах, например.

Легче лёкого :)
Берем первый сравниваемый элемент массива за 100% и вычисляем, сколько процентов от 100 будет значение второго сравниваемого элемента:
a[6]=100 (%)
a[7]=z (%)

z= a[7]*100 / a[6]
Затем от z отнимаем 100%. Берем абсолютное значение этой разницы и сравниваем её с заданной заранее дельтой :) Если "вписываемся", то норм. Если нет, читаем мой пост выше.

Да это понятно, что "5" - для примера. )) Хватит и двух. Наверное.
Нет, двух явно не хватит. Вообще, если верить "матстату", то при кол-ве элементов равным 3, ошибка эксперимента составляет 33%. При увеличении кол-ва элементов, ошибка эксперимента уменьшается.
В идеале элементов 200 бы взять.
 
  • Нравится
Реакции: zonr
Ну это те самые ОТРЕЗКИ в 2-5-n значений, внутри которых мы и вычисляем среднеарифметическое значение, и потом из среднеарифметических уже делаем анализ для красной точки. так что нет необходимости КАЖДЫЙ элемент сравнивать.
Вот это я имел ввиду. Как мы сделаем анализ, без сравнения каждого элемента "отрезка" со средним арифметическим?
Я не утверждаю, что мой метод единственно верный.
Просто он быстрее, имхо.
 
Вот это я имел ввиду. Как мы сделаем анализ, без сравнения каждого элемента "отрезка" со средним арифметическим?
Я не утверждаю, что мой метод единственно верный.
Просто он быстрее, имхо.
А как бы и бесполезно сравнивать в данном случае каждый элемент внутри отрезка данных. Допустим, среднеарифметическое у нас 36.6 и внутри отрезка нашлось значение 36.5 и что - вот оно? :) Это будет ошибкой, ведь в конце отрезка может быть значение и 15 и 5. В любом случае для достоверности лучше сравнивать ОТРЕЗКИ данных, хотя конечно возрастает время вычисления и появляется вероятность, что наша красная точка будет ВНУТРИ отрезка данных (и для этого чем меньше данных в 1 отрезке, тем лучше).
С точки зрения математики твой способ, конечно, быстрее. Хотя я математику уже стал подзабывать - старею.... :conf:
 
Последнее редактирование:
  • Нравится
Реакции: zonr
Берем абсолютное значение этой разницы и сравниваем её с заданной заранее дельтой

А потом каждое последующее значение сравниваем с начальным? Но имеет же ещё и значение, насколько изменилось текущее значение по сравнению с предыдущим (или с несколькими предыдущими).

Вес одного человека по месяцам:
100
80
65
60
57
55
54
53

Вес другого человека по месяцам:
60
55
53
52,5
52

Абсолютное значение дельты в этих случаях будет разным... Между первым и последним элементом у первого человека почти 50%, у второго между первым и последним - 20%.
Тогда уже получается, что нужно сравнивать процентное изменение между двумя (или больше) последними данными по отношению к первоначальному.

100 - 100%
54 - 54%

100 - 100%
53 - 53%

54 - 53 = 1%

*****
60 - 100%
52,5 - 87,5%

60 - 100%
52 - 86,6%

87,5 - 86,6 = 0,9%

Хм.... Прикольно! ))))))
 
Так ты хочешь единой дельтой мерять весь город? Есс-но дети/женщины/мужчины по-разному худеют и набирают вес. Также от возраста человека зависит скорость набора/сброса веса. Молодежь вообще за вечер может набрать 3 кило и на след. день всё сбросить в унитаз, т.к. обмен веществ работает на 146%.
Нельзя единой шкалой мерять и ... и огурцы :)
Опять же, в зависимости от скорости изменения данных будет меняться и количество отбираемых для анализа "точек".
Главное, что ты примерно поняла принцип действия алгоритма обсчета. А "фонарики" прикрутить - дело одного вечера :)
 
  • Нравится
Реакции: zonr
Так ты хочешь единой дельтой мерять весь город?

Да! Иначе вообще не возникло бы необходимости создавать эту тему, потому что достаточно было бы абсолютных значений. А нужны относительные, чтобы подходило под всё. ))

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

Важна начальная точка отсчёта и последние 2-3.

Ситуации:
100
80
65
60
57
55
54
53

и

100
55
54
53

Будут иметь одинаковый результат - снижение значения практически остановилось, следовательно, условие выполнится и неважно, сколько времени прошло с момента начала отсчёта, неважно, на сколько изменились конечные показатели по сравнению с начальными, неважно, насколько резким или плавным было снижение и есть ли вообще какие-либо промежуточные варианты. Важно только то, что сейчас снижения почти нет.

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

:beer:
 
возможно не совсем правильно понял задачу, но я бы искал точку перелома так, по оси Х - значения с шагом задающим дискретность (месяц, час, секунда) и смотрел бы отношение Y(x n-ное -1)/Y(x n-ное), когда это отношение максимально приближается к 1 (единице) с заданной точностью это и есть точка перелома
 
Назад
Сверху