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


МНК на примере линейной и квадратичной функций

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

    \[\sum {{{({y_i} - {{\tilde y}_{{x_i}}})}^2} \to \min } \]

Иными словами, из всего множества линий, линия регрессии на графике выбирается так, чтобы сумма квадратов расстояний по вертикали между точками и этой линией была бы минимальной: 

    \[{\varepsilon _i} = {y_i} - {\tilde y_{{x_i}}}\]

следовательно 

    \[\sum {\varepsilon _i^2 \to \min } \]

Целью процедур линейной регрессии является подгонка прямой линии по точкам. А именно, построить линию регрессии так, чтобы минимизировать квадраты отклонений этой линии от наблюдаемых точек. Поэтому на эту общую процедуру иногда ссылаются как на оценивание по методу наименьших квадратов. Прямая линия на плоскости (в пространстве двух измерений) задается уравнением Y=ax+b 

Пример решения системы уравнений для прямой и параболы 2-го порядка:

(под спойлером)

МНК для линейной функции

Линейная функция

Зная зависимость между величинами, представленными в таблице и полученные опытным путем, необходимо составить математическую зависимость (функциональную зависимость). Воспользуемся методом наименьших квадратов. Пусть опытные данные, близкие к линейной функции,  записаны в таблицу вида:

 X x1 x2 x3 xn
 Y y1 y2 y3 yn

Подбираем y=ax+b таким образом, чтобы сумма квадратов отклонений была наименьшей. Чтобы найти минимум функции надо вычислить частные производные по каждому из параметров а и b и приравнять их к нулю. 

    \[\sum {{{({y_i} - {{\tilde y}_{{x_i}}})}^2} \to \min } \]

 Обозначим сумму квадратов отклонений (Σεi2через S, тогда:

    \[S = {(\overline {{y_{_1}}}  - {y_{_1}})^{^2}} + {(\overline {{y_{_2}}}  - {y_{_2}})^{^2}} +  \ldots  + {(\overline {{y_{_n}}}  - {y_{_n}})^{^2}}\]

    \[S = {(a{x_{_1}} + b - {y_{_1}})^{^2}} + {(a{x_{_2}} + b - {y_{_2}})^{^2}} +  \ldots  + {(a{x_{_n}} + b - {y_{_n}})^{^2}}\]

    \[S = \sum\limits_{i = 1}^n {{{(a{x_i} + b - {y_i})}^2}} \]

S зависит от a и b, т.е. функция двух переменных принимает наименьшее значение в стандартной точке, которая находится из условия:

    \[\left\{ \begin{array}{l} {S'_a} = 0\\ {S'_b} = 0 \end{array} \right.\]

    \[{S'_a} = 2\sum\limits_{i = 1}^n {\left( {a{x_i} + b - {y_i}} \right) \cdot {x_i} = 2\left( {a\sum\limits_{i = 1}^n {x_i^2 + b\sum\limits_{i = 1}^n {{x_i} - \sum\limits_{i = 1}^n {{y_i} \cdot {x_i}} } } } \right)} \]

    \[{S'_b} = 2\sum\limits_{i = 1}^n {\left( {a{x_i} + b - {y_i}} \right) = 2\left( {a\sum\limits_{i = 1}^n {x_i^{} + bn - \sum\limits_{i = 1}^n {{y_i}} } } \right)} \]

 Приравняем каждую частную производную к нулю:

    \[\left\{ \begin{array}{l} a\sum\limits_{i = 1}^n {x_i^2 + b\sum\limits_{i = 1}^n {{x_i} - \sum\limits_{i = 1}^n {{y_i}{x_i}}  = 0} } \\ a\sum\limits_{i = 1}^n {{x_i}}  + bn - \sum\limits_{i = 1}^n {{y_i}}  = 0 \end{array} \right.\]

    \[\left\{ \begin{array}{l} a\sum\limits_{i = 1}^n {x_i^2} + b\sum\limits_{i = 1}^n {{x_i} = \sum\limits_{i = 1}^n {{y_i} \cdot {x_i}} } \\ a\sum\limits_{i = 1}^n {{x_i} + bn = \sum\limits_{i = 1}^n {{y_i}} } \end{array} \right.\]

Решение для прямой

Формула для расчета линейной функции y=ax+b

Опытные данные:

i

Yi

Xi

X2i

YiXi

1

-8

-2

4

16

2

7

-1

1

-7

3

7

0

0

0

4

5

2

4

10

5

5

3,5

12,25

17,5

6

3,5

4

16

14

7

3

5

25

15

8

2,5

6

36

15

9

2

7

49

14

10

1,5

7

49

10,5

Σ 

28,5

31,5

196,25

105

    \[\left\{ \begin{array}{l} a\sum\limits_{i = 1}^n {{x_i} + bn = \sum\limits_{i = 1}^n {{y_i}} } \\ a\sum\limits_{i = 1}^n {x_i^2} + b\sum\limits_{i = 1}^n {{x_i} = \sum\limits_{i = 1}^n {{y_i}{x_i}} } \end{array} \right.\]

    \[\left\{ \begin{array}{l} 31.5a + 10b = 28.5\\ 196,25a + 31.5b = 105 \end{array} \right.\]

Для решения системы линейных уравнений и определения параметров, воспользуемся методом Крамера.

    \[\Delta = \left| {\begin{array}{*{20}{c}} {10}&{31.5}\\ {31.5}&{196,25} \end{array}} \right| = 970.25\]

    \[\Delta a = \left| {\begin{array}{*{20}{c}} {10}&{28.5}\\ {31.5}&{105} \end{array}} \right| = 152.25\;\,\Delta b = \left| {\begin{array}{*{20}{c}} {28.5}&{31.5}\\ {105}&{196.25} \end{array}} \right| = 2285.625\]

    \[a = \frac{{152.25}}{{970.25}} = 0.1569\;\,b = \frac{{2285.625}}{{970.25}} = 2.3557\]

Уравнение прямой принимает следующий вид: y=0.1569X+2.3557

Всего один выброс (экстремальная точка с координатами -2; -8 на диаграмме рассеяния) может полностью изменить наклон регрессионной линии и, следовательно, вид зависимости между переменными. Такие выбросы могут исказить оценки модели, сдвигая линию регрессии в определенном направлении и, тем самым, вызывая смещение коэффициентов регрессии.  На случай появления выбросов, должны быть предусмотрены корректировки, основанные на использовании “принципов статистического контроля”, т. е. значения, выходящие за определенный диапазон, который определяется в терминах, кратных сигма, т.е. стандартных отклонений, могут быть преобразованы или вовсе пропущены, и только после этого должны вычисляться окончательные оценки параметров модели (уравнения) регрессии. 

МНК для квадратичной функции

Квадратичная функция (парабола второго порядка) 

Рассмотрим модель регрессии, которая нелинейна относительно включённых в модель независимых переменных Xi, но линейна по оцениваемым параметрам a, b, c. К таким моделям относятся полиномы второго и выше  порядков, а также гиперболическая функция.

Квадратичную функцию вида 

    \[y = a{x^2} + bx + c\]

подбираем таким образом, чтобы сумма квадратов отклонений была наименьшей. Чтобы найти минимум функции надо вычислить частные производные по каждому из параметров (а b c) и приравнять их к нулю. 

    \[\sum {{{({y_i} - {{\tilde y}_{{x_i}}})}^2} \to \min } \]

 

Обозначим сумму квадратов отклонений (Σεi2) через S, тогда сумма наименьших квадратов отклонений примет следующее выражение:

    \[S = {\sum\limits_{i = 1}^n {\left( {ax_i^2 + b{x_i} + c - {y_i}} \right)} ^2}\]

Функция трех переменных (a b c) принимает наименьшее значение в стандартной точке, которая находится из условия:

    \[\left\{ {\begin{array}{*{20}{c}} {{{S'}_a} = 0}\\ {{{S'}_b} = 0}\\ {{{S'}_c} = 0} \end{array}} \right.\]

    \[\begin{array}{l} {{S'}_c} = 2\sum\limits_{i = 1}^n {\left( {a{x_i}^2 + b \cdot x{}_i + c - {y_i}} \right) = } \\ = 2\left( {a\sum\limits_{i = 1}^n {x_i^2 + b\sum\limits_{i = 1}^n {{x_i} + cn} - \sum\limits_{i = 1}^n {{y_i}} } } \right)\\ {{S'}_b} = 2\sum\limits_{i = 1}^n {\left( {a{x_i}^2 + b{x_i} + c - {y_i}} \right) \cdot {x_i} = } \\ = 2\left( {a\sum\limits_{i = 1}^n {x_i^3 + b\sum\limits_{i = 1}^n {x_i^2} + c\sum\limits_{i = 1}^n {{x_i}} - \sum\limits_{i = 1}^n {{y_i} \cdot {x_i}} } } \right)\\ {{S'}_a} = 2\sum\limits_{i = 1}^n {\left( {a{x_i}^2 + b{x_i} + c - {y_i}} \right) \cdot {x_i}^2 = } \\ = 2\left( {a\sum\limits_{i = 1}^n {x_i^4 + b\sum\limits_{i = 1}^n {{x_i}^3 + c\sum\limits_{i = 1}^n {x_i^2} - \sum\limits_{i = 1}^n {{y_i} \cdot {x_i}^2} } } } \right) \end{array}\]

 Приравняем каждую частную производную к нулю:

    \[\left\{ {\begin{array}{*{20}{c}} {a\sum\limits_{i = 1}^n {x_i^2 + b\sum\limits_{i = 1}^n {{x_i} + cn - \sum\limits_{i = 1}^n {{y_i} = 0} } } }\\ {a\sum\limits_{i = 1}^n {x_i^3 + b\sum\limits_{i = 1}^n {x_i^2 + c\sum\limits_{i = 1}^n {{x_i} - \sum\limits_{i = 1}^n {{y_i} \cdot {x_i} = 0} } } } }\\ {a\sum\limits_{i = 1}^n {x_i^4 + b\sum\limits_{i = 1}^n {x_i^3 + c\sum\limits_{i = 1}^n {x_i^2 - \sum\limits_{i = 1}^n {y_i \cdot {x_i^2} = 0} } } } } \end{array}} \right.\]

    \[\left\{ \begin{array}{l} \begin{array}{*{20}{c}} {a\sum\limits_{i = 1}^n {x_i^2 + b\sum\limits_{i = 1}^n {{x_i} + cn = \sum\limits_{i = 1}^n {{y_i}} } } }\\ {a\sum\limits_{i = 1}^n {x_i^3 + b\sum\limits_{i = 1}^n {x_i^2 + c\sum\limits_{i = 1}^n {{x_i} = \sum\limits_{i = 1}^n {{y_i} \cdot {x_i}} } } } }\\ {a\sum\limits_{i = 1}^n {x_i^4 + b\sum\limits_{i = 1}^n {x_i^3 + c\sum\limits_{i = 1}^n {x_i^2 = \sum\limits_{i = 1}^n {y_i \cdot {x_i^2}} } } } } \end{array}\\ \end{array} \right.\]

Решение для параболы

Формула для расчета квадратичной функции y = ax2 + bx + c

Опытные данные:

i

Yi

Xi

Xi2

Xi3

Xi4

YiXi

YiXi2

1

4,3

-1

1

-1

1

-4,3

4,30

2

3

-0,8

0,64

-0,512

0,4096

-2,4

1,92

3

2

0

0

0

0

0

0

4

1,5

0,5

0,25

0,125

0,0625

0,75

0,375

5

1

1

1

1

1

1

1

6

0,8

1,8

3,24

5,832

10,4976

1,44

2,592

7

2,5

2

4

8

16

5

10

8

2,7

2,5

6,25

15,625

39,0625

6,75

16,875

9

3,5

2,6

6,76

17,576

45,6976

9,1

23,66

10

4,2

3,3

10,89

35,937

118,5921

13,86

45,738

∑ 

25,5

11,9

34,03

82,583

232,3219

31,2

106,46

    \[\left\{ \begin{array}{l} 25.5 = 10c + 11.9b + 34.03a\\ 31.2 = 11.9c + 34.03b + 82.583a\\ 106.46 = 34.03c + 82.583b + 232.3219c \end{array} \right.\]

Для решения системы линейных уравнений и определения параметров, воспользуемся методом Крамера.

    \[\begin{array}{l} \Delta = \;\;\,\left| {\begin{array}{*{20}{c}} {10}&{11.9}&{34,03}\\ {11.9}&{34.03}&{82.583}\\ {34,03}&{82.583}&{232.3219} \end{array}} \right| = 5437.515\;\;\\ \Delta a = \;\left| {\begin{array}{*{20}{c}} {10}&{11.9}&{25.5}\\ {11.9}&{34,03}&{31.2}\\ {34.03}&{82.583}&{106.46} \end{array}} \right| = 3551.068\;\\ \Delta b = \left| {\begin{array}{*{20}{c}} {10}&{25.5}&{34,03}\\ {11.9}&{31,2}&{82.583}\\ {34,03}&{106.46}&{232.3219} \end{array}} \right| = - 7288.03\;\;\\ \Delta c = \left| {\begin{array}{*{20}{c}} {25.5}&{11.9}&{34.03}\\ {31.2}&{34,03}&{82.583}\\ {106.46}&{82.583}&{232.3219} \end{array}} \right| = 10454.13 \end{array}\]

    \[a = \frac{{3551.068}}{{5437.515}} = 0.6531\;\;b = \frac{{ - 7288.03}}{{5437.515}} =  - 1.3403\;\;c = \frac{{10454.13}}{{5437.515}} = 1.9226\]

Уравнение параболы 2-го порядка принимает следующий вид:

y=0.6531x2-1.3403x+1.9226

По предварительному анализу для данной модели (уравнения регрессии) выполняются первая и вторая предпосылки МНК: остатки распределены случайно, средняя величина случайного отклонения εi (остатков) для всех наблюдений равна нулю (-6,66134E-17 т.е. с точностью до 17 знака после запятой)

Решение системы линейных алгебраических уравнений (СЛАУ) и вычисление определителя матрицы в MS Excel решается с помощью  матричных функций.

Смотри также: