Задача -
изменить форму кривой распределения вероятностей, со средним отличным от 0 так чтобы среднее стало 0 сохранив плавные формы и корректность.
Корректность означает что а) х и форма должна примерно сохранится, просто вычесть среднее из х нельзя б) преобразовать сохраняя плавные формы в) не должно быть разрыва по середине г) концы распределения должны остаться неизменными д) левые и правые части распределения должны монотонно возрастать и монотонно убывать соответственно.
Неправильно: можно умножить половину что меньше нуля на некий множитель, и среднее станет 0, график ниже, но будут 2 проблемы а) разрыв в нуле и б) концы изменились,.
Изображение в обычном и лог маштабе (синий исходный, черный измененный)
https://i.imgur.com/C9tpDLa.jpegПравильно: плавно изменена форма графика в центрах левой и правой частей, в нуле форма сохранена непрерывной, концы не затронуты.
Изображение в обычном и лог маштабе (синий исходный, черный измененный)
https://i.imgur.com/Otvg2Z1.jpegНо, алгоритм получился медленным. Алгоритм: а) используется функция сглаживания с весами разрешающая менять только значения в середине частей б) затем проверяется монотонность и восстанавливается если нарушилась, в) все это требует нескольких итераций пока не будет достигнута требуемая точность близости среднего к нулю.
Вопросы:Есть ли быстрый алгоритм который делает это?
И, более сложная задача, нужно откалибровать полученное распределение. Имея функцию ошибки по каждому квантилю, нужно изменить график так чтобы минимизировать ошибку, нормой L2 или L1. С ограничениями а) сохранив среднее 0 б) не допуская разрывов в) сохранив монотонность левых и правых частей. Функция ошибки выглядит как набор пар {q: 0-0.1, x1.5} (в квантиле 0-0.1 наблюдаемые значения в 1.5 раза превысили ожидаемые), {q: 10-20, x0.8} (в квантиле 10-20 наблюдаемые значения в 0.8 превысили ожидаемые) и т.д. Задча - поменять форму чтобы эта ошибка минимизировалась и
сохранив корректность.