реклама на сайте
подробности

 
 
> Усреднение двумерных выборок
minibrain
сообщение Nov 19 2015, 15:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Здравствуйте. Прошу помощи в решении такой задачи.
Имеется массив плоских координат [x, y]. Большинство значений колеблются вокруг одной точки, но часть значений находятся очень далеко. Как можно реализовать фильтрацию?
В данный момент находится среднее арифметическое по обеим координатам, но выбросы порождают большое смещение от точки, на которую указывает большинство измерений.
Хотелось бы как-то автоматически определять центр скопления точек (район максимальной плотности). Прошу подсказать подходящий алгоритм.
На прикрепленном рисунке зеленым цветом помечены выборки. Розовым - действительное значение (из модели), черным - среднее арифметическое.

Спасибо за внимание.


Сообщение отредактировал minibrain - Nov 19 2015, 15:09
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 41)
ШСА
сообщение Nov 19 2015, 15:18
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Цитата(minibrain @ Nov 19 2015, 18:08) *
Имеется массив плоских координат [x, y]. Большинство значений колеблются вокруг одной точки, но часть значений находятся очень далеко. Как можно реализовать фильтрацию?

Маленькое уточнение: координаты должны обрабатываться по мере поступления (в реальном времени) или обрабатывается сразу готовый массив?
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 19 2015, 15:18
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Построить гистограмму. Выбрать x и y соответствующие максимуму гистограммы.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 19 2015, 15:18
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(minibrain @ Nov 19 2015, 19:08) *
Здравствуйте. Прошу помощи в решении такой задачи.
Имеется массив плоских координат [x, y]. Большинство значений колеблются вокруг одной точки, но часть значений находятся очень далеко. Как можно реализовать фильтрацию?

Решение "в лоб" - построить двумерную гистограмму, т.е. разбить плоскость сеткой, размеры которой определяются необходимой точностью определения координат.
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 15:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



для начала добавить в вычисление среднего вес, исходя из плотности точек на единицу площади, а найдя более менее нормальный максимум, посчитать среднеквадратитчное отклонение и выкинуть точки что за тремя сигмами оказались, и пересчитать еще раз среднее уже без весов.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 15:21
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Цитата(ШСА @ Nov 19 2015, 16:18) *
Маленькое уточнение: координаты должны обрабатываться по мере поступления (в реальном времени) или обрабатывается сразу готовый массив?

Готовый массив.
Go to the top of the page
 
+Quote Post
ШСА
сообщение Nov 19 2015, 16:25
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Цитата(minibrain @ Nov 19 2015, 18:21) *
Готовый массив.

Что-то не дождусь реакции гуру.
Есть дедовский итерационный алгоритм последовательного отсечения недостоверных отсчётов.
1. Вычисляем среднюю точку O1 усреднением всех точек;
2. Вычисляем радиус от O1 до каждой имеющейся точки и выявляем максимальный радиус отклонения Rmax;
3. Задаём радиус отсечения R0, меньший Rmax. Например R0 = Rmax/2;
4. Просматриваем все точки и подсчитываем число точек, для которых радиус отклонения от O1 превышает R0;
5. Если число таких точек превышает 10%, увеличиваем R0 на половину разницы между Rmax и R0. Переход к п.4.;
Если число таких точек равно нулю, уменьшаем R0, например, на 10%. Переход к п.4.;
6. Вычисляем среднюю точку O2 усреднением тех точек, для которых радиус отклонения от O1 не превышает R0;
7. Если расстояние между O1 и O2 превышает заданную точность, присваиваем O1 = O2; Переход к п.2;
Иначе Выход.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 16:30
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Спасибо всем, кто ответил. Попробовал построить hist3 в матлабе. Очень хорошо, на первый взгляд.
Может, есть какая-то хорошая, проверенная библиотека на С/С++, которая решала бы эту задачу?

С тремя сигмами пробовал, но выдающихся результатов почему-то не получил.
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 16:38
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(minibrain @ Nov 19 2015, 23:30) *
С тремя сигмами пробовал, но выдающихся результатов почему-то не получил.

Давайте данные.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 16:52
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



_pv, реальных данных не сохранилось. Проверю тогда снова на сигмах моделированные данные, если результата не будет - выложу, чтобы ваше время зря сейчас не тратить.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 19 2015, 16:53
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(minibrain @ Nov 19 2015, 19:30) *
Может, есть какая-то хорошая, проверенная библиотека на С/С++, которая решала бы эту задачу?

В GSL есть функции гистограмм.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 17:33
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



_pv, Вы не могли бы дать ссылку на примерное описание (формулы, или программу в матлабе) того, что вы имели в виду? может, я что-то не верно делал просто.
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 17:56
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(minibrain @ Nov 19 2015, 23:52) *
_pv, реальных данных не сохранилось. Проверю тогда снова на сигмах моделированные данные, если результата не будет - выложу, чтобы ваше время зря сейчас не тратить.

я про исходные данные по которым картинка в первом посте нарисована.

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

а вообще, если вычислительной мощности не жалко, считайте двумерную корреляцию с гауссом,
или же вообще наименьшими квадратами его же на данные натягивайте, там отдельные удалённые точки на положение максимума особо влиять не будут.
либо вообще построить двумерную гистограмму, и по полученной пикселизированной картинке, что-то вроде преобразования Хафа с тем же Гауссом (сложить картинку саму с самой собой со смещениями и с весом по тому же Гауссу), оно всякие левые скопления точек не похожие по форме на Гаусса с заданной шириной хорошо отфильтрует, и потом уже искать среднее.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 18:23
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Я делал так:
1) сортировал массив по координате х.
2) брал из него медианное значение.
3) для каждого элемента в массиве вычислял значение delta = abs(X - Xmedian); delta2 = delta ^2;
4) Вычислял среднее значение delta2. Назовем его delta2Average.
5) Вычислял deviation = sqrt(delta2Average / size). size - количество усредняемых точек. В моем понимании это сигма.
6) Выкидывал все выборки, для которых delta > (deviation * 3).
7) Пункты 1-6 для координаты у.
8) Брал среднее арифметическое по х и у.

Расписал подробно потому что математик из меня тот еще. Мог грубо ошибиться.
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 18:42
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(minibrain @ Nov 20 2015, 00:23) *
Я делал так:
1) сортировал массив по координате х.
2) брал из него медианное значение.
3) для каждого элемента в массиве вычислял значение delta = abs(X - Xmedian); delta2 = delta ^2;
4) Вычислял среднее значение delta2. Назовем его delta2Average.
5) Вычислял deviation = sqrt(delta2Average / size). size - количество усредняемых точек. В моем понимании это сигма.
6) Выкидывал все выборки, для которых delta > (deviation * 3).
7) Пункты 1-6 для координаты у.
8) Брал среднее арифметическое по х и у.

Расписал подробно потому что математик из меня тот еще. Мог грубо ошибиться.


скорее всего с первоначальной оценкой начальной точки по медиане не очень хорошая идея, соответственно отбрасываются не те точки, что надо.
если дадите исходные данные с первой картинки, будет гораздо понятнее.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 19 2015, 19:02
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Вот таблица для матлаба. Такой вариант приемлем?
Прикрепленные файлы
Прикрепленный файл  matlab.zip ( 16.16 килобайт ) Кол-во скачиваний: 11
 
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 19 2015, 22:52
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



это некое жульничество, когда на картинке линия их нескольких точек, а на самом деле там не по одной точке, а по десять штук друг на дружке и в результате этих левых точек вообще больше чем тех положение которых посчитать надо.
соответственно там все эти левые точки получаются внутри 3х сигм.
тем не менее если выкинуть точки которые лежат за пределом эллипса из одной сигмы, можно даже пару раз подряд, потом посчитать среднее от оставшихся, и дальше среднеквадратичное отклонение считать уже относительно этого нового среднего, и после этого если выкинуть точки за пределами одной новой сигмы, на данной конкретной картинке получается довольно неплохо, координаты среднего {-5.57342, -7.20079}. ну и сколько именно сигм оставлять надо поподбирать будет, чтобы для других произвольных данных тоже нормально работало.

при этом наименьшие квадраты (последняя страница) дают почти то же самое {x0 -> -5.1126, y0 -> -7.91728}.

по поводу С/С++ библиотек можно еще alglib посмотреть, хотя только для фита наименьшими квадратами из своего приложения можно вообще gnuplotом обойтись.
Прикрепленные файлы
Прикрепленный файл  hist.pdf ( 1.85 мегабайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 19 2015, 23:46
Сообщение #18


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Вариантов много. Один из (вариация на тему того, что предложил ШСА):
1. Назначаем всем точкам равные веса, или, если есть информация о достоверности, то веса пропорциональные достоверности.
2. Находим координаты центра масс системы материальных точек.
3. 'Облегчаем' точки, более удаленные от центра масс. Самое простое: в гауссовской зависимости от расстояния между ц.м. и точкой.
4. Выполняем несколько итераций с п.2

Т.о. с количеством итераций удаленные точки будут уменьшать свой вклад в оценку.
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 10:27
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(minibrain @ Nov 19 2015, 18:08) *
...Имеется массив плоских координат [x, y]. ... определять центр скопления точек (район максимальной плотности)....

Вообще-то "центр скопления" - это математическое ожидание. По-моему, его и надо тупо считать.
minibrain, почему вы уверены, что какие-то "далеко расположенные" точки надо отбрасывать? Раз они физически есть, то обязательно должны учитываться при расчёте матожидания. Если их отбрасывать, то точность определения вашей точки "центр скопления точек (район максимальной плотности)" наоборот, будет хуже.
Наберите в поисковике "Математическое ожидание случайной величины с дискретным распределением" и тупо считайте по этой формуле.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 20 2015, 10:33
Сообщение #20


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



В измерениях есть такое понятие как "outlier" или "выпадающая точка". Они не делают результат точнее, и от них лучше избавиться. Причина их возниконвения - это отдельный вопрос, но есть методики измерений, которые предполагают наличие таких результатов.

Например, вы стреляете в мишень, но в некоторых патронах порох отсырел. Заранее сказать, что патрон плохой, вы не можете. Поэтому совсем уж нелепые результаты вы выбрасываете из оценки кучности стрельбы.

Цитата(r_dot @ Nov 20 2015, 11:27) *
Раз они физически есть, то обязательно должны учитываться при расчёте матожидания. Если их отбрасывать, то точность определения вашей точки "центр скопления точек (район максимальной плотности)" наоборот, будет хуже.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 20 2015, 10:41
Сообщение #21


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Да-да, такие неправильные точки создаются импульсными помехами (не имеющими нормального распределения). Для борьбы с ними нужны медианные фильтры. Это если знать, что есть помеха, а что полезный сигнал. Может статься, именно те точки, выстроенные в линию, и есть полезный сигнал.
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 10:48
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Fat Robot @ Nov 20 2015, 13:33) *
...Причина их возниконвения - это отдельный вопрос...

Если ТС уверен, что это, например, результат сбоев при передаче данных, то возможно "да", но опять же не обязательно. Могут и точки "в самой гуще" тоже быть приняты с ошибкой. А в этом случае тоже ничего отбрасывать не нужно. Да, на закон распределения измеряемой величины наложится закон распределения ошибок. Но для большинства систем он близок к равномерному или гауссову, так что на точность расчёта матожидания повлияет гораздо меньше, чем отбрасывание крайних точек.
minibrain, есть возможность загнать на вход системы константу?

Цитата(ViKo @ Nov 20 2015, 13:41) *
...неправильные точки создаются импульсными помехами (не имеющими нормального распределения). ...

Тогда надо приложить усилия и вычислить этот закон. Или хотя бы приблизительно его прикинув. Потом просто наложить его при вычислении матожидания. Это будет всё равно точнее, чем "отбрасывание".
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 20 2015, 10:51
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(r_dot @ Nov 20 2015, 13:27) *
Вообще-то "центр скопления" - это математическое ожидание. По-моему, его и надо тупо считать.



Вообще-то нет.
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 10:57
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(thermit @ Nov 20 2015, 13:51) *
Вообще-то нет.

У вас авторская секретная математическая школа?
Поделитесь тайными знаниями?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 20 2015, 10:58
Сообщение #25


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(r_dot @ Nov 20 2015, 13:48) *
Тогда надо приложить усилия и вычислить этот закон. Или хотя бы приблизительно его прикинув. Потом просто наложить его при вычислении матожидания. Это будет всё равно точнее, чем "отбрасывание".

Говоря грубо (более подходящего примера не пришло в голову) - вычисляя среднюю температуру по больнице, не нужно учитывать тех, кто уже "остыл". Совсем. w00t.gif
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 20 2015, 11:00
Сообщение #26


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



100 точек с координатами (0,0)
1 точка с координатами (100,100)

Цитата(r_dot @ Nov 20 2015, 11:57) *
У вас авторская математическая школа?
Поделитесь мудростью?
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 11:05
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Fat Robot @ Nov 20 2015, 14:00) *
100 точек с координатами (0,0)
1 точка с координатами (100,100)

И что?
Ну, например, толпа детишек ростом 100 см и один взрослый Валуев 210 см...
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 20 2015, 11:19
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(r_dot @ Nov 20 2015, 13:57) *
У вас авторская секретная математическая школа?
Поделитесь тайными знаниями?



Да какие там тайные знания... Матожидание не обязано совпадать с максимумом плотности (гистограммы).

Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 20 2015, 11:26
Сообщение #29


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



все зависит от того, каково множество измеряемых вами объектов, и какие у вас априорные знания о нем.
Но вполне допустимо и просто числами жонглировать, если результат устраивает вас и/или ваших заказчиков.

Цитата(r_dot @ Nov 20 2015, 12:05) *
Ну, например, толпа детишек ростом 100 см и один взрослый Валуев 210 см...
Go to the top of the page
 
+Quote Post
blackfin
сообщение Nov 20 2015, 11:37
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(r_dot @ Nov 20 2015, 14:57) *
Поделитесь тайными знаниями?

Наверное, самое тайное знание здесь, это знание об эргодичности системы..

Потому как математическое ожидание координаты непрерывной случайной величины равно:

M{X} = Σxi*P(xi<X<xi+1), где:

P(xi<X<xi+1) - вероятность того, что случайная величина "X" имеет значение в интервале "i" от xi до xi+1.

Ну и если случайная величина обладает свойством эргодичности, то эту вероятность можно оценить как:

P(xi<X<xi+1) = mi/Σmi, где:

mi - число точек из выборки размером Σmi, оказавшихся в интервале от xi до xi+1.

Соответственно:

M{X} = (Σxi*mi)/Σmi, где суммирование по всем интервалам "i", или, с учетом того, что:

xi*mi = xi*(1+1+...+1) = xi+xi+...+xi, математическое ожидание равно:

M{X} = (Σxn)/Σmn, где суммирование по всем точкам "n", что совпадает с определением центра масс..

Как-то так..
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 11:37
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(thermit @ Nov 20 2015, 14:19) *
...максимумом плотности (гистограммы).

Ну и что это за величина, по-вашему?
А если ваша гистограмма имеет плоскую волнистую вершинку? Всё, хана, лапки вверх? Ничего не считается?

Матожидание имеет физический смысл. Это "центр тяжести". Ваш "максимум плотности" - это что?
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 20 2015, 11:44
Сообщение #32


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Целая куча "средних", и каждое с бездной физического смысла. Считайте на здоровье!

https://en.wikipedia.org/wiki/Average#Summary_of_types

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

Цитата(r_dot @ Nov 20 2015, 12:37) *
Ну и что это за величина, по-вашему?
А если ваша гистограмма имеет плоскую волнистую вершинку? Всё, хана, лапки вверх? Ничего не считается?

Матожидание имеет физический смысл. Это "центр тяжести". Ваш "максимум плотности" - это что?
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 20 2015, 12:01
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(r_dot @ Nov 20 2015, 14:37) *
Ну и что это за величина, по-вашему?
А если ваша гистограмма имеет плоскую волнистую вершинку? Всё, хана, лапки вверх? Ничего не считается?

Матожидание имеет физический смысл. Это "центр тяжести". Ваш "максимум плотности" - это что?


Мода

Что касается лапок и пр шаманства - это вне моей компетенции.
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 12:05
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(Fat Robot @ Nov 20 2015, 14:44) *
Целая куча "средних", и каждое с бездной физического смысла....

Ну так я-то предложил ТС-у наиболее подходящее, на мой взгляд, решение для его задачи.
А что вы предлагаете?
Может, всё-таки, ответите, что за "максимум плотности (диаграммы)" такой? В той "целой куча "средних", куда вы меня носом тычете - что-то такого нет...
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 20 2015, 12:10
Сообщение #35


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Ну как же нету?

https://en.wikipedia.org/wiki/Mode_(statistics)

Гнев и гордыня застилают вам обзор.

И да, решение вы предложили слабое. Оно не учитывает наличие outlier'ов, о которых говорилось в исходном сообщении. Посмотрите, в этой ветке много решений. в том числе и мое.

Успехов.

Цитата(r_dot @ Nov 20 2015, 13:05) *
Ну так я-то предложил ТС-у наиболее подходящее, на мой взгляд, решение для его задачи.
А что вы предлагаете?
Может, всё-таки, ответите, что за "максимум плотности (диаграммы)" такой? В той "целой куча "средних", куда вы меня носом тычете - что-то такого нет...
Go to the top of the page
 
+Quote Post
r_dot
сообщение Nov 20 2015, 12:12
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 237
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 791



Цитата(thermit @ Nov 20 2015, 15:01) *
Мода

Ткнули вы неудачно.
В задаче ТС-а скорее всего получится мультимодальность - будет несколько разных, но одинаково часто встречающихся значений. Не подходит Мода. sm.gif
Go to the top of the page
 
+Quote Post
blackfin
сообщение Nov 20 2015, 12:22
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(r_dot @ Nov 20 2015, 16:12) *
Ткнули вы неудачно.

Так ТС уже сказал, что среднее арифметическое его НЕ устраивает, а значит, НЕ устраивает его и математическое ожидание:
Цитата(minibrain @ Nov 19 2015, 19:08) *
В данный момент находится среднее арифметическое по обеим координатам, но выбросы порождают большое смещение от точки, на которую указывает большинство измерений.

Оттого и предлагают ему другие решения..
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 20 2015, 12:25
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата(r_dot @ Nov 20 2015, 15:12) *
Ткнули вы неудачно.
В задаче ТС-а скорее всего получится мультимодальность - будет несколько разных, но одинаково часто встречающихся значений. Не подходит Мода. sm.gif



Не спорю. Однако тээсу это решение больше понравилось, чем ваше удачное.
Успехов.
Go to the top of the page
 
+Quote Post
minibrain
сообщение Nov 21 2015, 09:05
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 29-12-14
Из: Санкт-Петербург
Пользователь №: 84 344



Цитата(_pv @ Nov 19 2015, 22:52) *
это некое жульничество, когда на картинке линия их нескольких точек, а на самом деле там не по одной точке, а по десять штук друг на дружке и в результате этих левых точек вообще больше чем тех положение которых посчитать надо.
соответственно там все эти левые точки получаются внутри 3х сигм.
тем не менее если выкинуть точки которые лежат за пределом эллипса из одной сигмы, можно даже пару раз подряд, потом посчитать среднее от оставшихся, и дальше среднеквадратичное отклонение считать уже относительно этого нового среднего, и после этого если выкинуть точки за пределами одной новой сигмы, на данной конкретной картинке получается довольно неплохо, координаты среднего {-5.57342, -7.20079}. ну и сколько именно сигм оставлять надо поподбирать будет, чтобы для других произвольных данных тоже нормально работало.

при этом наименьшие квадраты (последняя страница) дают почти то же самое {x0 -> -5.1126, y0 -> -7.91728}.

по поводу С/С++ библиотек можно еще alglib посмотреть, хотя только для фита наименьшими квадратами из своего приложения можно вообще gnuplotом обойтись.

Посмотрел ваш PDFник и...ничего не понял. Это тоже матлаб? Ни одного знакомого идентификатора
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 21 2015, 10:16
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(minibrain @ Nov 21 2015, 12:05) *
Посмотрел ваш PDFник и...ничего не понял. Это тоже матлаб? Ни одного знакомого идентификатора

Mathematica
Go to the top of the page
 
+Quote Post
Corner
сообщение Nov 21 2015, 10:34
Сообщение #41


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Видимо, ТСу подойдет итерационный метод, когда находится матожидание, выкидывается самый удаленный элемент, по оставшимся находится матожидание... и т. д. пока не останется статистически значимое число элементов, матожидание от которых и будет результатом. В качестве старта для статистически значимого числа эментов можно взять корень из исходного числа элементов или задать остаточное ср. кв. отклонение для оставшихся элементов и ждать схождения, но при сильном разбросе второй вариант может не давать решения.
Собственно так работает обнаружитель в рлс, только там есть еще третья координата номера выборки и четвертый параметр вероятности отклика. И так же навигационные приемники находят вероятные координаты, когда спутников много.

Сообщение отредактировал Corner - Nov 21 2015, 10:41
Go to the top of the page
 
+Quote Post
_pv
сообщение Nov 21 2015, 11:03
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(minibrain @ Nov 21 2015, 16:05) *
Посмотрел ваш PDFник и...ничего не понял. Это тоже матлаб? Ни одного знакомого идентификатора

This is SPARTAAAA Mathematica. Синтаксис да, с непривычки очень своеобразный местами.
Функция CleanData просто отбрасывает точки которые оказались за эллипсом с радиусами std_, и положением avg_.
Соответственно вызвав её пару раз по исходным данным с avg и std соответственно равным среднему и среднеквадратичному часть наиболее удалённых точек будут отброшены, после этого уже можно более менее нормально по оставшимся данным посчитать среднее, и затем посчитать среднеквадратичное отклонение относительно этого среднего, чтобы отбросить точки уже относительно более менее нормальной оценки среднего, по сравнению с исходной.

ну и как уже говорил тупо фит наименьшими квадратами двумерной функции Гаусса, отбрасывает не похожие на этот Гаусс точки тоже очень неплохо.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01757 секунд с 7
ELECTRONIX ©2004-2016