Питання наближення найменших квадратів


11

Я беру курс на наукові обчислення, і ми просто пройшли наближення до найменших квадратів. Моє запитання стосується конкретного наближення за допомогою многочленів. Я розумію, що якщо у вас n + 1 точок даних, ви можете знайти унікальний многочлен ступеня n, який описує всі ці точки. Але я також бачу, чому це не завжди ідеально. Ви можете отримати багато шуму між точками даних при такому підході. Я вважаю, що приємно отримати поліном нижчого ступеня, який досить добре оцінює ваші дані.

Моє запитання: як ти на практиці вирішуєш, який ступінь полінома ти будеш використовувати? Чи є правило, чи це залежить виключно від проблеми? Чи потрібно брати до уваги різні компроміси, приймаючи рішення між більш чи меншими ступенями? Або я щось тут нерозумію?

Заздалегідь спасибі.


2
Я думаю, що на практиці люди використовують такі речі, як сплайнова інтерполяція en.wikipedia.org/wiki/Spline_interpolation, так що поліси низького порядку використовуються, але вони добре вписуються між собою у загальний домен. Таким чином, не потрібно здогадуватися про загальний поліноміальний порядок.
Насер

Дякуємо за посилання Ми ще не перейшли сплайни, тому це цікаве читання.
Удай Прамод

Що саме ви хочете зробити? Ви намагаєтесь інтерполювати точки або підходити до даних? Наприклад, марно інтерполювати дані, які складаються з нормального розподілу зі шумом. Для перших відповідь Нассера хороша. Для останнього, функція придатності залежить виключно від проблеми, яка існує, і в багатьох випадках не є багаточленом.
hauntergeist

Можливо, вас зацікавлять відповіді на це питання на схрещену перевірку .
Борт

Відповіді:


18

Найважливіший аспект інтерполяції та підгонки кривих - це зрозуміти, чому поліноми високого порядку можуть бути проблемою та які інші варіанти, а потім ви можете зрозуміти, коли вони / не є хорошим вибором.

Кілька питань з поліномами високого порядку:

  • Поліноми - це природно коливальні функції. Зі збільшенням порядку полінома кількість коливань збільшується, і ці коливання стають більш сильними. Тут я спрощую, можливість множинного і уявного коріння робить його трохи складнішим, але справа в тому ж.

  • Поліноми наближаються до +/- нескінченності зі швидкістю, рівною поліноміальному порядку, оскільки х переходить до +/- нескінченності. Це часто не бажана поведінка.

  • Обчислення коефіцієнтів поліномів для поліномів високого порядку, як правило, є погано обумовленою проблемою. Це означає, що невеликі помилки (наприклад, округлення на вашому комп’ютері) можуть створити великі зміни у відповіді. Лінійна система, яку необхідно вирішити, включає матрицю Вандермонде, яка може бути легко обумовлена.

Я думаю, що, можливо, в основі цього питання є відмінність між підгонкою кривої та інтерполяцією .

Інтерполяція використовується, коли ви вважаєте, що ваші дані дуже точні, тому ви хочете, щоб ваша функція точно відповідала точкам даних. Коли вам потрібні значення між точками даних, зазвичай краще використовувати плавну функцію, що відповідає локальній тенденції даних. Кубічні або ермітові сплайни часто є хорошим вибором для подібного типу проблем, оскільки вони значно менш чутливі до нелокальних (тобто в точках даних, віддалених від певної точки) змін або помилок у даних і менш коливальні, ніж поліноми. Розглянемо наступний набір даних:

x = 1   2   3   4   5   6   7   8   9  10
y = 1   1 1.1   1   1   1   1   1   1   1

Інтерполяція
Поліномічне прилягання має набагато більші коливання, особливо біля країв набору даних, ніж сплайн Ерміта.

З іншого боку, наближення найменших квадратів - це криватехніка. Підгонка кривої використовується, коли ви маєте уявлення про очікуваний функціонал своїх даних, але вам не потрібна ваша функція, щоб точно проходити через усі точки даних. Це типово, коли дані можуть містити помилки вимірювань або інші неточності або коли ви бажаєте отримати загальну тенденцію даних. Наближення найменших квадратів найчастіше вводиться в курсі, використовуючи поліноми для підгонки кривої, оскільки це призводить до отримання лінійної системи, яку порівняно просто вирішити, використовуючи методи, які ви, ймовірно, вивчили раніше у своєму курсі. Однак методики найменших квадратів набагато загальніші, ніж просто поліномічні підходи, і їх можна використовувати для пристосування будь-якої бажаної функції до набору даних. Наприклад, якщо ви очікуєте експоненціальну тенденцію зростання в наборі даних,

Нарешті, вибір правильної функції, що відповідає вашим даним, так само важливий, як і правильне проведення обчислень інтерполяції чи найменших квадратів. Це навіть дозволяє можливість (обережної) екстраполяції. Розглянемо наступну ситуацію. З огляду на дані про населення (у мільйонах людей) для США за 2000–2010 роки:

Year:  2000   2001   2002   2003   2004   2005   2006   2007   2008   2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35

Використання експоненціальної лінеаризованої найменшої квадратики N(t)=A*exp(B*t)або інтерполянта поліному 10-го порядку дає такі результати:
Населення ділянки

Приріст населення США не зовсім експоненційний, але я дозволю вам бути суддею кращої форми.


1
Один момент, який я хотів би зробити з вашого графіку населення США, з пам’яті добре вписується в домен, не означає, що він буде добре екстраполювати. У цьому світлі може бути оманом показати великі помилки поліномів за межами регіону, де у вас є дані.
Дарил

@Daryl Погодився, тому я підкреслив, що екстраполяцію слід робити обережно і що вибір відповідної функції має вирішальне значення в цьому випадку.
Дуг Ліпінський

@DougLipinski Дякую за проникливу відповідь. Чи можете ви пояснити, що ви маєте на увазі під лінеаризованими найменшими квадратами в опозиції до найменших квадратів?
bela83

@ bela83 Правильно відповівши, що це буде занадто довго для коментаря. Я думаю, що це було б дуже гарне нове запитання, якщо ви хочете його задати.
Doug Lipinski

@DougLipinski Я спробую!
bela83

2

Дуже ненаукове, але хорошим правилом є те, що поліноми 3-го ступеня зазвичай є гарним початком, і на практиці я ніколи не бачив, щоб хтось використовував більше, ніж 6-й ступінь, отримував хороші результати.

"Ідеальний" поліном був би найнижчим рівнем, який представляє досить безшумні дані для вашої мети.

Якщо ваші дані досить малі, щоб дозволити їх (зазвичай це є), ви можете просто спробувати підходити до поліномів вищого порядку, поки ви не почнете бачити коливання, які, як правило, є ознакою "перевиконання".

Альтернативою може бути шлейф згладжування , але це дуже залежить від застосування. Шпонки та згладжувальні сплайни хороші лише для інтерполяції. Що стосується галасливих даних, я, як правило, віддаю перевагу поліноміальним пристосуванням до згладжування сплайнів, але дані, з якими я працюю, зазвичай добре наближаються до поліномів.


1

Пристойно ефективний підхід, який я використовував при наближенні полінома, - це обчислити поліноми з найменшими квадратами для різних ступенів (наприклад, від 1 до 10), а потім вибрати криву, яка мінімізує середню помилку квадрата в точках на півдорозі між послідовними (коли відсортовано по х) балів у вашому наборі даних. Це допомагає виключити криві із занадто сильними коливаннями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.