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

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

Два значения точно не хватит. )) Нужно минимум три - начальное и два конечных.
А среднее арифметическое не подойдёт из-за того, что при очень резком снижении между первым и вторым значением результаты расчётов не будут показательными. Например:

200
52
51

Среднее арифметическое - 101. И что это даст? От последнего значения далеко, но судя по последним двум значениям относительно первого снижение практически прекратилось.
 
Странно как-то. Брать 3-5 значений, как по мне, совсем не вариант.
Например (как я понимаю, временной зависимости нет:(
человек заходит каждый день и пишет информацию: 99, 98, 99, 97, 97,5, 97,5 95, 95 (% соотношение между последними минимальное)
человек заходит раз в неделю: 99, 95, 90, 88, 82 (соотношение приличное)
человек заходит как хочет: 99, 98, 90, 88, 80
Итого: при 1м варианте 1% мы получим в скором времени, так же, учитываем фактор что человек может набрать вес (пусть, и в минимальном объеме).

Как по мне, проще привязывать к времени. Соотв. разница у нас будет /дни, и будет ср. сброс веса по дням.
+ Брать максимальные отрезки, допустим, условиие:
если результатов не меньше 30
считаем средние за каждые 5 дней
смотрим динамику между ними (Главную роль будут играть последние 3 значения, остальные используем в качестве доп. проверки (т.е. падал ли вес так же медленно (но не 1%, например, а 3%)
если меньше - берем более мелкие отрезки.

Ну а при пробелах по времени соотв. считать тупо:
1й день - 110 кг
10 день - 90 кг
итого 2 кг за день.
 
Что-то ИМХО вы чересчур заморачиваетесь
Может каждый последующий вес проще сравнивать с предыдущим, и если разница скажем менее 1%(пороговое значение)
то наблюдается снижение динамики -
Возьмем данные по месяцам
100кг это изначальный вес
80кг вес изменился на 20% по сравнению с предыдущим 100кг ок...
65кг вес изменился на 12% по сравнению с предыдущим 80кг ок...
60кг вес изменился на 3% по сравнению с предыдущим 65кг ок...
57кг вес изменился на 1.8% по сравнению с предыдущим 60кг ок...
55кг вес изменился на 1.14% по сравнению с предыдущим 57кг ок...
54кг вес изменился на 0.55% по сравнению с предыдущим 55кг stop!
53кг вес изменился на 0.54% по сравнению с предыдущим 55кг stop!

___________________________________________________________
60кг это изначальный вес
55кг вес изменился на 3% по сравнению с предыдущим 60кг ок...
53кг вес изменился на 1.1% по сравнению с предыдущим 55кг ок...
52,5кг вес изменился на 0.265% по сравнению с предыдущим 53кг stop!
52кг вес изменился на 0.262% по сравнению с предыдущим 52.5кг stop!


Если % изменения веса < 1%(пороговое значение) то{ наблюдаем замедление динамики снижения веса}

Ну и далее посчитаем по дням
1% изменений это пороговое значение для месяца
для одного дня соответственно этот порог будет 1% разделить на 30 =0.03333333%
для одного часа соответственно этот порог будет 1%разделить на 30 и разделить на 24 =0,0013888888888889%
Считаем сколько часов/дней прошло с момента последнего измерения допустим 6 дней
0,0013888888888889%*24*6=0.2%
Значит если с момента с последнего измерения 6 дней назад вес изменился менее чем на 0.2% то налицо замедление динамики снижения веса

Также можно попробовать учитывая изначальный вес играться с границами порогового значения
Если изначальный вес от 80-100кг то пороговое значение 1.5% в месяц
Если изначальный вес от 60-80кг то пороговое значение 1.0% в месяц
Если изначальный вес от 40-60кг то пороговое значение 0.5% в месяц
 
Последнее редактирование:
  • Нравится
Реакции: zonr
ХЗ, я обычно в таких случаях переношу настройки функций в админку и пусть потом пользователь играется значениями.
Зачем мне угадывать — когда началось снижение/набор веса?
Пусть в админке задаст юзер цифры, допустим «изменение веса более чем на Х% в течение Х дней, учитывать Х значений» — здесь «Х» подставляемые значения.
И пусть потом у юзверя болит голова — какие параметры задать.
Можно даже каждому юзверю индивидуально параметры позволить задать — и будет задавать сам параметры в зависимости от своего веса и потребностей.
 
100кг это изначальный вес
80кг вес изменился на 20% по сравнению с предыдущим 100кг ок...
65кг вес изменился на 12% по сравнению с предыдущим 80кг ок...

Что такое 12%?

Первые 20% понятно:
100 - 80*100/100 = 20%

А дальше?
80 - 100%
65 - 81,25%
100 - 82,25 = 18,75%

А если от начального считать и сравнивать изменение отношения второго к первому и третьего к первому, то получается:
100 - 100%
65 - 65%
100 - 65 = 35%
35% - 20% = 15%

Как ты вышел на цифру 12? ))
 
это на сколько уменьшилось по отношению не к изначальному весу а к предыдущему
100кг это изначальный вес
80кг вес изменился на 20% (100-80)/80*100=20%
65кг вес изменился на 12% (80-65)/65*100=12%
60кг вес изменился на 3% (65-60)/60*100=3%
57кг вес изменился на 1.8% (60-57)/57*100=1.8%
55кг вес изменился на 1.14% (57-55)/55*100=1.14%
 
Оки.

80-65 = 15
15/65 = 0,23...
0,23*100 = 23

КАК у тебя получается 12%? ))
А тьфу неправильно составил
80-65=15
На 15 кг изменился вес это составляет 12 % от 80
80/100*15=12
При следующем измерении вес составил 60 кг по сравнению с предыдущим
65-60=5
изменение на 5 кг
5 кг это 3,25% от 65
65/100*5=3,25%
Далее
60-57=3
60/100*3=1,8%
Далее
57-55=2
57/2*100=1,14%
 
  • Нравится
Реакции: zonr
Назад
Сверху