2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 09:29 
Аватара пользователя


22/06/07
146
Добрый день! Помогите, пожалуйста, с такой проблемой.

Проводятся эксперименты, цель которых выявить уравнение прямой на плоскости. Берется заранее известная прямая. Каждый эксперимент дает набор из небольшого количества точек на плоскости (порядка 10-15 штук), моделирующих эту прямую, и есть допустимый порог отклонения от истинной прямой. Данные экспериментов более менее точны, по крайней мере, при прямом применении линейной регрессии (без доп. фильтраций) в допустимый порог укладывается 80-85 % результатов, остальные выбиваются, но не сильно. Хочется довести эффективность до 99 -100 %. Возможно ли это сделать? Число точек, к сожалению, никак не увеличить.

Пример набора данных (одна строка - одна точка)

(Оффтоп)

-10.2593994140625 204.3939208984375
-10.4180908203125 204.49462890625
-10.5767822265625 204.586181640625
-10.7354736328125 204.8150634765625
-10.8941650390625 204.9066162109375
-11.044921875 205.0164794921875
-11.2274169921875 205.15380859375
-11.4337158203125 205.3277587890625
-11.6082763671875 205.4193115234375
-11.806640625 205.556640625
-11.96533203125 205.703125
-12.1240234375 205.7489013671875
-12.28271484375 205.849609375

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 11:19 


07/10/15

2400
Попробуйте такую:
$$y=196,81-0,7406\cdot x,$$
здесь $x$- первый столбец, а $y$ - второй.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 11:32 
Заслуженный участник


09/05/12
25179
Евгеша, у вас как-то странно сформулирована задача. Что значит "заранее известная прямая" - ее уравнение известно? Эффективность чего вы хотите увеличить и каким образом?

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 12:19 
Аватара пользователя


22/06/07
146
Pphantom
В общем, есть некоторая поверхность, состоящая из трех отрезков. Ее параметры (углы, ширины отрезков) известны. Результат измерения этой поверхности на рисунке (точки измерения соединены отрезками). Применяя обычную линейную регрессию, можно достаточно точно найти уравнения для двух прямых справа, т. к. известно много точек. Но вот с последним кончиком проблема. Т. к. на нем лежит мало точек (всего штук 10 - 15), то его уравнение не всегда точно находится (т. е. неустойчиво даже к небольшим шумам). Вопрос в том, что с этим можно сделать. Возможно добавить какую-то предварительную фильтрацию или вообще не использовать лин. регрессию, а что-то другое.

Изображение

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 12:32 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
0. Изображение не показывается.
1. Откуда взялся "допустимый порог"? Может, он просто слишком жёстко задан, и в принципе невозможно добиться желаемого?
2. Что-то известно о спецификации ошибки? МНК оптимально для случая нормального распределения, в случае наличия выбросов, грубых ошибок и пр. нужны другие методы.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 13:32 
Аватара пользователя


22/06/07
146
Евгений Машеров в сообщении #1432220 писал(а):
0. Изображение не показывается.
1. Откуда взялся "допустимый порог"? Может, он просто слишком жёстко задан, и в принципе невозможно добиться желаемого?
2. Что-то известно о спецификации ошибки? МНК оптимально для случая нормального распределения, в случае наличия выбросов, грубых ошибок и пр. нужны другие методы.

0. У меня все нормально, залил сюда еще: https://ibb.co/nrDKzNq
1. Порог взят более чем 5 % от величины, но на некоторых данных погрешность достигает более 20 % - это слишком много
2. Шумы распределены нормально, для достаточно большого числа точек МНК дает хороший результат. Какие-то выбросы теоретически возможны, но конкретно в том измерении, где получена погрешность более 20 % вроде никаких всплесков нет. А какие есть методы?

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 14:29 
Заслуженный участник


09/05/12
25179
Евгеша в сообщении #1432223 писал(а):
1. Порог взят более чем 5 % от величины, но на некоторых данных погрешность достигает более 20 % - это слишком много
2. Шумы распределены нормально, для достаточно большого числа точек МНК дает хороший результат. Какие-то выбросы теоретически возможны, но конкретно в том измерении, где получена погрешность более 20 % вроде никаких всплесков нет. А какие есть методы?
Именно в описанной ситуации - никаких. Кроме общей идеи, что при превышении установленного порога погрешности результаты выкидываются и измерения проводятся заново.

Правда, это никак не спасет, если порог задан слишком жестко.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение27.12.2019, 15:09 


07/10/15

2400
Здесь скорее не проблема выбросов, а проблема неоднородности. Посмотрите на остатки линейной регрессии - они сосредоточены не вблизи нуля, а на краях, и как раз этого диапазона $\pm$0.05.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение29.12.2019, 08:57 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Возможно, тут всё безнадёжно, и дело в слишком жёстко заданном пороге. Но может быть, что удастся усовершенствовать, сменив метод оценивания. МНК минимизирует сумму квадратов, и если в выборке есть далеко отстоящая от "правильной линии" точка, то оценен ная линия регрессии перекашивается к ней, при этом прочие точки оказываются на увеличенном расстоянии от линии регрессии. Такие точки, будь это грубые ошибки измерений или ошибки формирования выборки, когда точка включена по формальным критериям, не принадлежа выборке по сути, или хоть "чёрные лебеди", в смысле проявление редких и непрогнозируемых факторов, сравнительно редки, и при большом объёме выборки акой эффект не проявляется, а при малом может. Я бы попытатся смотреть в сторону робастного оценивания. Скажем, взять вместо квадрата отклонения функцию
$
g(x)=\begin{cases}
p|x|,&\text{если $|x|>p$;}\\
x^2,&\text{если $|x|\lt<p$;}\\
\end{cases}
$
где p - значение порога.
То есть МНК для малых отклонений, метод наименьших модулей (МНМ) для сверхпороговых. Впрочем, можно и всё МНМ, ценой небольшой потери эффективности для нормального распределения.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение29.12.2019, 10:09 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Ещё вариант - сохранив МНК, отбрасывать точки с сильными отклонениями по одной, всякий раз пересчитывая модель, пока все отклонения не будут меньше порога, или пока число отброшенных не превысит допустимое (тогда с грустью констатируем, что "данные плохие" и выйти на желаемую точность не выйдет).
Тут надо заметить, что очень большой выброс может "самомаскироваться", исказив коэффициенты ("перекосив линию регрессии") настолько, что за максимальный выброс примут правильное наблюдение, отбрасывая вместо ошибочного именно правильное. Помочь может "скользящий экзамен", когда модель строится по всем точкам, кроме "экзаменуемой", для которой находится отклонение от модели (есть вычислительная схема, при которой не надо полностью пересчитывать модель при удалении одной точки, а лишь корректировать). Тогда шанс не заметить выброс резко снижается.
В итоге должна получиться МНК-оценка, полученная по "хорошим точкам", причём отклонения по каждой точке этой подвыборки не превышают порог, и не более заданного числа "плохих точек" (которые должны быть предметом дополнительного рассмотрения на содержательном уровне, автоматическое отбрасывание не лучший вариант - а рассматривая их индивидуально, можно найти немало важного и интересного), для которых отклонения могут быть весьма велики.

 Профиль  
                  
 
 Re: Эффективность линейной регрессии при малом наборе данных?
Сообщение30.12.2019, 10:00 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
В представленных данных максимальное относительное отклонение составляет 0.03%
Уравнение $y=196.8600942-0.736392025\cdot x$
Кроме того, не совсем понятно требование "получить 99% отклонений в пределах допуска", если речь о выборке 10-15 наблюдений.

(Оффтоп)

Два землекопа и две трети

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group