Перейти к содержанию
    

Равномерное распределение с размытыми границами

Допустим, измеряемая величина имеет равномерное распределение в диапазоне от Xm до Xn. Из-за погрешностей измерения, шума, дрейфа и т.п. края этого распределения не идеально ровные, а плавно спадают. Т.е. с малой вероятностью возможно получение результатов за пределами Xm...Xn. Так же возможно, что измеренные значения не будут занимать весь диапазон Xm...Xn. В обоих случаях нужно подкорректировать значения Xm и Xn. Как бы это сделать покрасивее и попроще?

Например, так. Представим, что края спадают линейно. Тогда суммарная вероятность попадания в диапазон, соответствующий спадающему краю будет в 2 раза меньше, чем вероятность попадания в такой же по размеру диапазон где-нибудь в середине (площадь меньше в 2 раза). Если же вероятность оказывается больше или меньше половины, нужно сдвинуть Xm (или Xn).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если "в лоб", то варьируем Xm, Xn, максимизируя функцию Nin/(Ntot*(Xn-Xm)), где Nin - число точек, попавших в диапазон от Xm до Xn, а Ntot - общее число точек.

 

Disclaimer:

Естественно, могу жестоко ошибаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

варьируем Xm, Xn, максимизируя функцию Nin/(Ntot*(Xn-Xm))

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

 

Пополам разбить, и для каждой половины свой алгоритм использовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ясна Ваша задача.

"Нужно подкорректировать" - для какой цели.

Каков критерий, что значения "подкорректированы" именно так, как "нужно"?

Все значения должны попадать в диапазон (в этом случае теоретически он получится бесконечный), или 99%, или 90%.

Какое распределение и дисперсию по отношению к измеряемой величине имеют "погрешности, шум и дрейф"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ясна Ваша задача.

"Нужно подкорректировать" - для какой цели.

Каков критерий, что значения "подкорректированы" именно так, как "нужно"?

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

Все значения должны попадать в диапазон (в этом случае теоретически он получится бесконечный), или 99%, или 90%.

Какое распределение и дисперсию по отношению к измеряемой величине имеют "погрешности, шум и дрейф"?

Теоретически пусть будет бесконечным. А на практике, естественно, будет ограничен. Распределение погрешностей - можно предположить близким к нормальному, хотя, естественно, не до бесконечности. Для простоты можно предположить и линейные спады.

 

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

 

Или еще проще - когда плотность распределения пересекает уровень 0.5.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или еще проще - когда плотность распределения пересекает уровень 0.5.

Ну вот и критерий появился.

Накапливаете гистограмму (можно только по краям, если требуется экономить память и примерно известен диапазон) и находите в ней этот свой уровень 0.5.

Так как про величину дисперсии ошибок Вы не ответили, то более простого (по объему памяти) способа пока нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот и критерий появился.

Накапливаете гистограмму (можно только по краям, если требуется экономить память и примерно известен диапазон)

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

Можно взять, например, 8 точек около Xm, столько же в середине, столько же около Xn. И накапливать количество попаданий в эти участки. Если количество попаданий в участок около границы меньше, чем половина от попаданий в середину, значит, границу нужно передвинуть внутрь. Если больше - наружу. Вопрос, насколько?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если распределение Xm...Xn прямоугольное, то сочинил следующий алгоритм.

После каждого измерения.

 

1. Вычисляю среднее, с помощью экспоненциального фильтра,

Mnew = Mold * (1 - a) + X * a

где a - коэффициент усреднения, например 1/1024.

2. Вычисляю средний модуль отклонения таким же фильтром,

Dnew = Dold * (1 - a) + (|Mold - X|) * a

(Может, здесь нужно Mnew - X?)

3. Вычисляю границы (они отстоят от среднего в 2 раза дальше, чем средний модуль отклонения)

Xm,n = Mnew +- Dnew * 2

 

Как, годится?

Надо проверить в MatLab, но я пока на стадии освоения его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если количество попаданий в участок около границы меньше, чем половина от попаданий в середину, значит, границу нужно передвинуть внутрь. Если больше - наружу. Вопрос, насколько?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

распределение и дисперсия ошибок, которые Вы тщательно скрываете

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну все равно, дисперсия же какая-то есть? Ну там, средняя величина ошибки, уровень шума и т.д.

Относительно уровня сигнала.

Изменено пользователем alexvu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие-то есть :) это все, что я могу предположить.

Вопрос стоит не в том, чтобы знать, насколько точно измеряет измеритель. А в том, насколько стабильна сама измеряемая величина (у меня же созданная). Которая должна принимать некие значения, равномерно распределенные в диапазоне Xm...Xn, но может плавать по разным причинам. Ну, и сам измеритель добавляет ошибок.

 

Высчитывать влияние этих причин мне не кажется благодарным делом. Знание вероятной дисперсии результата с учетом всех факторов мне поможет разве что в оценке качества нужного фильтра (та самая "a" (альфа должна называться), которую я указал в сообщении №8). Начну с чего-нибудь...

 

Мне достаточно следить за результирующим диапазоном Xm...Xn и использовать его для правильной интерпретации каждого результата измерения. Важны относительные измерения, не абсолютные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Набираете статистику, аппроксимируете плотность распределения, н-р, трапецией (по Вашему описанию - достаточно), определяете поведение пределов распределения при изменении распределения.

Инженерно реализуете полученную модель (достаточно соотношений площадей крыльев трапеции к её центру == гистограмма о 3-ёх столбцах) арифметическим образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Инженерно реализуете полученную модель (достаточно соотношений площадей крыльев трапеции к её центру == гистограмма о 3-ёх столбцах) арифметическим образом.

Да, так и планировал. И делал что-то подобное. Но сегодня осенился новой идеей, более простой (сообщение №8). Буду хранить только два числа - середину диапазона и средний модуль отклонения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Буду хранить только два числа - середину диапазона и среднее отклонение.

Кстати, имеет место интересный факт: для вычисления среднего значения и среднеквадратичного отклонения достаточно двух сумм - суммы квадратов чисел и просто суммы чисел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...