2014 dxdy logo

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

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




 
 МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 17:29 
Добрый день.

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

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

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

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 17:45 
Аватара пользователя
SpBerkut в сообщении #1105328 писал(а):
Может плюнуть на всё и кубическими сплайнами всё сгладить?

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

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение09.03.2016, 18:28 
Brukvalub в сообщении #1105334 писал(а):
Отличная идея!
Надеюсь, это не сарказм.

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

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

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 16:59 
Разобравшись с проблемой, отписываюсь. Результаты трудов.
Игра стоила свеч. Проанализировав узкие места используемого алгоритма добился, как мне кажется, успехов. Думается, что проблема крылась в точности вычислений.
На приложенном графике приведены полиномы 15-й и 50-й степени (второй и третий ряд), которые полностью закрывают собой исходное множество точек. Правда где-то проблема с коэффициентом детерминации (он иногда больше 1), но это уже для другой темы вопрос.

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 17:29 
Аватара пользователя
SpBerkut в сообщении #1105798 писал(а):
На приложенном графике приведены полиномы 15-й и 50-й степени (второй и третий ряд), которые полностью закрывают собой исходное множество точек.
Так сколько же у вас экспериментальных точек всего?
SpBerkut в сообщении #1105798 писал(а):
Правда где-то проблема с коэффициентом детерминации (он иногда больше 1),
Это как?

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

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 18:37 
Есть ещё регуляризация (ridge regression)

 
 
 
 Re: МНК. Полином высокой степени. Есть ли смысл?
Сообщение11.03.2016, 19:33 
Александрович в сообщении #1105806 писал(а):
Так сколько же у вас экспериментальных точек всего?
57. Кусочек сигнала ЭКГ.
Александрович в сообщении #1105806 писал(а):
Это как?
Вероятно, что где-то закралась ошибка. Превышение небольшое, так что может быть это опять ошибка округления. Как-то так.

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group