2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 17:29 


15/07/14
13
Добрый день.

Пишу диплом. Одним из заданий значится аппроксимация полиномиальной функции. Задаётся эта функция несколькими десятками точек и внешне график выглядит просто: вот так.

Думал, что увеличу степень полинома на 3-4 порядка и сойдётся всё, но не угадал. Несколько различных реализаций МНК, которые абсолютно точно подбирали коэффициенты полинома на относительно простых наборах точек (полиномы пятой степени, до 4-го знака после запятой), на полиноме 10-й степени выдавали полнейшую ахинею — 3 алгоритма выдали 3 абсолютно разных набора коэффициентов и ни один из них и близко не подходил. В связи с этим вопрос: есть ли смысл вообще использовать МНК для вычисления коэффициентов полиномов степени 10 и более?

Может плюнуть на всё и кубическими сплайнами всё сгладить?

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 17:45 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
SpBerkut в сообщении #1105328 писал(а):
Может плюнуть на всё и кубическими сплайнами всё сгладить?

Отличная идея!

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 18:28 


15/07/14
13
Brukvalub в сообщении #1105334 писал(а):
Отличная идея!
Надеюсь, это не сарказм.

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 18:44 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
Нет, это не сарказм. Сплайны придумали, в частности, именно для того, чтобы находить достаточно гладкие аппроксимации экспериментальных наборов точек кусочками графиков многочленов малых степеней, поскольку многочлены высоких степеней скачут между заданными точками как блохи, и ими аппроксимировать нельзя.

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 19:12 
Заслуженный участник
Аватара пользователя


11/03/08
9874
Москва
Вопрос в том, насколько существенно использование именно полиномов. Если речь исключительно о сглаживании кривой, то вполне может оказаться оправданным разбиение кривой на кусочки и сглаживание сплайнами. Если же речь идёт непременно о полиноме - Вы напоролись на мультиколлинеарность. Корреляция между степенями x достаточно высока. Скажем, на данном на рисунке отрезке корреляция между девятой и десятой степенью x составит 99.88%. Число обусловленности корреляционной матрицы становится совершенно катастрофическим, и результат расчёта определяется игрой ошибок округления, причём значения коэффициентов обычно растут до неприличия. Рассчитывать полиномиальную регрессионную модель высоких степеней обычными программами МНК плохо.
Переход к более устойчивым численно алгоритмам (сингулярному разложению, например) решает проблему лишь частично, поскольку дело не только во влиянии собственно вычислительных ошибок, но и во влиянии внешних помех.
Паллиативное решение - нормирование и центрирование переменной x, приводя её к $-1\le x \le 1$, что устраняет корреляцию между чётными и нечётными степенями вовсе, а между чётными и чётными и нечётными и нечётными уменьшая. Затем, разумеется, надо вернуться к исходному масштабу.
Полную гарантию даёт использование ортогональных полиномов, а потом возврат в исходное пространство (только надо иметь в виду, что ортогональные полиномы непрерывной переменной и дискретной переменой не одно и то же, и ортогональность вводится с разным весом).

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 16:59 


15/07/14
13
Разобравшись с проблемой, отписываюсь. Результаты трудов.
Игра стоила свеч. Проанализировав узкие места используемого алгоритма добился, как мне кажется, успехов. Думается, что проблема крылась в точности вычислений.
На приложенном графике приведены полиномы 15-й и 50-й степени (второй и третий ряд), которые полностью закрывают собой исходное множество точек. Правда где-то проблема с коэффициентом детерминации (он иногда больше 1), но это уже для другой темы вопрос.

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 17:29 
Аватара пользователя


21/01/09
3924
Дивногорск
SpBerkut в сообщении #1105798 писал(а):
На приложенном графике приведены полиномы 15-й и 50-й степени (второй и третий ряд), которые полностью закрывают собой исходное множество точек.
Так сколько же у вас экспериментальных точек всего?
SpBerkut в сообщении #1105798 писал(а):
Правда где-то проблема с коэффициентом детерминации (он иногда больше 1),
Это как?

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 18:05 
Заслуженный участник
Аватара пользователя


23/07/08
10887
Crna Gora
Если степень полинома здорово меньше количества точек, он может вести себя и прилично.

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 18:37 


07/03/11
690
Есть ещё регуляризация (ridge regression)

 Профиль  
                  
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 19:33 


15/07/14
13
Александрович в сообщении #1105806 писал(а):
Так сколько же у вас экспериментальных точек всего?
57. Кусочек сигнала ЭКГ.
Александрович в сообщении #1105806 писал(а):
Это как?
Вероятно, что где-то закралась ошибка. Превышение небольшое, так что может быть это опять ошибка округления. Как-то так.

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

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



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

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


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

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