dlinyj: (Default)
[personal profile] dlinyj
Есть любопытная задачка анализа данных.  Есть такие вот полученные данные измерения скорости.



Тут примерно 5000 точек, но в будущем возможно будет на несколько порядков больше. Каждая точка примерно раз в минуту.
Как хорошо видно, скорость пляшет будь здоров (и да, вот у вас тоже так выглядит). Но есть некое среднее значение, которое можно принять за базу. А так же есть максимальное и минимальное значение (разброс). И результирующий график я вижу как-то так.



Вот подскажите мне, каким лучшим образом получить второй график и оценить разброс (дисперсию). Из примитивных способов - это взять скользящее среднее, допустим по десять значений (почему по десять?) и получить сглаженный график и там же вычислить дисперсию по этим десяти точкам.
Но что-то мне подсказывает, что это не очень красиво и не очень правильно. Буду рад услышать любые идеи.
Приглашаю к обсуждению [livejournal.com profile] eddy_em

Date: 2020-04-26 03:26 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Возьми лучше скользящую медиану.
Следующий вариант - подобрать КИХ-фильтр какой-нибудь. Но все равно, у тебя есть какие-то совсем ненормальные выбросы, даже плавающая медиана по 9 точкам их бы подчистила. А дальше — уже любой аналитический фильтр.

Date: 2020-04-26 03:33 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Самое забавное, что это реальные цифры, то есть оно в действительности скорость в один момент была такая, а в другой другая.

Date: 2020-04-26 03:34 pm (UTC)
From: [identity profile] eddy-em.livejournal.com
Биения что ли какие-то?
А какая точность измерения скорости?
Тьфу, не посмотрел сразу, что это скорость upload/donload…
Edited Date: 2020-04-26 03:34 pm (UTC)

Date: 2020-04-26 04:00 pm (UTC)
From: [identity profile] dibr.livejournal.com
А почему бы и не скользящее среднее? Оно плохо в основном тем, что плохо отрабатывает ступеньки и короткие одиночные импульсы, превращая первые в "трамплины", а вторые - в "тумбочки", но в исходных данных вроде бы ничего такого нет. Можно ещё взвешенное скользящее среднее взять, с конечного размера "колокольчиком" в качестве весовой функции, у него артефактов меньше, но на таких данных это скорее всего не нужно. Насчёт "правильно" - среднее имеет понятный физический смысл - это реальное отношение объёма прокачанных данных к времени на промежутке усреднения, у других функций с "физическим смыслом" обычно сложнее.

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

Ширину окна выбирать субъективно, по желаемой гладкости графика. Тут явно можно довольно большое окно замутить, как бы не в несколько десятков точек если не больше. Окно обычно берут нечётного размера - тогда центральная точка окна ляжет на реальную точку на оси времени, но это более эстетика чем наука :-)

Date: 2020-04-26 07:37 pm (UTC)
From: [identity profile] 5kopejek.livejournal.com
А для чего нужно получить усредненную кривую? Какой ее смысл?
Если чтоб оценить эффективность канала в целом то проще замерять не мгновенную скорость а отправить большой обьем замерить время и поделить. Вот и усредненная скорость. И усреднять уже эту скорость.
А на графике этом мы видим мне кажется не эффективность канала а график загруженности линии в зависимости от времени. Все имхо.

Date: 2020-04-26 08:21 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
У тебя данные уже есть, это хорошо. Хорошо, что тебе не надо делать расчет в реальном времени. А потому ты можешь натравить на этот график любой цифровой фильтр, хоть КИХ, хоть БИХ.

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

Я бы, наверное, прогнал данные через FFT, посмотрел граничные частоты "шума" и наложил ФНЧ какого-нибудь Баттерворта, он, помнится, считается проще других. А уж посчитать по нормализованным данным СКО - дело одной формулы...

ПыСы: Кстати, отклонение отличаться почти не будет в очень большом диапазоне фильтров, от умеренного скользящего среднего до более умных фильтров более высоких порядков. Только если начнешь давить и низкочастотные колебания - тогда уползет.
Edited Date: 2020-04-26 08:33 pm (UTC)

Date: 2020-04-27 06:52 am (UTC)
From: [identity profile] casamusa.livejournal.com
Ваще не математик, но чего б не так: 2*log(x)*sin(x)?

Date: 2020-04-27 07:45 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Подскажи мне, что делать с этой формулой?

Date: 2020-04-27 07:46 am (UTC)
From: [identity profile] dlinyj.livejournal.com
>> А для чего нужно получить усредненную кривую? Какой ее смысл?
Смысл в лучшей визуальной оценке сигнала.

>>Если чтоб оценить эффективность канала в целом то проще замерять не мгновенную скорость а отправить большой обьем замерить время и поделить. Вот и усредненная скорость. И усреднять уже эту скорость.
На графике каждая точка снята таким образом. Это не помогает.

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

Date: 2020-04-27 07:48 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Скользящее среднее меня смущает тем, что оно слижет немного горбы и может сигнал сдвинуть. А этого бы не хотелось. Но вообще ты прав, надо подумать.

Date: 2020-04-27 07:59 am (UTC)
From: [identity profile] aterentiev.livejournal.com
тогда делай нормальный БИХ-фильтр (как минимум, его аппроксимацию) "с захватом будущего" на пост-обработке, но любой фильтр будет слегка задерживать волны, так или иначе, и придется эту задержку математически компенсировать

Date: 2020-04-27 08:58 am (UTC)
From: [identity profile] casamusa.livejournal.com
Выдернул из прода, где графики рисуем.
Уже второй час я пытаюсь осознать как же всё-таи мы их рисуем.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 07:49 pm
Powered by Dreamwidth Studios