Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Калькулятор использует метод наименьших квадратов для аппроксимации функции одной переменной. В случае ввода дополнительных условий используется метод множителей Лагранжа.

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

Используемый метод (метод множителей Лагранжа) накладывает ограничения на набор аппроксимирующих функций, так что этот калькулятор не поддерживает экспоненциальную аппроксимацию, аппроксимацию степенной функцией и показательную аппроксимацию. Одним словом поддерживается только линейная регрессия. Зато в него были добавлены аппроксимация полиномами 4-ой и 5-ой степени. Формулы и немного теории можно найти под калькулятором.

Если не ввести значения x, калькулятор будет считать, что значение x меняется начиная с 0 с шагом 1.

PLANETCALC, Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Ограничения на значения аппроксимирующей функции в точках

xy
Записей:

Знаков после запятой: 4
Квадратичная регрессия
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Кубическая регрессия
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Полином 4-ой степени
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Полином 5-ой степени
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Линейная регрессия
 
Коэффициент линейной парной корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Логарифмическая регрессия
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Гиперболическая регрессия
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Полином 6-ой степени
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Полином 7-ой степени
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Полином 8-ой степени
 
Коэффициент корреляции
 
Коэффициент детерминации
 
Средняя ошибка аппроксимации, %
 
Результат
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.

Метод наименьших квадратов для линейной регрессии

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

Подход, описанный по ссылке, можно обобщить для случая линейной комбинации параметров (для построения линейной регрессии).

Пусть у нас есть набор точек $(x_1,y_1), ..., (x_m,y_m)$.

Если аппроксимирующая функция является линейной комбинацией параметров, которые нужно определить, например
$y(x;a_1,a_2,a_3,a_4,a_5,a_6)=a_1+a_2x+a_3 \cdot ln(x) + ... + a_6x^{10}$, то набор значений аппроксимирующей функции в заданных точках можно описать следующим образом

\begin{bmatrix} \hat{y}_1 \\ ... \\ \hat{y}_m \end{bmatrix} = \begin{bmatrix} 1 & x_1 & ln(x_1) & ... & x_{1}^{10} \\ ... & ... & ... & ... & ... \\ 1 & x_m & ln(x_m) & ... & x_{m}^{10} \end{bmatrix} \begin{bmatrix} a_1 \\ ... \\ a_6 \end{bmatrix}

Или, в матричном виде:

\mathbf{\hat{y}=Xa}

При использовании метода наименьших квадратов нам надо найти набор параметров, минимизирующих функцию

f(\mathbf{a})=\sum_{i=1}^m[\hat{y}(x_i;\mathbf{a})-y_i]^2, или, в матричном виде

f(\mathbf{a})=|\mathbf{Xa-y}|^2

Значение этой функции есть расстояние от вектора y до вектора Xa. Для минимизации этого значения Xa должно быть проекцией на пространство столбцов матрицы X и вектор Xa-y должен быть ортогонален этому пространству (подробнее можно посмотреть здесь).

Это возможно при выполнении следующего равенства
(X\mathbf{v})^T(X{\mathbf{a}}-\mathbf{y})=\mathbf{v}^T(X^TX{\mathbf{a}}-X^T\mathbf{y})=0,

где v - произвольный вектор в пространстве столбцов. Так как этот вектор может быть любым, очевидно что равенство выполняется только в случае

X^TX{\mathbf{a}}-X^T\mathbf{y}=0, или

X^TX{\mathbf{a}}=X^T\mathbf{y}, откуда

\mathbf{a}=(X^TX)^{-1}X^T\mathbf{y}

Последняя формула и используется калькулятором выше для построения линейной регрессии без дополнительных ограничений.

Метод множителей Лагранжа

Теперь разберемся с построением линейной регрессии при наличии ограничений. Такими ограничениями могут быть ограничения на значение функции в заданных точках. Например, нам известно, что функция, которую мы аппроксимируем ДОЛЖНА проходить через ноль (точку с координатами 0;0). Также могут существовать ограничения на значения производной функции в некоторых точках (наклона кривой функции). Наличие дополнительных ограничений говорит о том, что нам надо искать условный экстремум, то есть экстремум (в нашем случае минимум) функции, достигнутый при условии что переменные функции удовлетворяют уравнению связи.

То есть, нам надо минимизировать функцию

f(\mathbf{a})=|\mathbf{Xa-y}|^2

при условии что

\begin{bmatrix} y_{c_1} \\ ... \\ y_{c_k} \end{bmatrix} = \begin{bmatrix} 1 & x_{c_1} & ln(x_{c_1}) & ... & x_{c_1}^{10} \\ ... & ... & ... & ... & ... \\ 1 & x_{c_k} & ln(x_{c_k}) & ... & x_{c_k}^{10} \end{bmatrix} \begin{bmatrix} a_1 \\ ... \\ a_6 \end{bmatrix}

Или, в матричном виде

\mathbf{b = Ca}

Для решения такой задачи используется метод множителей Лагранжа. В методе множителей Лагранжа осуществляют переход от функции f(a) к функции Лагранжа F(a,\lambda) через добавление множителей Лагранжа

F(a, \lambda)=f(a)+\lambda\varphi(a)

В нашем случае

F(a, \lambda)=|\mathbf{Xa-y}|^2+\lambda  (\mathbf{Ca - b})

Далее ищется экстремум данной функции. После всех вычислений, которые я здесь не привожу (их мало где приводят, да и я тоже мог бы написать что-нибудь вроде "очевидно, что" :) ), получается следующая формула для нахождения параметров, при которых функция достигает условного экстремума

\begin{bmatrix} a \\ \lambda \end{bmatrix} = \begin{bmatrix} 2X^TX & C^T \\ C & 0 \end{bmatrix}^{-1} \begin{bmatrix} 2X^Ty \\ b \end{bmatrix}

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

Ссылка скопирована в буфер обмена
PLANETCALC, Аппроксимация функции одной переменной методом наименьших квадратов с дополнительными условиями

Комментарии