Звичайний спосіб найменших квадратів. Апроксимація дослідних даних

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

Постановка задачі на конкретному прикладі

Припустимо, є два показники X і Y. Причому Y залежить від X. Так як МНК цікавить нас з погляду регресійного аналізу (в Excel його методи реалізуються за допомогою вбудованих функцій), то відразу ж перейти до розгляду конкретної задачі.

Отже, нехай X — торгова площа продовольчого магазину, що вимірюється в квадратних метрах, а Y - Річний товарообіг, що визначається в мільйонах рублів.

Потрібно зробити прогноз, який товарообіг (Y) матиме магазин, якщо в нього та чи інша торгова площа. Очевидно, що функція Y = f(X) зростаюча, оскільки гіпермаркет продає більше товарів, ніж ларьок.

Декілька слів про коректність вихідних даних, що використовуються для передбачення

Припустимо, ми маємо таблицю, побудовану за даними для n магазинів.

Згідно математичної статистики, результати будуть більш-менш коректними, якщо досліджуються дані щодо хоча б 5-6 об'єктів. Крім того, не можна використовувати "аномальні" результати. Зокрема, невеликий елітний бутік може мати товарообіг у рази більший, ніж товарообіг великих торгових точок класу «масмаркет».

Суть методу

Дані таблиці можна зобразити на декартовій площині у вигляді точок M 1 (x 1 y 1), … M n (x n y n). Тепер розв'язання задачі зведеться до підбору апроксимуючої функції y = f(x), що має графік, що проходить якомога ближче до точок M1, M2,.. Mn.

Звичайно, можна використовувати багаточлен високого ступеня, але такий варіант не тільки важко реалізувати, а й просто некоректний, тому що не відображатиме основну тенденцію, яку і потрібно виявити. Найрозумнішим рішенням є пошук прямої у = ax + b, яка найкраще наближає експериментальні дані, a точніше, коефіцієнтів – a та b.

Оцінка точності

При будь-якій апроксимації особливої ​​важливості набуває оцінка її точності. Позначимо через e i різницю (відхилення) між функціональними та експериментальними значеннями для точки x i , тобто e i = y i - f (x i).

Очевидно, що для оцінки точності апроксимації можна використовувати суму відхилень, тобто при виборі прямої для наближеного уявлення залежності X від Y потрібно віддавати перевагу тій, у якої найменше значеннясуми e i у всіх точках, що розглядаються. Однак, не все так просто, тому що поряд із позитивними відхиленнями практично будуть присутні і негативні.

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

Метод найменших квадратів

В Excel, як відомо, існує вбудована функція автосуми, що дозволяє обчислити значення всіх значень, які розташовані у виділеному діапазоні. Таким чином, ніщо не завадить нам розрахувати значення виразу (e 1 2 + e 2 2 + e 3 2 + ... e n 2).

У математичному записі це має вигляд:

Оскільки спочатку було прийнято рішення про апроксимування за допомогою прямої, то маємо:

Таким чином, завдання знаходження прямої, яка найкраще описує конкретну залежність величин X та Y, зводиться до обчислення мінімуму функції двох змінних:

Для цього потрібно прирівняти до нуля приватні похідні за новими змінними a і b, і вирішити примітивну систему, що складається з двох рівнянь з двома невідомими видами:

Після нехитрих перетворень, включаючи поділ на 2 та маніпуляції із сумами, отримаємо:

Вирішуючи її, наприклад, методом Крамера, отримуємо стаціонарну точку з деякими коефіцієнтами a* та b*. Це і є мінімум, тобто для передбачення, який товарообіг буде у магазину при певній площі, підійде пряма y = a * x + b *, що є регресійну модельдля прикладу, про який мова йде. Звичайно, вона не дозволить знайти точний результат, але допоможе одержати уявлення про те, чи окупиться покупка в кредит магазину конкретної площі.

Як реалізувати метод найменших квадратів в Excel

У "Ексель" є функція для розрахунку значення МНК. Вона має такий вигляд: «ТЕНДЕНЦІЯ» (відоме значення Y; відоме значення X; нові значення X; конст.). Застосуємо формулу розрахунку МНК Excel до нашої таблиці.

Для цього в комірку, в якій має бути відображено результат розрахунку за методом найменших квадратів в Excel, введемо знак = і виберемо функцію ТЕНДЕНЦІЯ. У вікні заповнимо відповідні поля, виділяючи:

  • діапазон відомих значень для Y (у разі дані для товарообігу);
  • діапазон x 1, … x n, тобто величини торгових площ;
  • і відомі, і невідомі значення x, для якого потрібно з'ясувати розмір товарообігу (інформацію про їхнє розташування на робочому аркуші див. далі).

Крім того, у формулі є логічна змінна «Конст». Якщо ввести у відповідне їй поле 1, це означатиме, що слід здійснити обчислення, вважаючи, що b = 0.

Якщо потрібно дізнатися прогноз більш ніж одного значення x, то після введення формули слід натиснути не на «Введення», а потрібно набрати на клавіатурі комбінацію «Shift» + «Control» + «Enter» («Введення»).

Деякі особливості

Регресійний аналіз може бути доступним навіть чайникам. Формула Excelдля передбачення значення масиву невідомих змінних — «ТЕНДЕНЦІЯ» — можна використовувати навіть тими, хто ніколи не чув про метод найменших квадратів. Достатньо просто знати деякі особливості її роботи. Зокрема:

  • Якщо розташувати діапазон відомих значень змінної y в одному рядку або стовпці, то кожен рядок (стовпець) з відомими значеннями x буде сприйматися програмою як окрема змінна.
  • Якщо у вікні «ТЕНДЕНЦІЯ» не вказаний діапазон з відомими x, то у разі використання функції Excel програмабуде розглядати його як масив, що складається з цілих чисел, кількість яких відповідає діапазону із заданими значеннями змінної y.
  • Щоб одержати на виході масив "передбачених" значень, вираз для обчислення тенденції потрібно вводити як формулу масиву.
  • Якщо не вказано нових значень x, то функція «ТЕНДЕНЦІЯ» вважає їх рівним відомим. Якщо вони не задані, то як аргумент береться масив 1; 2; 3; 4;…, який пропорційний діапазону з вже заданими параметрами y.
  • Діапазон, що містить нові значення x повинен складатися з такого ж або більшої кількостірядків або стовпців, як діапазон із заданими значеннями y. Іншими словами він має бути пропорційним незалежним змінним.
  • У масиві з відомими значеннями x може бути кілька змінних. Однак якщо мова йделише одну, то потрібно, щоб діапазони із заданими значеннями x і y були пропорційні. У разі кількох змінних потрібно, щоб діапазон із заданими значеннями y вміщався в одному стовпчику або в одному рядку.

Функція «ПЕРЕДСКАЗ»

Реалізується за допомогою кількох функцій. Одна з них називається «Предказ». Вона аналогічна «ТЕНДЕНЦІЇ», тобто видає результат обчислень методом найменших квадратів. Однак лише для одного X, для якого невідомо значення Y.

Тепер ви знаєте формули в Excel для чайників, що дозволяють спрогнозувати величину майбутнього значення того чи іншого показника згідно з лінійним трендом.

  • Tutorial

Вступ

Я математик-програміст. Найбільший стрибок у своїй кар'єрі я зробив, коли навчився говорити: "Я нічого не розумію!"Зараз мені не соромно сказати світилу науки, що читає лекцію, що я не розумію, про що воно, світило, мені говорить. І це дуже складно. Так, зізнатися у своєму незнанні складно та соромно. Кому сподобається визнаватись у тому, що він не знає азів чогось там. Через свою професію я повинен бути присутнім на великій кількості презентацій та лекцій, де, зізнаюся, в переважній більшості випадків мені хочеться спати, бо я нічого не розумію. А я не розумію тому, що величезна проблема поточної ситуації в науці криється в математиці. Вона припускає, що всі слухачі знайомі з усіма областями математики (що абсурдно). Зізнатися в тому, що ви не знаєте, що таке похідна (про те, що це трохи пізніше) - соромно.

Але я навчився говорити, що не знаю, що таке множення. Так, я не знаю, що таке подалгебра над алгеброю Лі. Так, я не знаю, навіщо потрібні в житті квадратні рівняння. До речі, якщо ви впевнені, що ви знаєте, то нам є над чим поговорити! Математика – це серія фокусів. Математики намагаються заплутати та залякати публіку; там, де немає збентеження, немає репутації, немає авторитету. Так, це престижно говорити якомога абстрактнішою мовою, що є по собі повна нісенітниця.

Чи знаєте ви, що таке похідна? Найімовірніше ви мені скажете про межу різницевого відношення. На першому курсі матуху СПбГУ Віктор Петрович Хавін мені визначивпохідну як коефіцієнт першого члена ряду Тейлора функції у точці (це була окрема гімнастика, щоб визначити ряд Тейлора без похідних). Я довго сміявся над таким визначенням, поки не зрозумів, про що воно. Похідна не що інше, як просто міра того, наскільки функція, яку ми диференціюємо, схожа на функцію y=x, y=x^2, y=x^3.

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

Завдання найближчим часом: я доручив своїм студентам зрозуміти, що таке лінійно-квадратичний регулятор. Не посоромтеся, витратите три хвилини свого життя, сходіть на заслання. Якщо ви нічого не зрозуміли, то нам з вами по дорозі. Я (професійний математик-програміст) також нічого не зрозумів. І я запевняю, що в цьому можна розібратися «на пальцях». На даний момент я не знаю, що це таке, але я запевняю, що ми зможемо розібратися.

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

Отже, дано дві точки (x0, y0), (x1, y1), наприклад, (1,1) і (3,2), завдання знайти рівняння прямої, що проходить через ці дві точки:

ілюстрація

Ця пряма повинна мати рівняння наступного типу:

Тут альфа і бета нам невідомі, але відомі дві точки цієї прямої:

Можна записати це рівняння у матричному вигляді:

Тут слід зробити ліричний відступ: що таке матриця? Матриця це не що інше, як двовимірний масив. Це спосіб зберігання даних, більше ніяких значень йому не варто надавати. Це залежить від нас, як саме інтерпретувати якусь матрицю. Періодично я її інтерпретуватиму як лінійне відображення, періодично як квадратичну форму, а ще іноді просто як набір векторів. Це все буде уточнено у контексті.

Давайте замінимо конкретні матриці на їхнє символьне уявлення:

Тоді (alpha, beta) може бути легко знайдено:

Більш конкретно для наших попередніх даних:

Що веде до наступного рівняння прямої, що проходить через точки (1,1) та (3,2):

Окей, тут зрозуміло. А давайте знайдемо рівняння прямої, що проходить через триточки: (x0, y0), (x1, y1) та (x2, y2):

Ой-ой-ой, але ж у нас три рівняння на дві невідомі! Стандартний математик скаже, що рішення немає. А що скаже програміст? А він спершу перепише попередню систему рівнянь у наступному вигляді:

У нашому випадку вектори i,j,bтривимірні, отже, (у загальному випадку) рішення цієї системи немає. Будь-який вектор (alpha i i beta i j) лежить у площині, натягнутій на вектори (i, j). Якщо b не належить цій площині, то рішення немає (рівності у рівнянні не досягти). Що робити? Давайте шукати компроміс. Давайте позначимо через e(alpha, beta)наскільки саме ми не досягли рівності:

І намагатимемося мінімізувати цю помилку:

Чому квадрат?

Ми шукаємо не просто мінімум норми, а мінімум квадрата норми. Чому? Сама точка мінімуму збігається, а квадрат дає гладку функцію (квадратичну функцію від агрументів (alpha, beta)), тоді як просто довжина дає функцію як конуса, недиференційовану в точці мінімуму. Брр. Квадрат зручніший.

Очевидно, що помилка мінімізується, коли вектор eортогональний площині, натягнутій на вектори. iі j.

Ілюстрація

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

UPDATE: тут у мене одвірок, відстань до прямої має вимірюватися по вертикалі, а не ортогональною проекцією. Ось цей коментатор має рацію.

Ілюстрація

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

Ілюстрація

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

Мінімум квадратичної форми

Отже, маючи цей вектор bта площину, натягнуту на стовпці-вектори матриці A(в даному випадку (x0,x1,x2) та (1,1,1)), ми шукаємо вектор eз мінімуму квадрата довжини. Очевидно, що мінімум можна досягти тільки для вектора. e, ортогональної площини, натягнутої на стовпці-вектори матриці. A:

Інакше кажучи, ми шукаємо такий вектор x=(alpha, beta), що:

Нагадую, цей вектор x=(alpha, beta) є мінімумом квадратичні функції| | e (alpha, beta) | | ^2:

Тут не зайвим буде згадати, що матрицю можна інтерпретувати у тому числі як і квадратичну форму, наприклад, одинична матриця ((1,0),(0,1)) може бути інтерпретована як функція x^2 + y^2:

квадратична форма

Вся ця гімнастика відома під ім'ям лінійної регресії.

Рівняння Лапласа з граничною умовою Діріхле

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

Початковий коміт доступний. Для мінімізації зовнішніх залежностей я взяв код свого софтверного рендерера вже на хабрі. Для вирішення лінійної системия користуюся OpenNL , це чудовий солвер, який, щоправда, дуже складно встановити: потрібно скопіювати два файли (.h+.c) у папку з вашим проектом. Все згладжування робиться наступним кодом:

For (int d=0; d<3; d++) { nlNewContext(); nlSolverParameteri(NL_NB_VARIABLES, verts.size()); nlSolverParameteri(NL_LEAST_SQUARES, NL_TRUE); nlBegin(NL_SYSTEM); nlBegin(NL_MATRIX); for (int i=0; i<(int)verts.size(); i++) { nlBegin(NL_ROW); nlCoefficient(i, 1); nlRightHandSide(verts[i][d]); nlEnd(NL_ROW); } for (unsigned int i=0; i&face = faces[i]; for (int j = 0; j<3; j++) { nlBegin(NL_ROW); nlCoefficient(face[ j ], 1); nlCoefficient(face[(j+1)%3], -1); nlEnd(NL_ROW); } } nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); nlSolve(); for (int i=0; i<(int)verts.size(); i++) { verts[i][d] = nlGetVariable(i); } }

X, Y та Z координати відокремлені, я їх згладжую окремо. Тобто, я вирішую три системи лінійних рівнянь, кожне має кількість змінних рівною кількістю вершин у моїй моделі. Перші n рядків матриці A мають лише одну одиницю на рядок, а перші n рядків вектора b мають оригінальні координати моделі. Тобто, я прив'язую по пружинці між новим становищем вершини і старим становищем вершини - нові не повинні занадто далеко йти від старих.

Всі наступні рядки матриці A (faces.size()*3 = кількості ребер всіх трикутників у сітці) мають одне входження 1 та одне входження -1, причому вектор b має нульові компоненти навпаки. Це означає, що я вішаю пружинку на кожне ребро нашої трикутної сітки: всі ребра намагаються отримати одну й ту саму вершину як відправну та фінальну точку.

Ще раз: змінними є всі вершини, причому вони можуть далеко відходити від початкового становища, але заодно намагаються стати схожими друг на друга.

Ось результат:

Все було б добре, модель дійсно згладжена, але вона відійшла від свого початкового краю. Давайте трохи змінимо код:

For (int i=0; i<(int)verts.size(); i++) { float scale = border[i] ? 1000: 1; nlBegin(NL_ROW); nlCoefficient(i, scale); nlRightHandSide(scale*verts[i][d]); nlEnd(NL_ROW); }

У нашій матриці A я для вершин, що знаходяться на краю, не додаю рядок з розряду v_i = verts[i][d], а 1000*v_i = 1000*verts[i][d]. Що це змінює? А змінює це нашу квадратичну форму помилки. Тепер одиничне відхилення від вершини краю коштуватиме не одну одиницю, як раніше, а 1000*1000 одиниць. Тобто, ми повісили сильнішу пружинку на крайні вершини, рішення воліє розтягнути інші. Ось результат:

Давайте вдвічі посилимо пружинки між вершинами:
nlCoefficient (face [j], 2); nlCoefficient(face[(j+1)%3], -2);

Логічно, що поверхня стала гладкішою:

А тепер ще в сто разів сильніше:

Що це? Уявіть, що ми вмочили дротяне кільце в мильну воду. У результаті мильна плівка, що утворилася, намагатиметься мати найменшу кривизну, наскільки це можливо, торкаючись-таки кордону - нашого дротяного кільця. Саме це ми й отримали, зафіксувавши кордон та попросивши отримати гладку поверхню всередині. Вітаю вас, ми тільки-но вирішили рівняння Лапласа з граничними умовами Діріхле. Круто звучить? А насправді лише одну систему лінійних рівнянь вирішити.

Рівняння Пуассона

Давайте ще круте ім'я згадаємо.

Припустимо, що у мене є така картинка:

Всім гарна, тільки стілець мені не подобається.

Розріжу картинку навпіл:



І виділю руками стілець:

Потім все, що біле в масці, притягну до лівої частини картинки, а заразом по всій картинці скажу, що різниця між двома сусідніми пікселями повинна дорівнювати різниці між двома сусідніми пікселями правої картинки:

For (int i=0; i

Ось результат:

Код та зображення доступні

Метод найменших квадратів - це математична процедура складання лінійного рівняння, що максимально відповідає набору впорядкованих пар, шляхом знаходження значень для a і b, коефіцієнтів у рівнянні прямої. Мета методу найменших квадратів полягає у мінімізації загальної квадратичної помилки між значеннями y та ŷ. Якщо для кожної точки ми визначаємо помилку ŷ, метод найменших квадратів мінімізує:

де n = число упорядкованих пар навколо лінії. максимально відповідним даним.

Це поняття проілюстровано малюнку

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

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

Оскільки своєю метою ми визначили завдання дізнатися, чи згодом збільшується кількість предметів, «Місяць» буде незалежною змінною, а «Кількість предметів» - залежною.

За допомогою методу найменших квадратів визначаємо рівняння, що максимально відповідає даним, шляхом обчислення значень a, відрізка на осі y, b, нахилу лінії:

a = y ср - bx ср

де x ср – середнє значення x, незалежної змінної, y ср – середнє значення y, незалежної змінної.

У таблиці нижче сумовані необхідні для цих рівнянь обчислення.

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

Оскільки наше рівняння має позитивний нахил – 0.976, хлопець має доказ того, що кількість предметів на столику з часом збільшується із середньою швидкістю 1 предмет на місяць. На графіці представлено криву ефекту з упорядкованими парами.

Очікування щодо числа предметів протягом наступного півроку (місяця 16) обчислюватиметься так:

ŷ = 5.13 + 0.976x = 5.13 + 0.976(16) ~ 20.7 = 21 предмет

Отже, настав час нашому герою робити якісь дії.

Функція ТЕНДЕНЦІЯ в Excel

Як ви вже, напевно, здогадалися в Excel є функція для розрахунку значення по методу найменших квадратів.Ця функція називається ТЕНДЕНЦІЯ. Синтаксис у неї наступний:

ТЕНДЕНЦІЯ (відомі значення Y; відомі значення X; нові значення X; конст)

відомі значення Y – масив залежних змінних, у нашому випадку, кількість предметів на столику

відомі значення X – масив незалежних змінних, у нашому випадку це місяць

нові значення X – нові значення X (місяця) для якого функція ТЕНДЕНЦІЯповертає очікуване значення залежних змінних (кількість предметів)

конст - необов'язковий. Логічне значення, яке вказує, чи потрібно, щоб константа b дорівнювала 0.

Наприклад, на малюнку показано функцію ТЕНДЕНЦІЯ, яка використовується для визначення очікуваної кількості предметів на столику у ванній кімнаті для 16-го місяця.

Після вирівнювання отримаємо функцію наступного виду: g(x) = x + 1 3 + 1 .

Ми можемо апроксимувати ці дані за допомогою лінійної залежності y = a x + b, обчисливши відповідні параметри. Для цього нам потрібно буде застосувати так званий метод найменших квадратів. Також потрібно зробити креслення, щоб перевірити, яка лінія краще вирівнюватиме експериментальні дані.

Yandex.RTB R-A-339285-1

У чому полягає МНК (метод найменших квадратів)

Головне, що нам потрібно зробити, – знайти такі коефіцієнти лінійної залежності, при яких значення функції двох змінних F (a, b) = ∑ i = 1 n (y i - (a x i + b)) 2 буде найменшим. Інакше кажучи, при певних значеннях a і b сума квадратів відхилень представлених даних від прямої буде мати мінімальне значення. У цьому полягає сенс методу найменших квадратів. Все, що нам треба зробити для вирішення прикладу, – це знайти екстремум функції двох змінних.

Як вивести формули для обчислення коефіцієнтів

Для того щоб вивести формули для обчислення коефіцієнтів, потрібно скласти та вирішити систему рівнянь із двома змінними. Для цього ми обчислюємо окремі похідні вирази F (a, b) = ∑ i = 1 n (y i - (a x i + b)) 2 по a та b і прирівнюємо їх до 0 .

δ F (a , b) δ a = 0 δ F (a , b) δ b = 0 ⇔ - 2 ∑ i = 1 n (y i - (a x i + b)) x i = 0 - 2 ∑ i = 1 n ( y i - (a x i + b)) = 0 ⇔ a ∑ i = 1 n x i 2 + b ∑ i = 1 n x i = ∑ i = 1 n x i y i a ∑ i = 1 n x i + ∑ i = 1 n b = ∑ i = 1 ∑ i = 1 n x i 2 + b ∑ i = 1 n x i = ∑ i = 1 n x i y i a ∑ i = 1 n x i + n b = ∑ i = 1 n y i

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

n ∑ i = 1 n x i y i - ∑ i = 1 n x i ∑ i = 1 n y i n ∑ i = 1 n - ∑ i = 1 n x i 2 b = ∑ i = 1 n y i - a ∑ i = 1 n x i n

Ми вирахували значення змінних, при яких функція
F (a, b) = ∑ i = 1 n (y i - (a x i + b)) 2 прийме мінімальне значення. У третьому пункті ми доведемо, чому воно є таким.

І це застосування методу найменших квадратів практично. Його формула, яка застосовується для пошуку параметра a включає ∑ i = 1 n x i , ∑ i = 1 n y i , ∑ i = 1 n x i y i , ∑ i = 1 n x i 2 , а також параметр
n – їм зазначено кількість експериментальних даних. Радимо вам обчислювати кожну суму окремо. Значення коефіцієнта b обчислюється відразу після a.

Звернемося знову до вихідного прикладу.

Приклад 1

Тут у нас n дорівнює п'яти. Щоб було зручніше обчислювати потрібні суми, що входять до формул коефіцієнтів, заповнимо таблицю.

i = 1 i = 2 i = 3 i = 4 i = 5 ∑ i = 1 5
x i 0 1 2 4 5 12
y i 2 , 1 2 , 4 2 , 6 2 , 8 3 12 , 9
x i y i 0 2 , 4 5 , 2 11 , 2 15 33 , 8
x i 2 0 1 4 16 25 46

Рішення

Четвертий рядок включає дані, отримані при множенні значень з другого рядка на значення третього для кожного окремого i . П'ятий рядок містить дані з другого, зведені у квадрат. В останньому стовпці наводяться суми значень окремих рядків.

Скористаємося методом найменших квадратів, щоб обчислити потрібні нам коефіцієнти a і b. Для цього підставимо потрібні значення з останнього стовпця та підрахуємо суми:

n ∑ i = 1 n x i y i - ∑ i = 1 n x i ∑ i = 1 n y i n ∑ i = 1 n - ∑ i = 1 n x i 2 b = ∑ i = 1 n y i - a ∑ i = 1 n x i n 8 - 12 · 12 , 9 5 · 46 - 12 2 b = 12 , 9 - a · 12 5 ⇒ a ≈ 0 , 165 b ≈ 2 , 184

У нас вийшло, що потрібна пряма апроксимує виглядатиме як y = 0 , 165 x + 2 , 184 . Тепер нам треба визначити, яка лінія краще апроксимувати дані – g(x) = x + 1 3 + 1 або 0 , 165 x + 2 , 184 . Зробимо оцінку за допомогою методу найменших квадратів.

Щоб обчислити похибку, нам треба знайти суми квадратів відхилень даних від прямих σ 1 = ∑ i = 1 n (y i - (a x i + b i)) 2 і σ ​​2 = ∑ i = 1 n (y i - g (x i)) 2 , мінімальне значення буде відповідати більш відповідної лінії.

σ 1 = ∑ i = 1 n (y i - (a x i + b i)) 2 = = ∑ i = 1 5 (y i - (0 , 165 x i + 2 , 184)) 2 ≈ 0, 019 σ 2 = ∑ i = 1 n (y i - g (x i)) 2 = = ∑ i = 1 5 (y i - (x i + 1 3 + 1)) 2 ≈ 0 , 096

Відповідь:оскільки σ 1< σ 2 , то прямой, наилучшим образом аппроксимирующей исходные данные, будет
y = 0,165 x + 2,184.

Метод найменших квадратів наочно показано на графічній ілюстрації. За допомогою червоної лінії відзначено пряму g(x) = x + 1 3 + 1, синю – y = 0, 165 x + 2, 184 . Вихідні дані позначені рожевими крапками.

Пояснимо, навіщо саме потрібні наближення такого виду.

Вони можуть бути використані в завданнях, що вимагають згладжування даних, а також у тих, де дані треба інтерполювати або екстраполювати. Наприклад, у задачі, розібраній вище, можна було б знайти значення спостерігається величини y при x = 3 або x = 6 . Таким прикладам ми присвятили окрему статтю.

Доказ методу МНК

Щоб функція прийняла мінімальне значення при обчислених a і b потрібно, щоб у цій точці матриця квадратичної форми диференціала функції виду F (a, b) = ∑ i = 1 n (y i - (a x i + b)) 2 була позитивно визначеною. Покажемо, як це має виглядати.

Приклад 2

Ми маємо диференціал другого порядку наступного виду:

d 2 F (a ; b) = δ 2 F (a ; b) δ a 2 d 2 a + 2 δ 2 F (a ; b) δ a δ b d a d b + δ 2 F (a ; b) δ b 2 d 2 b

Рішення

δ 2 F (a ; b) δ a 2 = δ δ F (a ; b) δ a δ a = = δ - 2 ∑ i = 1 n (y i - (a x i + b)) x i δ a = 2 ∑ i = 1 n (x i) 2 δ 2 F (a ; b) δ a δ b = δ δ F (a ; b) δ a δ b = = δ - 2 ∑ i = 1 n (y i - (a x i + b) ) x i δ b = 2 ∑ i = 1 n x i δ 2 F (a ; b) δ b 2 = δ δ F (a ; b) δ b δ b = δ - 2 ∑ i = 1 n (y i - (a x i + b)) δ b = 2 ∑ i = 1 n (1) = 2 n

Інакше кажучи, можна записати так: d 2 F (a; b) = 2 ∑ i = 1 n (x i) 2 d 2 a + 2 · 2 ∑ x i i = 1 n d a d b + (2 n) d 2 b .

Ми отримали матрицю квадратичної форми виду M = 2 ∑ i = 1 n (x i) 2 2 ∑ i = 1 n x i 2 ∑ i = 1 n x i 2 n .

У цьому випадку значення окремих елементів не змінюватимуться залежно від a та b. Чи ця матриця є позитивно визначеною? Щоб відповісти на це питання, перевіримо, чи є її кутові мінори позитивними.

Обчислюємо кутовий мінор першого порядку: 2 ∑ i = 1 n (xi) 2 > 0 . Оскільки точки x i не збігаються, то нерівність є суворою. Матимемо це на увазі при подальших розрахунках.

Обчислюємо кутовий мінор другого порядку:

d e t (M) = 2 ∑ i = 1 n (x i) 2 2 ∑ i = 1 n x i 2 ∑ i = 1 n x i 2 n = 4 n ∑ i = 1 n (xi) 2 - ∑ i = 1 n x i 2

Після цього переходимо до доказу нерівності n ∑ i = 1 n (x i) 2 - ∑ i = 1 n x i 2 > 0 за допомогою математичної індукції.

  1. Перевіримо, чи буде ця нерівність справедливою за довільного n . Візьмемо 2 і підрахуємо:

2 ∑ i = 1 2 (x i) 2 - ∑ i = 1 2 x i 2 = 2 x 1 2 + x 2 2 - x 1 + x 2 2 = = x 1 2 - 2 x 1 x 2 + x 2 2 = x 1 + x 2 2 > 0

У нас вийшла правильна рівність (якщо значення x 1 і x 2 не співпадатимуть).

  1. Зробимо припущення, що це нерівність буде правильним для n , тобто. n ∑ i = 1 n (x i) 2 - ∑ i = 1 n x i 2 > 0 – справедливо.
  2. Тепер доведемо справедливість при n + 1, тобто. що (n + 1) ∑ i = 1 n + 1 (x i) 2 - ∑ i = 1 n + 1 x i 2 > 0, якщо правильно n ∑ i = 1 n (x i) 2 - ∑ i = 1 n x i 2 > 0 .

Обчислюємо:

(n + 1) ∑ i = 1 n + 1 (x i) 2 - ∑ i = 1 n + 1 x i 2 = = (n + 1) ∑ i = 1 n (x i) 2 + x n + 1 2 - ∑ i = 1 n x i + x n + 1 2 = = n ∑ i = 1 n (x i) 2 + n · x n + 1 2 + ∑ i = 1 n (x i) 2 + x n + 1 2 - - ∑ i = 1 n x i 2 + 2 x n + 1 ∑ i = 1 n x i + x n + 1 2 = = ∑ i = 1 n (x i) 2 - ∑ i = 1 n x i 2 + n · x n + 1 2 - x n + 1 ∑ i = 1 n x i + ∑ i = 1 n (x i) 2 = = ∑ i = 1 n (xi) 2 - ∑ i = 1 n x i 2 + x n + 1 2 - 2 x n + 1 x 1 + x 1 2 + + x n + 1 2 - 2 x n + 1 x 2 + x 2 2 +. . . + x n + 1 2 - 2 x n + 1 x 1 + x n 2 = = n ∑ i = 1 n (x i) 2 - ∑ i = 1 n x i 2 + + (x n + 1 - x 1) 2 + (x n + 1 - x 2) 2+. . . + (x n – 1 – x n) 2 > 0

Вираз, укладений у фігурні дужки, буде більше 0 (виходячи з того, що ми припускали в пункті 2), та інші доданки будуть більшими за 0, оскільки всі вони є квадратами чисел. Ми довели нерівність.

Відповідь:знайдені a і b відповідатимуть найменшому значенню функції F (a , b) = ∑ i = 1 n (y i - (a x i + b)) 2 , отже, є шуканими параметрами методу найменших квадратів (МНК).

Якщо ви помітили помилку в тексті, будь ласка, виділіть її та натисніть Ctrl+Enter

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

За допомогою побудови інтерполяційного багаточлена n-ступеня, що проходить безпосередньо через усі точкизаданого масиву даних. У даному випадку апроксимуюча функція подається у вигляді: інтерполяційного багаточлена у формі Лагранжа або інтерполяційного багаточлена у формі Ньютона.

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

Метод найменших квадратів(В англомовній літературі Ordinary Least Squares, OLS) - математичний метод, заснований на визначенні апроксимуючої функції, яка будується в найближчій близькості від точок із заданого масиву експериментальних даних. Близькість вихідної та апроксимуючої функції F(x) визначається числовою мірою, а саме: сума квадратів відхилень експериментальних даних від апроксимуючої кривої F(x) має бути найменшою.

Апроксимуюча крива, побудована за методом найменших квадратів

Метод найменших квадратів використовується:

Для вирішення перевизначених систем рівнянь коли кількість рівнянь перевищує кількість невідомих;

Для пошуку рішення у разі звичайних (не перевизначених) нелінійних систем рівнянь;

Для апроксимації точкових значень деякою апроксимуючою функцією.

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

Значення розрахункової апроксимуючої функції у вузлових точках

Заданий масив експериментальних даних у вузлових точках.

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

Залежно від умов завдання апроксимуюча функція є багаточленом ступеня m

Ступінь апроксимуючої функції не залежить від числа вузлових точок, але її розмірність повинна бути завжди меншою за розмірність (кількість точок) заданого масиву експериментальних даних.

∙ Якщо ступінь апроксимуючої функції m=1, то ми апроксимуємо табличну функцію прямою лінією (лінійна регресія).

∙ Якщо ступінь апроксимуючої функції m=2, то ми апроксимуємо табличну функцію квадратичною параболою (квадратична апроксимація).

∙ Якщо ступінь апроксимуючої функції m=3, то ми апроксимуємо табличну функцію кубічною параболою (кубічна апроксимація).

У випадку, коли потрібно побудувати апроксимуючий многочлен ступеня m для заданих табличних значень, умова мінімуму суми квадратів відхилень за всіма вузловими точками переписується у такому виде:

- невідомі коефіцієнти апроксимуючого багаточлена ступеня m;

Кількість заданих табличних значень.

Необхідною умовою існування мінімуму функції є рівність нуля її приватних похідних за невідомими змінними . В результаті отримаємо наступну систему рівнянь:

Перетворимо отриману лінійну систему рівнянь: розкриємо дужки і перенесемо вільні доданки в праву частину виразу. В результаті отримана система лінійних виразів алгебри буде записуватися в наступному вигляді:

Дана система лінійних виразів алгебри може бути переписана в матричному вигляді:

В результаті було отримано систему лінійних рівнянь розмірністю m+1, що складається з m+1 невідомих. Дана система може бути вирішена за допомогою будь-якого методу розв'язання лінійних рівнянь алгебри (наприклад, методом Гаусса). Через війну рішення знайдено невідомі параметри апроксимуючої функції, які забезпечують мінімальну суму квадратів відхилень апроксимуючої функції від вихідних даних, тобто. найкраще можливе квадратичне наближення. Слід пам'ятати, що при зміні навіть одного значення вихідних даних усі коефіцієнти змінять свої значення, оскільки вони повністю визначаються вихідними даними.

Апроксимація вихідних даних лінійною залежністю

(лінійна регресія)

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

Координати вузлових точок таблиці;

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

Необхідною умовою існування мінімуму функції є рівність нуля її приватних похідних за невідомими змінними. В результаті отримуємо таку систему рівнянь:

Перетворимо отриману лінійну систему рівнянь.

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

Дані коефіцієнти забезпечують побудову лінійної апроксимуючої функції відповідно до критерію мінімізації суми квадратів апроксимуючої функції від заданих табличних значень (експериментальні дані).

Алгоритм реалізації методу найменших квадратів

1. Початкові дані:

Задано масив експериментальних даних із кількістю вимірювань N

Задано ступінь апроксимуючого багаточлена (m)

2. Алгоритм обчислення:

2.1. Визначаються коефіцієнти для побудови системи рівнянь розмірністю

Коефіцієнти системи рівнянь (ліва частина рівняння)

- Індекс номера стовпця квадратної матриці системи рівнянь

Вільні члени системи лінійних рівнянь (права частина рівняння)

- індекс номера рядка квадратної матриці системи рівнянь

2.2. Формування системи лінійних рівнянь розмірністю.

2.3. Розв'язання системи лінійних рівнянь з метою визначення невідомих коефіцієнтів апроксимуючого багаточлена ступеня m.

2.4.Визначення суми квадратів відхилень апроксимуючого багаточлена від вихідних значень по всіх вузлових точках

Знайдене значення суми квадратів відхилень є мінімально можливим.

Апроксимація за допомогою інших функцій

Слід зазначити, що при апроксимації вихідних даних відповідно до методу найменших квадратів як апроксимуючу функцію іноді використовують логарифмічну функцію, експоненційну функцію і статечну функцію.

Логарифмічна апроксимація

Розглянемо випадок, коли апроксимуюча функція задана логарифмічною функцією виду:

Поділіться з друзями або збережіть для себе:

Завантаження...