Метод найменших квадратів ґрунтується на принципі. Метод найменших квадратів приклади розв'язання задач

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

Метод найменших квадратів ( МНК, OLS, Ordinary Least Squares) - один із базових методів регресійного аналізу для оцінки невідомих параметрів регресійних моделей за вибірковими даними. Метод ґрунтується на мінімізації суми квадратів залишків регресії.

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

Сутність МНК

Нехай задана деяка (параметрична) модель імовірнісної (регресійної) залежності між (з'ясованою) змінною yі безліччю факторів (що пояснюють змінних) x

де - вектор невідомих параметрів моделі

- Випадкова помилка моделі.

Нехай також є вибіркові спостереження значень вказаних змінних. Нехай – номер спостереження (). Тоді - значення змінних у спостереженні. Тоді при заданих значеннях параметрів b можна розрахувати теоретичні (модельні) значення змінної, що пояснюється y:

Розмір залишків залежить від значень параметрів b.

Сутність МНК (звичайного, класичного) у тому, щоб знайти такі параметри b, у яких сума квадратів залишків (англ. Residual Sum of Squares) буде мінімальною:

У загальному випадкувирішення цього завдання може здійснюватися чисельними методамиоптимізації (мінімізації). У цьому випадку говорять про нелінійному МНК(NLS або NLLS – англ. Non-Linear Least Squares). У багатьох випадках можна одержати аналітичне рішення. Для вирішення задачі мінімізації необхідно знайти стаціонарні точки функції, продиференціювавши її за невідомими параметрами b, прирівнявши похідні до нуля і вирішивши отриману систему рівнянь:

Якщо випадкові помилки моделі мають нормальний розподіл , мають однакову дисперсію і некорельовані між собою, МНК оцінки параметрів збігаються з оцінками методу максимальної правдоподібності (ММП).

МНК у разі лінійної моделі

Нехай регресійна залежністьє лінійною:

Нехай y- вектор-стовпець спостережень пояснюваної змінної, а - матриця спостережень факторів (рядки матриці - вектори значень факторів у даному спостереженні, по стовпцях - вектор значень даного факторау всіх спостереженнях). Матричне уявлення лінійної моделі має вигляд:

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

відповідно сума квадратів залишків регресії дорівнюватиме

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

.

Вирішення цієї системи рівнянь і дає загальну формулуМНК-оцінок для лінійної моделі:

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

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

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

Приклад: найпростіша (парна) регресія

У разі парної лінійної регресіїформули розрахунку спрощуються (можна обійтися без матричної алгебри):

Властивості МНК-оцінок

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

  1. математичне очікуваннявипадкових помилок дорівнює нулю, і
  2. фактори та випадкові помилки - незалежні випадкові величини.

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

Для того, щоб окрім спроможності та незміщеності, оцінки (звичайного) МНК були ще й ефективними (найкращими у класі лінійних незміщених оцінок) необхідно виконання додаткових властивостейвипадкової помилки:

Дані припущення можна сформулювати для коварійної матриці вектора випадкових помилок

Лінійна модель, що задовольняє такі умови, називається класичною. МНК-оцінки для класичної лінійної регресії є незміщеними, заможними та найбільш ефективними оцінками в класі всіх лінійних незміщених оцінок (в англомовній літературі іноді вживають абревіатуру BLUE (Best Linear Unbaised Estimator) - найкраща лінійна незміщена оцінка; у вітчизняній літературі найчастіше наводиться теорема Гауса – Маркова). Як неважко показати, ковариационная матриця вектора оцінок коефіцієнтів дорівнюватиме:

Узагальнений МНК

Метод найменших квадратів припускає широке узагальнення. Замість мінімізації суми квадратів залишків можна мінімізувати деяку позитивно визначену квадратичну форму від вектора залишків де - деяка симетрична позитивно визначена вагова матриця. Звичайний МНК є окремим випадком даного підходу, коли вагова матриця пропорційна одиничній матриці. Як відомо з теорії симетричних матриць (або операторів) для таких матриць існує розкладання. Отже, зазначений функціонал можна уявити наступним чином , тобто цей функціонал можна як суму квадратів деяких перетворених «залишків». Отже, можна назвати клас методів найменших квадратів - LS-методи (Least Squares).

Доведено (теорема Айткена), що для узагальненої лінійної регресійної моделі (у якій на коварійну матрицю випадкових помилок не накладається жодних обмежень) найефективнішими (у класі лінійних незміщених оцінок) є оцінки т.з. узагальненого МНК (ОМНК, GLS - Generalized Least Squares)- LS-метода з ваговою матрицею, що дорівнює зворотній коварійній матриці випадкових помилок: .

Можна показати, що формула ОМНК оцінок параметрів лінійної моделі має вигляд

Коваріаційна матриця цих оцінок відповідно дорівнюватиме

Фактично сутність ОМНК полягає у певному (лінійному) перетворенні (P) вихідних даних та застосуванні звичайного МНК до перетворених даних. Ціль цього перетворення - для перетворених даних випадкові помилки вже задовольняють класичним припущенням.

Зважений МНК

У випадку діагональної вагової матриці (а значить і матриці коварійної випадкових помилок) маємо так званий зважений МНК (WLS - Weighted Least Squares). У даному випадкумінімізується зважена сума квадратів залишків моделі, тобто кожне спостереження отримує «вагу», обернено пропорційну дисперсії випадкової помилки в даному спостереженні: . Фактично дані перетворюються зважуванням спостережень (розподілом на величину, пропорційну передбачуваному стандартного відхиленнявипадкових помилок), а до виважених даних застосовується стандартний МНК.

Деякі окремі випадки застосування МНК на практиці

Апроксимація лінійної залежності

Розглянемо випадок, коли в результаті вивчення залежності деякої скалярної величини від деякої скалярної величини (Це може бути, наприклад, залежність напруги від сили струму : де - постійна величина, опір провідника) було проведено вимірювань цих величин, в результаті яких були отримані значення і відповідні їм значення. Дані вимірювань мають бути записані у таблиці.

Таблиця. Результати вимірів.

№ виміру
1
2
3
4
5
6

Питання звучить так: яке значення коефіцієнта можна підібрати, щоб найкращим чиномописати залежність? Згідно з МНК це значення має бути таким, щоб сума квадратів відхилень величин від величин

була мінімальною

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

Остання формула дозволяє знайти значення коефіцієнта , що й потрібно завдання.

Історія

До початку XIXв. вчені не мали певних правилдля розв'язання системи рівнянь , у якій число невідомих менше, ніж число рівнянь; до цього часу використовувалися приватні прийоми, що залежали від виду рівнянь і від дотепності обчислювачів, і тому різні обчислювачі, виходячи з тих самих даних спостережень, приходили до різних висновків. Гаусс (1795) належить перше застосування методу, а Лежандр (1805) незалежно відкрив і опублікував його під сучасною назвою (фр. Méthode des moindres quarrés ). Лаплас пов'язав метод з теорією ймовірностей, а американський математик Едрейн (1808) розглянув його теоретико-імовірнісні додатки. Метод поширений і вдосконалений подальшими дослідженнями Енке, Бесселя, Ганзена та інших.

Альтернативне використання МНК

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

Одне із застосувань - «вирішення» систем лінійних рівнянь, у яких число рівнянь більше числа змінних

де матриця не квадратна, а прямокутна розміру.

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

  • 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

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

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

  • Програмування
    • 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

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

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

    приклад.

    Експериментальні дані про значення змінних хі унаведено у таблиці.

    В результаті їх вирівнювання отримано функцію

    Використовуючи метод найменших квадратів, апроксимувати ці дані лінійною залежністю y=ax+b(Знайти параметри аі b). З'ясувати, яка з двох ліній краще (у сенсі способу менших квадратів) вирівнює експериментальні дані. Зробити креслення.

    Суть методу найменших квадратів (МНК).

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

    Таким чином, рішення прикладу зводиться до знаходження екстремуму функції двох змінних.

    Висновок формул знаходження коефіцієнтів.

    Складається та вирішується система із двох рівнянь із двома невідомими. Знаходимо приватні похідні функції за змінними аі b, Прирівнюємо ці похідні до нуля.

    Вирішуємо отриману систему рівнянь будь-яким методом (наприклад методом підстановкиабо методом Крамера) та отримуємо формули для знаходження коефіцієнтів за методом найменших квадратів (МНК).

    За даними аі bфункція набуває найменшого значення. Доказ цього факту наведено нижче за текстом наприкінці сторінки.

    Ось і весь спосіб найменших квадратів. Формула для знаходження параметра aмістить суми ,,,і параметр n- Кількість експериментальних даних. Значення цих сум рекомендуємо обчислювати окремо. Коефіцієнт bзнаходиться після обчислення a.

    Настав час згадати про вихідний приклад.

    Рішення.

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

    Значення у четвертому рядку таблиці отримані множенням значень 2-го рядка на значення 3-го рядка для кожного номера i.

    Значення у п'ятому рядку таблиці отримані зведенням у квадрат значень другого рядка для кожного номера i.

    Значення останнього стовпця таблиці – це суми значень рядків.

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

    Отже, y = 0.165x+2.184- пряма апроксимуюча.

    Залишилося з'ясувати, яка з ліній y = 0.165x+2.184або краще апроксимує вихідні дані, тобто провести оцінку шляхом найменших квадратів.

    Оцінка похибки способу менших квадратів.

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

    Оскільки , то пряма y = 0.165x+2.184краще наближає вихідні дані.

    Графічна ілюстрація методу найменших квадратів (МНК).

    На графіках все чудово видно. Червона лінія – це знайдена пряма y = 0.165x+2.184, синя лінія – це , Рожеві точки - це вихідні дані.

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

    Такі завдання наближення функцій часто виникають:

      при побудові наближених формул для обчислення значень характерних величин досліджуваного процесу за табличними даними, отриманими в результаті експерименту;

      при чисельному інтегруванні, диференціюванні, розв'язанні диференціальних рівнянь тощо;

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

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

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

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

    Excel для побудови регресій є дві можливості.

      Додавання обраних регресій (ліній тренду - trendlines) у діаграму, побудовану на основі таблиці даних для досліджуваної характеристики процесу (доступне лише за наявності побудованої діаграми);

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

    Додавання ліній тренду до діаграми

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

      будувати на основі методу найменших квадратів і додавати в діаграму п'ять типів регресій, які з тим чи іншим ступенем точності моделюють досліджуваний процес;

      додавати до діаграми рівняння побудованої регресії;

      визначати ступінь відповідності обраної регресії даних, що відображаються на діаграмі.

    На основі даних діаграми Excel дозволяє отримувати лінійний, поліноміальний, логарифмічний, статечний, експоненційний типи регресій, які задаються рівнянням:

    y = y(x)

    де x - незалежна змінна, яка часто набуває значення послідовності натурального ряду чисел (1; 2; 3; …) і здійснює, наприклад, відлік часу протікання досліджуваного процесу (характеристики).

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

    y = mx + b

    де m – тангенс кута нахилу лінійної регресії до осі абсцис; b - координата точки перетину лінійної регресії з віссю ординат.

    2 . Поліноміальна лінія тренду корисна для опису характеристик, що мають кілька яскраво виражених екстремумів (максимумів та мінімумів). Вибір ступеня полінома визначається кількістю екстремумів досліджуваної характеристики. Так, поліном другого ступеня може добре описати процес, що має лише один максимум або мінімум; поліном третього ступеня - трохи більше двох екстремумів; поліном четвертого ступеня - трохи більше трьох екстремумів тощо.

    У цьому випадку лінія тренду будується відповідно до рівняння:

    y = c0 + c1x + c2x2 + c3x3 + c4x4 + c5x5 + c6x6

    де коефіцієнти c0, c1, c2, c6 - константи, значення яких визначаються в ході побудови.

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

    y = c ln(x) + b

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

    Будується відповідно до рівняння:

    y = c xb

    де коефіцієнти b, с – константи.

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

    Будується відповідно до рівняння:

    y = c ebx

    де коефіцієнти b, с – константи.

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

    Визначається за такою формулою:

    Для додавання лінії тренду до ряду даних слід:

      активізувати побудовану з урахуванням низки даних діаграму, т. е. клацнути у межах області діаграми. У головному меню з'явиться пункт Діаграма;

      після натискання на цьому пункті на екрані з'явиться меню, в якому слід вибрати команду Додати лінію тренда.

    Ці ж дії легко реалізуються, якщо навести покажчик миші на графік, що відповідає одному з рядів даних, та клацнути правою кнопкою миші; у контекстному меню, що з'явилося, вибрати команду Додати лінію тренда. На екрані з'явиться діалогове вікно Лінія тренду з відкритою вкладкою Тип (рис. 1).

    Після цього необхідно:

    Вибрати на вкладці Тип необхідний тип лінії тренда (за замовчуванням вибирається тип Лінійний). Для Поліноміального типу в полі Ступінь слід задати ступінь обраного полінома.

    1 . У полі Побудований ряд перераховані всі ряди даних аналізованої діаграми. Для додавання лінії тренда до конкретного ряду даних слід у полі Побудований на ряді вибрати його ім'я.

    При необхідності, перейшовши на вкладку Параметри (мал. 2), можна для лінії тренда задати такі параметри:

      змінити назву лінії тренду в полі Назва апроксимуючої (згладженої) кривої.

      задати кількість періодів (вперед чи назад) для прогнозу у полі Прогноз;

      вивести в ділянку діаграми рівняння лінії тренду, для чого слід включити прапорець показати рівняння на діаграмі;

      вивести в ділянку діаграми значення достовірності апроксимації R2, для чого слід включити прапорець помістити на діаграму величину достовірності апроксимації (R^2);

      задати точку перетину лінії тренду з віссю Y, для чого слід включити прапорець перетин кривої з віссю Y в точці;

      клацнути на кнопці OK, щоб закрити діалогове вікно.

    Для того, щоб розпочати редагування вже побудованої лінії тренду, існує три способи:

      скористатися командою Виділена лінія тренду з меню Формат, вибравши попередньо лінію тренда;

      вибрати команду Формат лінії тренда з контекстного меню, яке викликається клацанням правої кнопки миші по лінії тренду;

      подвійним клацанням по лінії тренду.

    На екрані з'явиться діалогове вікно Формат лінії тренду (рис. 3), що містить три вкладки: Вид, Тип, Параметри, причому вміст останніх двох повністю збігається з аналогічними вкладками діалогового вікна Лінія тренду (рис.1-2). На вкладці Вигляд можна задати тип лінії, її колір та товщину.

    Для видалення вже побудованої лінії тренда слід вибрати лінію тренда, що видаляється, і натиснути клавішу Delete.

    Перевагами розглянутого інструменту регресійного аналізу є:

      відносна легкість побудови на діаграмах лінії тренду без створення нею таблиці даних;

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

      можливість прогнозування поведінки досліджуваного процесу на довільне (не більше здорового глузду) кількість кроків уперед, і навіть назад;

      можливість одержання рівняння лінії тренда в аналітичному вигляді;

      можливість, за потреби, отримання оцінки достовірності проведеної апроксимації.

    До недоліків можна віднести такі моменти:

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

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

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

    Лініями тренду можна доповнити ряди даних, представлені на діаграмах типу графік, гістограма, плоскі ненормовані діаграми з областями, лінійчасті, точкові, пухирцеві та біржові.

    Не можна доповнити лініями тренду ряди даних на об'ємних, нормованих, пелюсткових, кругових та кільцевих діаграмах.

    Використання вбудованих функцій Excel

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

    В Excel є кілька функцій для побудови лінійної регресії, зокрема:

      ТЕНДЕНЦІЯ;

    • Нахил і відрізок.

    А також кілька функцій для побудови експоненційної лінії тренду, зокрема:

      ЛДРФПРИБЛ.

    Слід зазначити, що прийоми побудови регресій за допомогою функцій ТЕНДЕНЦІЯ та РОСТ практично збігаються. Те саме можна сказати і про пару функцій Лінейн і ЛГРФПРИБЛ. Для чотирьох цих функцій під час створення таблиці значень використовуються такі можливості Excel, як формули масивів, що дещо захаращує процес побудови регресій. Зауважимо також, що побудова лінійної регресії, на наш погляд, найлегше здійснити за допомогою функцій НАКЛОН і ВІДРІЗОК, де перша визначає кутовий коефіцієнт лінійної регресії, а друга - відрізок, що відсікається регресією на осі ординат.

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

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

      стандартна методика побудови ліній тренду на основі сформованих рядів даних;

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

    А до недоліків відноситься те, що в Excel немає вбудованих функцій для створення інших (крім лінійного та експонентного) типів ліній тренду. Ця обставина часто дозволяє підібрати досить точну модель досліджуваного процесу, і навіть отримати близькі до реальності прогнози. Крім того, при використанні функцій ТЕНДЕНЦІЯ та РОСТ не відомі рівняння ліній тренду.

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

    Приклади вирішення конкретних завдань

    Розглянемо рішення конкретних завдань за допомогою перерахованих інструментів Excel.

    Завдання 1

    З таблицею даних про прибуток автотранспортного підприємства за 1995-2002 рр. необхідно виконати такі дії.

      Побудувати діаграму.

      У діаграму додати лінійну та поліноміальну (квадратичну та кубічну) лінії тренду.

      Використовуючи рівняння ліній тренду, отримати табличні дані щодо прибутку підприємства для кожної лінії тренду за 1995-2004 роки.

      Скласти прогноз щодо прибутку підприємства на 2003 та 2004 роки.

    Рішення задачі

      У діапазон осередків A4:C11 робочого листа Excel вводимо робочу таблицю, подану на рис. 4.

      Виділивши діапазон осередків В4: С11, будуємо діаграму.

      Активізуємо побудовану діаграму та за описаною вище методикою після вибору типу лінії тренду в діалоговому вікні Лінія тренду (див. рис. 1) по черзі додаємо в діаграму лінійну, квадратичну та кубічну лінії тренду. У цьому ж діалоговому вікні відкриваємо вкладку Параметри (див. рис. 2), в полі Назва апроксимуючої (згладженої) кривої вводимо найменування тренда, що додається, а в полі Прогноз вперед на: періодів задаємо значення 2, так як планується зробити прогноз по прибутку на два року наперед. Для виведення в області діаграми рівняння регресії та значення достовірності апроксимації R2 включаємо прапорці показувати рівняння на екрані та помістити на діаграму величину достовірності апроксимації (R^2). Для кращого візуального сприйняття змінюємо тип, колір та товщину побудованих ліній тренду, для чого скористаємось вкладкою Вид діалогового вікна Формат лінії тренду (див. рис. 3). Отримана діаграма з доданими лініями тренду представлена ​​на рис. 5.

      Для отримання табличних даних щодо прибутку підприємства для кожної лінії тренду за 1995-2004 роки. скористаємось рівняннями ліній тренду, представленими на рис. 5. Для цього в комірки діапазону D3:F3 вводимо текстову інформацію про тип обраної лінії тренду: Лінійний тренд, Квадратичний тренд, Кубічний тренд. Далі вводимо в комірку D4 формулу лінійної регресії і, використовуючи маркер заповнення, копіюємо цю формулу з відносними посиланнями діапазону комірок D5:D13. Слід зазначити, що кожному осередку з формулою лінійної регресії з діапазону осередків D4:D13 як аргумент стоїть відповідний осередок з діапазону A4:A13. Аналогічно для квадратичної регресії заповнюється діапазон осередків E4: E13, а кубічної регресії - діапазон осередків F4: F13. Таким чином, складено прогноз щодо прибутку підприємства на 2003 та 2004 роки. за допомогою трьох трендів. Отримана таблиця значень представлена ​​рис. 6.

    Завдання 2

      Побудувати діаграму.

      У діаграму додати логарифмічну, статечну та експоненційну лінії тренду.

      Вивести рівняння отриманих ліній тренду, і навіть величини достовірності апроксимації R2 кожної з них.

      Використовуючи рівняння ліній тренду, отримати табличні дані про прибуток підприємства кожної лінії тренду за 1995-2002 гг.

      Скласти прогноз про прибуток підприємства на 2003 та 2004 рр., використовуючи ці лінії тренду.

    Рішення задачі

    Дотримуючись методики, наведеної при вирішенні задачі 1, отримуємо діаграму з доданими до неї логарифмічної, статечної та експоненційної лініями тренду (рис. 7). Далі, використовуючи отримані рівняння ліній тренду, заповнюємо таблицю значень із прибутку підприємства, включаючи прогнозовані значення на 2003 та 2004 роки. (Рис. 8).

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

    R2 = 0,8659

    Найбільші значення R2 відповідають моделям з поліноміальним трендом: квадратичним (R2 = 0,9263) і кубічним (R2 = 0,933).

    Завдання 3

    З таблицею даних про прибуток автотранспортного підприємства за 1995-2002 рр., що наведена в задачі 1, необхідно виконати такі дії.

      Отримати ряди даних для лінійної та експоненційної лінії тренду з використанням функцій ТЕНДЕНЦІЯ та РОСТ.

      Використовуючи функції ТЕНДЕНЦІЯ та РОСТ, скласти прогноз про прибуток підприємства на 2003 та 2004 роки.

      Для вихідних даних та отриманих рядів даних побудувати діаграму.

    Рішення задачі

    Скористайтеся робочою таблицею задачі 1 (див. рис. 4). Почнемо з функції ТЕНДЕНЦІЯ:

      виділяємо діапазон осередків D4:D11, який слід заповнити значеннями функції ТЕНДЕНЦІЯ, що відповідають відомим даним про прибуток підприємства;

      викликаємо команду Функція з меню Вставка. У діалоговому вікні Майстер функцій виділяємо функцію ТЕНДЕНЦІЯ з категорії Статистичні, після чого клацаємо по кнопці ОК. Цю операцію можна здійснити натисканням кнопки (Вставка функції) стандартної панелі інструментів.

      У діалоговому вікні, що з'явилося Аргументи функції вводимо в поле Відомі_значення_y діапазон осередків C4:C11; у полі Відомі_значення_х - діапазон осередків B4: B11;

      щоб формула, що вводиться, стала формулою масиву, використовуємо комбінацію клавіш + + .

    Введена нами формула у рядку формул матиме вигляд: =(ТЕНДЕНЦІЯ(C4:C11;B4:B11)).

    В результаті діапазон комірок D4:D11 заповнюється відповідними значеннями функції ТЕНДЕНЦІЯ (рис. 9).

    Для складання прогнозу про прибуток підприємства на 2003 та 2004 роки. необхідно:

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

      викликати функцію ТЕНДЕНЦІЯ і в діалоговому вікні, що з'явилося Аргументи функції ввести в поле Відомі_значення_y - діапазон осередків C4:C11; у полі Відомі_значення_х - діапазон осередків B4: B11; а в полі Нові_значення_х - діапазон осередків B12: B13.

      перетворити цю формулу на формулу масиву, використовуючи комбінацію клавіш Ctrl + Shift + Enter.

      Введена формула матиме вигляд: =(ТЕНДЕНЦІЯ(C4:C11;B4:B11;B12:B13)), а діапазон осередків D12:D13 заповниться прогнозованими значеннями функції ТЕНДЕНЦІЯ (див. рис. 9).

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

    На рис.10 представлена ​​таблиця як показу формул.

    Для вихідних даних та отриманих рядів даних побудовано діаграму, зображену на рис. 11.

    Завдання 4

    З таблицею даних про вступ до диспетчерської служби автотранспортного підприємства заявок на послуги за період з 1 до 11 числа поточного місяця необхідно виконати такі дії.

      Отримати ряди даних для лінійної регресії: використовуючи функції НАКЛОН та ВІДРІЗОК; використовуючи функцію Лінейн.

      Отримати ряд даних для експоненційної регресії з використанням функції ЛГРФПРИБЛ.

      Використовуючи вищезгадані функції, скласти прогноз про надходження заявок до диспетчерської служби на період з 12 до 14 числа поточного місяця.

      Для вихідних та отриманих рядів даних побудувати діаграму.

    Рішення задачі

    Зазначимо, що, на відміну від функцій ТЕНДЕНЦІЯ і ЗРОСТАННЯ, жодна з перерахованих вище функцій (НАХИЛ, ВІДРІЗОК, ЛІНІЙН, ЛГРФПРИБ) не є регресією. Ці функції грають лише допоміжну роль, визначаючи необхідні параметри регресії.

    Для лінійної та експоненційної регресій, побудованих за допомогою функцій НАКЛОН, ВІДРІЗОК, ЛІНІЙН, ЛГРФПРИБ, зовнішній вигляд їх рівнянь завжди відомий, на відміну від лінійної та експоненційної регресій, що відповідають функціям ТЕНДЕНЦІЯ та РОЗДІЛ.

    1 . Побудуємо лінійну регресію, яка має рівняння:

    y = mx+b

    за допомогою функцій НАХИЛ і ВІДРІЗОК, причому кутовий коефіцієнт регресії m визначається функцією НАХИЛ, а вільний член b - функцією ВІДРІЗОК.

    Для цього здійснюємо такі дії:

      заносимо вихідну таблицю в діапазон осередків A4: B14;

      значення параметра m буде визначатися в комірці С19. Вибираємо з категорії Статистичні функції Нахил; заносимо діапазон осередків B4:B14 у поле відомі_значення_y та діапазон осередків А4:А14 у поле відомі_значення_х. У комірку С19 буде введена формула: = НАХЛАН(B4:B14;A4:A14);

      за аналогічною методикою визначається значення параметра b у комірці D19. І її вміст матиме вигляд: = відрізок (B4: B14; A4: A14). Таким чином, необхідні для побудови лінійної регресії значення параметрів m і b зберігатимуться відповідно в осередках C19, D19;

      далі заносимо в комірку С4 формулу лінійної регресії як: =$C*A4+$D. У цій формулі осередки С19 та D19 записані з абсолютними посиланнями (адреса осередку не повинна змінюватися при можливому копіюванні). Знак абсолютного посилання $ можна набити або з клавіатури або за допомогою клавіші F4, попередньо встановивши курсор на адресу комірки. Скориставшись маркером заповнення, скопіюємо цю формулу в діапазон осередків С4:С17. Отримуємо потрібний ряд даних (рис. 12). У зв'язку з тим, що кількість заявок - ціле число, слід встановити на вкладці Число вікна Формат осередків числовий формат із числом десяткових знаків 0.

    2 . Тепер збудуємо лінійну регресію, задану рівнянням:

    y = mx+b

    за допомогою функції ЛІНІЙН.

    Для цього:

      вводимо в діапазон осередків C20:D20 функцію ЛІНІЙН як формулу масиву: =(ЛІНЕЙН(B4:B14;A4:A14)). В результаті отримуємо в комірці C20 значення параметра m, а в комірці D20 значення параметра b;

      вводимо в комірку D4 формулу: = $ C * A4 + $ D;

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

    3 . Будуємо експоненційну регресію, яка має рівняння:

    за допомогою функції ЛГРФПРИБЛ воно виконується аналогічно:

      в діапазон осередків C21:D21 вводимо функцію ЛГРФПРИБЛ як формулу масиву: =( ЛГРФПРИБЛ (B4:B14;A4:A14)). При цьому в комірці C21 буде визначено значення параметра m, а в комірці D21 значення параметра b;

      у комірку E4 вводиться формула: =$D*$C^A4;

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

    На рис. 13 наведено таблицю, де видно використовувані нами функції з необхідними діапазонами осередків, а також формули.

    Величина R 2 називається коефіцієнтом детермінації.

    Завданням побудови регресійної залежності є знаходження вектора коефіцієнтів m моделі (1) при якому коефіцієнт R набуває максимального значення.

    Для оцінки значущості R застосовується F-критерій Фішера, що обчислюється за формулою

    де n- розмір вибірки (кількість експериментів);

    k – число коефіцієнтів моделі.

    Якщо F перевищує деяке критичне значення для даних nі kі прийнятої довірчої ймовірності, величина R вважається істотною. Таблиці критичних значень F наводяться у довідниках математичної статистики.

    Отже, значимість R визначається як його величиною, а й співвідношенням між кількістю експериментів і кількістю коефіцієнтів (параметрів) моделі. Дійсно, кореляційне відношення для n=2 для простої лінійної моделі дорівнює 1 (через 2 точки на площині завжди можна провести єдину пряму). Однак, якщо експериментальні дані є випадковими величинами, довіряти такому значенню R слід з великою обережністю. Зазвичай отримання значимого R і достовірної регресії прагнуть до того, щоб кількість експериментів істотно перевищувала кількість коефіцієнтів моделі (n>k).

    Для побудови лінійної регресійної моделі необхідно:

    1) підготувати список з n рядків і m стовпців, що містить експериментальні дані (стовпець, що містить вихідну величину Yмає бути або першим, або останнім у списку); Наприклад візьмемо дані попереднього завдання, додавши стовпець під назвою "№ періоду", пронумеруємо номери періодів від 1 до 12. (це значення Х)

    2) звернутися до меню Дані/Аналіз даних/Регресія

    Якщо пункт "Аналіз даних" у меню "Сервіс" відсутній, слід звернутися до пункту "Надбудови" того ж меню і встановити прапорець "Пакет аналізу".

    3) у діалоговому вікні "Регресія" задати:

    · Вхідний інтервал Y;

    · Вхідний інтервал X;

    · Вихідний інтервал - верхній лівий осередок інтервалу, в який будуть розміщуватися результати обчислень (рекомендується розмістити на новому робочому аркуші);

    4) натиснути "Ok" та проаналізувати результати.

    Наблизимо функцію многочленом 2-го ступеня. Для цього обчислимо коефіцієнти нормальної системи рівнянь:

    , ,

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

    Рішення системи легко перебуває: , .

    Таким чином, многочлен другого ступеня виявлено: .

    Теоретична довідка

    Повернутися на сторінку<Введение в вычислительную математику. Примеры>

    Приклад 2. Знаходження оптимального ступеня багаточлену.

    Повернутися на сторінку<Введение в вычислительную математику. Примеры>

    Приклад 3. Виведення нормальної системи рівнянь знаходження параметрів емпіричної залежності.

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

    Тоді нормальна система набуде вигляду:

    Отримали лінійну систему рівнянь щодо невідомих параметрів і легко вирішується.

    Теоретична довідка

    Повернутися на сторінку<Введение в вычислительную математику. Примеры>

    приклад.

    Експериментальні дані про значення змінних хі унаведено у таблиці.

    В результаті їх вирівнювання отримано функцію

    Використовуючи метод найменших квадратів, апроксимувати ці дані лінійною залежністю y=ax+b(Знайти параметри аі b). З'ясувати, яка з двох ліній краще (у сенсі способу менших квадратів) вирівнює експериментальні дані. Зробити креслення.

    Суть методу найменших квадратів (МНК).

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

    Таким чином, рішення прикладу зводиться до знаходження екстремуму функції двох змінних.

    Висновок формул знаходження коефіцієнтів.

    Складається та вирішується система із двох рівнянь із двома невідомими. Знаходимо приватні похідні функції за змінними аі b, Прирівнюємо ці похідні до нуля.

    Вирішуємо отриману систему рівнянь будь-яким методом (наприклад методом підстановкиабо методом Крамера) і отримуємо формули для знаходження коефіцієнтів методом найменших квадратів (МНК).

    За даними аі bфункція набуває найменшого значення. Доказ цього факту наведено нижче в кінці сторінки.

    Ось і весь спосіб найменших квадратів. Формула для знаходження параметра aмістить суми , , , та параметр n- Кількість експериментальних даних. Значення цих сум рекомендуємо обчислювати окремо.

    Коефіцієнт bзнаходиться після обчислення a.

    Настав час згадати про вихідний приклад.

    Рішення.

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

    Значення у четвертому рядку таблиці отримані множенням значень 2-го рядка на значення 3-го рядка для кожного номера i.

    Значення у п'ятому рядку таблиці отримані зведенням у квадрат значень другого рядка для кожного номера i.

    Значення останнього стовпця таблиці – це суми значень рядків.

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

    Отже, y = 0.165x+2.184- Шукана апроксимуюча пряма.

    Залишилося з'ясувати, яка з ліній y = 0.165x+2.184або краще апроксимує вихідні дані, тобто провести оцінку шляхом найменших квадратів.

    Оцінка похибки способу менших квадратів.

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

    Оскільки , то пряма y = 0.165x+2.184краще наближає вихідні дані.

    Графічна ілюстрація методу найменших квадратів (МНК).

    На графіках все чудово видно. Червона лінія – це знайдена пряма y = 0.165x+2.184, синя лінія – це , Рожеві точки - це вихідні дані.

    Навіщо це потрібно, до чого всі ці апроксимації?

    Я особисто використовую для вирішення завдань згладжування даних, задач інтерполяції та екстраполяції (у вихідному прикладі могли б попросити знайти значення спостережуваної величини yпри x=3або при x=6методом МНК). Але докладніше поговоримо про це пізніше в іншому розділі сайту.

    На початок сторінки

    Доведення.

    Щоб при знайдених аі bфункція приймала найменше значення, необхідно, щоб у цій точці матриця квадратичної форми диференціала другого порядку для функції була позитивно визначеною. Покажемо це.

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

    Тобто

    Отже, матриця квадратичної форми має вигляд

    причому значення елементів не залежать від аі b.

    Покажемо, що матриця є позитивно визначеною. Для цього потрібно, щоб кутові мінори були позитивними.

    Кутовий мінор першого порядку . Нерівність сувора, оскільки точки несупадні. Надалі це матимемо на увазі.

    Кутовий мінор другого порядку

    Доведемо, що методом математичної індукції.

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

    Нема коли розбиратися?
    Замовте рішення

    На початок сторінки

    Розробка прогнозу з допомогою методу найменших квадратів. Приклад розв'язання задачі

    Екстраполяція — це метод наукового дослідження, який ґрунтується на поширенні минулих та справжніх тенденцій, закономірностей, зв'язків на майбутній розвиток об'єкта прогнозування. До методів екстраполяції відносяться метод ковзної середньої, метод експоненційного згладжування, метод найменших квадратів.

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

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

    Робоча формула методу найменших квадратів : У t+1 = а * Х + b, де t + 1 – прогнозний період; Уt+1 – прогнозований показник; a та b - коефіцієнти; Х - умовне позначення часу.

    Розрахунок коефіцієнтів a і b здійснюється за такими формулами:

    де, УФ - фактичні значення низки динаміки; n – число рівнів часового ряду;

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

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

    Правильно встановити тип кривої, тип аналітичної залежності від часу – одне з найскладніших завдань передпрогнозного аналізу .

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

    де УФ - фактичні значення низки динаміки; Ур - розрахункові (згладжені) значення низки динаміки; n – число рівнів часового ряду; р - Число параметрів, що визначаються у формулах, що описують тренд (тенденцію розвитку).

    Недоліки методу найменших квадратів :

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

    Приклад застосування методу найменших квадратів для розробки прогнозу

    Завдання . Є дані, що характеризують рівень безробіття у регіоні, %

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

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

    Для вирішення складемо таблицю, в якій будемо проводити необхідні розрахунки:

    ε = 28,63/10 = 2,86% точність прогнозувисока.

    Висновок : Порівнюючи результати, отримані при розрахунках методом ковзної середньої , методом експоненційного згладжування і методом найменших квадратів, можна сказати, що відносна середня помилка при розрахунках методом експоненційного згладжування потрапляє в межі 20-50%. Це означає, що точність прогнозу у разі є лише задовільною.

    У першому та третьому випадку точність прогнозу є високою, оскільки середня відносна помилка менша за 10%. Але метод ковзних середніх дозволив отримати більш достовірні результати (прогноз на листопад – 1,52%, прогноз на грудень – 1,53%, прогноз на січень – 1,49%), оскільки середня відносна помилка під час використання цього найменша – 1 13%.

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

    Інші статті на цю тему:

    Список використаних джерел

    1. Науково-методичні рекомендації з питань діагностики соціальних ризиків та прогнозування викликів, загроз та соціальних наслідків. Російський національний соціальний університет. Москва. 2010;
    2. Володимирова Л.П. Прогнозування та планування в умовах ринку: Навч. допомога. М: Видавничий Дім «Дашков і Ко», 2001;
    3. Новікова Н.В., Поздєєва О.Г. Прогнозування національної економіки: Навчально-методичний посібник. Єкатеринбург: Вид-во Урал. держ. екон. ун-ту, 2007;
    4. Слуцкін Л.М. Курс МБА з прогнозування у бізнесі. М: Альпіна Бізнес Букс, 2006.

    Програма МНК

    Введіть дані

    Дані та апроксимація y = a + b x

    i- Номер експериментальної точки;
    x i- значення фіксованого параметра у точці i;
    y i- значення параметра, що вимірюється в точці i;
    ω i- вага виміру в точці i;
    y i, розрах.- різниця між виміряним та обчисленим за регресією значенням yу точці i;
    S x i (x i)- Оцінка похибки x iпри вимірі yу точці i.

    Дані та апроксимація y = k x

    i x i y i ω i y i, розрах. Δy i S x i (x i)

    Клацніть за графіком,

    Інструкція користувача онлайн-програми МНК.

    У полі даних введіть на кожному окремому рядку значення `x` та `y` в одній експериментальній точці. Значення повинні відокремлюватися символом пробілу (пробілом або знаком табуляції).

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

    Дані можна вставити через буфер обміну з електронної таблиці офісних пакетів, наприклад Excel з Microsoft Офісу або Calc з Оупен Офісу. Для цього в електронній таблиці виділіть діапазон даних, що копіюються, скопіюйте в буфер обміну і вставте дані в поле даних на цій сторінці.

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

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

    Метод найменших квадратів (МНК).

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

    Отримання значень у кожній експериментальній точці часто пов'язане зі значними трудовитратами, тому часто проводять компромісне число експериментів, які дає зручну оцінку і не призведе до надмірних витрат праці. Як правило, кількість експериментів точок для лінійної МНК залежності з двома коефіцієнтами вибирає в районі 5-7 точок.

    Коротка теорія методу найменших квадратів для лінійної залежності

    Допустимо у нас є набір експериментальних даних у вигляді пар значень [`y_i`, `x_i`], де `i` - номер одного експериментального виміру від 1 до `n`; `y_i` - значення виміряної величини в точці `i`; `x_i` - значення параметра, що задається в точці `i`.

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

    `I = U/R`,
    де `I` - сила струму; `R` - опір; `U` - напруга.

    У цьому випадку `y_i` у нас вимірювана величина струму, а `x_i` - значення напруги.

    Як інший приклад розглянемо поглинання світла розчином речовини у розчині. Хімія дає нам формулу:

    `A = ε l C`,
    де `A` - оптична щільність розчину; `ε` - коефіцієнт пропускання розчиненої речовини; `l` – довжина шляху при проходженні світла через кювету з розчином; `C` - концентрація розчиненої речовини.

    У цьому випадку `y_i` у нас вимірювана величина відптичної щільності `A`, а `x_i` - значення концентрації речовини, яку ми задаємо.

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

    У разі лінійної залежності `y` від `x`, ми можемо написати теоретичну залежність:
    `y = a + b x`.

    З геометричної точки зору, коефіцієнт `b` позначає тангенс кута нахилу лінії до осі `x`, а коефіцієнт `a` - значення `y` у точці перетину лінії з віссю `y` (при `x = 0`).

    Знаходження параметрів лінії регресії.

    В експерименті виміряні значення `y_i` не можуть точно лягти на теоретичну пряму через помилки виміру, що завжди притаманні реальному життю. Тому лінійне рівняння потрібно представити системою рівнянь:
    `y_i = a + b x_i + ε_i` (1),
    де `ε_i` - невідома помилка вимірювання `y` в `i`-ому експерименті.

    Залежність (1) також називають регресією, тобто. залежністю двох величин одна від одної зі статистичною значимістю.

    Завданням відновлення залежності є знаходження коефіцієнтів `a` та `b` по експериментальних точках [`y_i`, `x_i`].

    Для знаходження коефіцієнтів `a` та `b` зазвичай використовується метод найменших квадратів(МНК). Він є окремим випадком принципу максимальної правдоподібності.

    Перепишемо (1) у вигляді `ε_i = y_i - a - b x_i`.

    Тоді сума квадратів помилок буде
    `Φ = sum_(i=1)^(n) ε_i^2 = sum_(i=1)^(n) (y_i - a - b x_i)^2`. (2)

    Принципом МНК (методу найменших квадратів) є мінімізація суми (2) щодо параметрів `a` та `b`.

    Мінімум досягається, коли приватні похідні від суми (2) за коефіцієнтами `a` та `b` дорівнюють нулю:
    `frac(partial Φ)(partial a) = frac(partial sum_(i=1)^(n) (y_i - a - b x_i)^2)(partial a) = 0`
    `frac(partial Φ)(partial b) = frac(partial sum_(i=1)^(n) (y_i - a - b x_i)^2)(partial b) = 0`

    Розкриваючи похідні, отримуємо систему із двох рівнянь із двома невідомими:
    `sum_(i=1)^(n) (2a + 2bx_i - 2y_i) = sum_(i=1)^(n) (a + bx_i - y_i) = 0`
    `sum_(i=1)^(n) (2bx_i^2 + 2ax_i - 2x_iy_i) = sum_(i=1)^(n) (bx_i^2 + ax_i - x_iy_i) = 0`

    Розкриваємо дужки та переносимо незалежні від шуканих коефіцієнтів суми в іншу половину, отримаємо систему лінійних рівнянь:
    `sum_(i=1)^(n) y_i = a n + b sum_(i=1)^(n) bx_i`
    `sum_(i=1)^(n) x_iy_i = a sum_(i=1)^(n) x_i + b sum_(i=1)^(n) x_i^2`

    Вирішуючи, отриману систему, знаходимо формули для коефіцієнтів `a` та `b`:

    a = frac(sum_(i=1)^(n) y_i sum_(i=1)^(n) x_i^2 — sum_(i=1)^(n) x_i sum_(i=1)^(n ) x_iy_i) (n sum_(i=1)^(n) x_i^2 — (sum_(i=1)^(n) x_i)^2)` (3.1)

    b = frac(n sum_(i=1)^(n) x_iy_i — sum_(i=1)^(n) x_i sum_(i=1)^(n) y_i) (n sum_(i=1)^ (n) x_i^2 - (sum_(i=1)^(n) x_i)^2)` (3.2)

    Ці формули мають рішення, коли `n > 1` (лінію можна побудувати не менш ніж за 2-ма точками) і коли детермінант `D = n sum_(i=1)^(n) x_i^2 - (sum_(i= 1) ^ (n) x_i) ^ 2! = 0 `, тобто. коли точки `x_i` в експерименті розрізняються (тобто коли лінія не вертикальна).

    Оцінка похибок коефіцієнтів лінії регресії

    Для більш точної оцінки похибки обчислення коефіцієнтів `a` та `b` бажано велика кількість експериментальних точок. При `n = 2` оцінити похибку коефіцієнтів неможливо, т.к. апроксимуюча лінія однозначно проходитиме через дві точки.

    Похибка випадкової величини `V` визначається законом накопичення помилок
    `S_V^2 = sum_(i=1)^p (frac(partial f)(partial z_i))^2 S_(z_i)^2`,
    де `p` - число параметрів `z_i` з похибкою `S_(z_i)`, які впливають на похибку `S_V`;
    `f` - функція залежності `V` від `z_i`.

    Розпишемо закон накопичення помилок для похибки коефіцієнтів `a` та `b`
    `S_a^2 = sum_(i=1)^(n)(frac(partial a)(partial y_i))^2 S_(y_i)^2 + sum_(i=1)^(n)(frac(partial a )(partial x_i))^2 S_(x_i)^2 = S_y^2 sum_(i=1)^(n)(frac(partial a)(partial y_i))^2`,
    `S_b^2 = sum_(i=1)^(n)(frac(partial b)(partial y_i))^2 S_(y_i)^2 + sum_(i=1)^(n)(frac(partial b) )(partial x_i))^2 S_(x_i)^2 = S_y^2 sum_(i=1)^(n)(frac(partial b)(partial y_i))^2 `,
    т.к. `S_(x_i)^2 = 0` (ми раніше зробили застереження, що похибка `x` зневажливо мала).

    `S_y^2 = S_(y_i)^2` - похибка (дисперсія, квадрат стандартного відхилення) у вимірі `y` у припущенні, що похибка однорідна для всіх значень `y`.

    Підставляючи в отримані вирази формули для розрахунку `a` та `b` отримаємо

    `S_a^2 = S_y^2 frac(sum_(i=1)^(n) (sum_(i=1)^(n) x_i^2 — x_i sum_(i=1)^(n) x_i)^2 ) (D^2) = S_y^2 frac((n sum_(i=1)^(n) x_i^2 — (sum_(i=1)^(n) x_i)^2) sum_(i=1) ^(n) x_i^2) (D^2) = S_y^2 frac(sum_(i=1)^(n) x_i^2) (D)` (4.1)

    `S_b^2 = S_y^2 frac(sum_(i=1)^(n) (n x_i - sum_(i=1)^(n) x_i)^2) (D^2) = S_y^2 frac( n (n sum_(i=1)^(n) x_i^2 — (sum_(i=1)^(n) x_i)^2)) (D^2) = S_y^2 frac(n) (D) `(4.2)

    У більшості реальних експериментів значення Sy не вимірюється. Для цього потрібно проводити кілька паралельних вимірів (дослідів) в одній або кількох точках плану, що збільшує час (і, можливо, вартість) експерименту. Тому зазвичай вважають, що відхилення 'y' від лінії регресії вважатимуться випадковим. Оцінку дисперсії `y` у цьому випадку вважають за формулою.

    `S_y^2 = S_(y, ост)^2 = frac(sum_(i=1)^n (y_i - a - b x_i)^2) (n-2)`.

    Дільник `n-2` з'являється тому, що у нас знизилося число ступенів свободи через розрахунок двох коефіцієнтів з цієї ж вибірки експериментальних даних.

    Таку оцінку ще називають залишковою дисперсією щодо лінії регресії `S_(y, ост)^2`.

    Оцінка значущості коефіцієнтів проводиться за критерієм Стьюдента

    `t_a = frac(|a|) (S_a)`, `t_b = frac(|b|) (S_b)`

    Якщо розраховані критерії `t_a`, `t_b` менше табличних критеріїв `t(P, n-2)`, то вважається, що відповідний коефіцієнт незначно відрізняється від нуля із заданою ймовірністю `P`.

    Для оцінки якості опису лінійної залежності, можна порівняти `S_(y, ост)^2` та `S_(bar y)` щодо середнього з використанням критерію Фішера.

    `S_(bar y) = frac(sum_(i=1)^n (y_i - bar y)^2) (n-1) = frac(sum_(i=1)^n (y_i - (sum_(i=) 1)^n y_i) /n)^2) (n-1)` - вибіркова оцінка дисперсії `y` щодо середнього.

    Для оцінки ефективності рівняння регресії для опису залежності розраховують коефіцієнт Фішера
    `F = S_(bar y) / S_(y, ост)^2`,
    який порівнюють з табличним коефіцієнтом Фішера `F(p, n-1, n-2)`.

    Якщо `F > F(P, n-1, n-2)`, вважається статистично значущим з ймовірністю `P` різницю між описом залежності `y = f(x)` за допомогою урівняння регресії та описом за допомогою середнього. Тобто. регресія краще описує залежність, ніж розкид `y` щодо середнього.

    Клацніть за графіком,
    щоб додати значення до таблиці

    Метод найменших квадратів. Під методом найменших квадратів розуміється визначення невідомих параметрів a, b, c, прийнятої функціональної залежності

    Під методом найменших квадратів розуміється визначення невідомих параметрів a, b, c,…прийнятої функціональної залежності

    y = f(x, a, b, c, …),

    які б забезпечували мінімум середнього квадрата (дисперсії) помилки

    , (24)

    де x i, y i - Сукупність пар чисел, отриманих з експерименту.

    Оскільки умовою екстремуму функції кількох змінних є умова рівності нулю її похідних, то параметри a, b, c,…визначаються із системи рівнянь:

    ; ; ; … (25)

    Необхідно пам'ятати, що метод найменших квадратів застосовується для вибору параметрів після того, як вид функції y = f(x)визначено.

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

    Насправді найчастіше обмежуються такими видами функций:

    1) лінійна ;

    2) квадратична a.

    Схожі статті

    2022 parki48.ru. Будуємо каркасний будинок. Ландшафтний дизайн. Будівництво. Фундамент.