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
9496
Москва
Вопрос в том, насколько существенно использование именно полиномов. Если речь исключительно о сглаживании кривой, то вполне может оказаться оправданным разбиение кривой на кусочки и сглаживание сплайнами. Если же речь идёт непременно о полиноме - Вы напоролись на мультиколлинеарность. Корреляция между степенями 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
3923
Дивногорск
SpBerkut в сообщении #1105798 писал(а):
На приложенном графике приведены полиномы 15-й и 50-й степени (второй и третий ряд), которые полностью закрывают собой исходное множество точек.
Так сколько же у вас экспериментальных точек всего?
SpBerkut в сообщении #1105798 писал(а):
Правда где-то проблема с коэффициентом детерминации (он иногда больше 1),
Это как?

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


23/07/08
10626
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 ] 

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



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

Сейчас этот форум просматривают: epros


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

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