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

 
 
> Усреднение двумерных выборок
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
 
Start new topic
Ответов
_pv
сообщение Nov 19 2015, 22:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
minibrain
сообщение Nov 21 2015, 09:05
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
_pv
сообщение Nov 21 2015, 11:03
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- minibrain   Усреднение двумерных выборок   Nov 19 2015, 15:08
- - ШСА   Цитата(minibrain @ Nov 19 2015, 18:08) Им...   Nov 19 2015, 15:18
|- - minibrain   Цитата(ШСА @ Nov 19 2015, 16:18) Маленько...   Nov 19 2015, 15:21
|- - ШСА   Цитата(minibrain @ Nov 19 2015, 18:21) Го...   Nov 19 2015, 16:25
- - thermit   Построить гистограмму. Выбрать x и y соответствующ...   Nov 19 2015, 15:18
- - Grizzzly   Цитата(minibrain @ Nov 19 2015, 19:08) Зд...   Nov 19 2015, 15:18
- - _pv   для начала добавить в вычисление среднего вес, исх...   Nov 19 2015, 15:20
- - minibrain   Спасибо всем, кто ответил. Попробовал построить hi...   Nov 19 2015, 16:30
|- - _pv   Цитата(minibrain @ Nov 19 2015, 23:30) С ...   Nov 19 2015, 16:38
|- - Grizzzly   Цитата(minibrain @ Nov 19 2015, 19:30) Мо...   Nov 19 2015, 16:53
- - minibrain   _pv, реальных данных не сохранилось. Проверю тогда...   Nov 19 2015, 16:52
|- - _pv   Цитата(minibrain @ Nov 19 2015, 23:52) _p...   Nov 19 2015, 17:56
- - minibrain   _pv, Вы не могли бы дать ссылку на примерное описа...   Nov 19 2015, 17:33
- - minibrain   Я делал так: 1) сортировал массив по координате х....   Nov 19 2015, 18:23
|- - _pv   Цитата(minibrain @ Nov 20 2015, 00:23) Я ...   Nov 19 2015, 18:42
- - minibrain   Вот таблица для матлаба. Такой вариант приемлем?   Nov 19 2015, 19:02
|- - Grizzzly   Цитата(minibrain @ Nov 21 2015, 12:05) По...   Nov 21 2015, 10:16
- - Fat Robot   Вариантов много. Один из (вариация на тему того, ч...   Nov 19 2015, 23:46
- - r_dot   Цитата(minibrain @ Nov 19 2015, 18:08) .....   Nov 20 2015, 10:27
|- - Fat Robot   В измерениях есть такое понятие как "outlier...   Nov 20 2015, 10:33
||- - r_dot   Цитата(Fat Robot @ Nov 20 2015, 13:33) .....   Nov 20 2015, 10:48
||- - ViKo   Цитата(r_dot @ Nov 20 2015, 13:48) Тогда ...   Nov 20 2015, 10:58
|- - thermit   Цитата(r_dot @ Nov 20 2015, 13:27) Вообще...   Nov 20 2015, 10:51
|- - r_dot   Цитата(thermit @ Nov 20 2015, 13:51) Вооб...   Nov 20 2015, 10:57
|- - Fat Robot   100 точек с координатами (0,0) 1 точка с координат...   Nov 20 2015, 11:00
||- - r_dot   Цитата(Fat Robot @ Nov 20 2015, 14:00) 10...   Nov 20 2015, 11:05
||- - Fat Robot   все зависит от того, каково множество измеряемых в...   Nov 20 2015, 11:26
|- - thermit   Цитата(r_dot @ Nov 20 2015, 13:57) У вас ...   Nov 20 2015, 11:19
||- - r_dot   Цитата(thermit @ Nov 20 2015, 14:19) ...м...   Nov 20 2015, 11:37
||- - Fat Robot   Целая куча "средних", и каждое с бездной...   Nov 20 2015, 11:44
|||- - r_dot   Цитата(Fat Robot @ Nov 20 2015, 14:44) Це...   Nov 20 2015, 12:05
|||- - Fat Robot   Ну как же нету? https://en.wikipedia.org/wiki/Mo...   Nov 20 2015, 12:10
||- - thermit   Цитата(r_dot @ Nov 20 2015, 14:37) Ну и ч...   Nov 20 2015, 12:01
||- - r_dot   Цитата(thermit @ Nov 20 2015, 15:01) Мода...   Nov 20 2015, 12:12
||- - thermit   Цитата(r_dot @ Nov 20 2015, 15:12) Ткнули...   Nov 20 2015, 12:25
|- - blackfin   Цитата(r_dot @ Nov 20 2015, 14:57) Подели...   Nov 20 2015, 11:37
- - ViKo   Да-да, такие неправильные точки создаются импульсн...   Nov 20 2015, 10:41
- - blackfin   Цитата(r_dot @ Nov 20 2015, 16:12) Ткнули...   Nov 20 2015, 12:22
- - Corner   Видимо, ТСу подойдет итерационный метод, когда нах...   Nov 21 2015, 10:34


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 06:19
Рейтинг@Mail.ru


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