25.4 Линейные наименьшие квадраты
Octave также поддерживает минимизацию линейных наименьших квадратов. То есть, Octave может найти параметр b, такой что модель y = x*b подходит к данным (x,y) наилучшим образом, предполагая шум с нулевым средним и гауссовой распределением. Если шум считается изотропным, проблему можно решить, используя операторы ‘\’ или ‘/’, или функцию ols. В общем случае, когда шум считается анизотропным, нужна функция gls.
- : [beta, sigma, r] = ols (y, x) ¶
-
Оценки методом наименьших квадратов (OLS).
OLS применяется к многомерной модели y = x*b + e, где y — матрица t×p, x — матрица t×k, b — матрица k×p, а e — матрица t×p.
Каждая строка y представляет p-мерную наблюдение, где каждый столбец представляет переменную. Аналогично, строки x представляют k-мерные наблюдения или возможные заданные значения. Кроме того, набор наблюдений x должен иметь достаточный ранг k, в противном случае b нельзя оценить однозначно.
Предполагается, что ошибки наблюдений e происходят из p-мерного распределения с нулевым средним и p×p матрицей ковариации S, которая является постоянной при условии x. Более того, матрица S постоянна относительно каждого наблюдения, таким образом,
mean (e) = 0иcov (vec (e)) = kron (s, I). (Для случаев, которые не соответствуют этому критерию, например, автокоррелированные ошибки, см. обобщённые наименьшие квадраты, gls, для более эффективных оценок.)Значения возврата beta, sigma и r определяются следующим образом.
- beta
-
Оценщик OLS для матрицы b. beta вычисляется напрямую через
inv (x'*x) * x' * yесли матрицаx'*xимеет полный ранг. В противном случае,beta = pinv (x) * y, гдеpinv (x)обозначает псевдообратную матрицу x. - sigma
-
Оценщик OLS для матрицы s,
sigma = (y-x*beta)' * (y-x*beta) / (t-rank(x))
- r
Матрица остатков OLS,
r = y - x*beta.
- : [beta, v, r] = gls (y, x, o) ¶
-
Обобщённые наименьшие квадраты (GLS) модель.
Выполните оценку обобщённых наименьших квадратов для многомерной модели y = x*B + E, где y — матрица t×p, x — матрица t×k, b — матрица k×p, а e — матрица t×p.
Каждая строка y представляет p-мерную наблюдение, где каждый столбец представляет переменную. Аналогично, строки x представляют k-мерные наблюдения или возможные заданные значения. Кроме того, набор наблюдений x должен иметь достаточный ранг k, в противном случае b нельзя оценить однозначно.
Предполагается, что ошибки наблюдений e происходят из p-мерного распределения с нулевым средним, но, возможно, с гетероскедастичными наблюдениями. То есть, в общем случае,
mean (e) = 0иcov (vec (e)) = (s^2)*o, где s — скаляр, а o — матрица t*p×t*p.Значения возврата beta, v и r определяются следующим образом.
- beta
-
Оценщик GLS для матрицы b.
- v
-
Оценщик GLS для скаляра s^2.
- r
Матрица остатков GLS, r = y - x*beta.
См. также: ols.
- : x = lsqnonneg (c, d) ¶
- : x = lsqnonneg (c, d, x0) ¶
- : x = lsqnonneg (c, d, x0, options) ¶
- : [x, resnorm] = lsqnonneg (…) ¶
- : [x, resnorm, residual] = lsqnonneg (…) ¶
- : [x, resnorm, residual, exitflag] = lsqnonneg (…) ¶
- : [x, resnorm, residual, exitflag, output] = lsqnonneg (…) ¶
- : [x, resnorm, residual, exitflag, output, lambda] = lsqnonneg (…) ¶
-
Минимизировать
norm (c*x - d)при условииx >= 0.c и d должны быть вещественными матрицами.
x0 — необязательное начальное приближение для решения x.
options — структура параметров для изменения поведения алгоритма (см.
optimset).lsqnonnegраспознает эти параметры:"MaxIter","TolX".Выходы:
- resnorm
-
Квадрат 2-нормы остатка:
norm (c*x-d)^2 - residual
-
Остаток:
d-c*x - exitflag
-
Индикатор сходимости. 0 указывает на превышение количества итераций, следовательно, сходимость не достигнута; >0 указывает на то, что алгоритм сошёлся. (Алгоритм стабилен и сойдётся при достаточном количестве итераций.)
- output
-
Структура с двумя полями:
-
"algorithm": Используемый алгоритм ("nnls") -
"iterations": Количество итераций.
-
- lambda
Недокументированный выход
- : x = lscov (A, b) ¶
- : x = lscov (A, b, V) ¶
- : x = lscov (A, b, V, alg) ¶
- : [x, stdx, mse, S] = lscov (…) ¶
-
Вычисление обобщённой линейной аппроксимации наименьших квадратов.
Оценка x по модели b = Ax + w, где шум w предполагается имеющим нормальное распределение с матрицей ковариации {\sigma^2} V.
Если размер матрицы коэффициентов A равен n-by-p, размер вектора/массива константных слагаемых b должен быть n-by-k.
Необязательный входной параметр V может быть n-элементным вектором положительных весов (обратные дисперсии) или n-by-n симметрической положительно полуопределённой матрицей, представляющей ковариацию b. Если V не задан, возвращается решение обычных наименьших квадратов.
Входной параметр alg, определяющий способ решения, в настоящее время игнорируется.
Помимо матрицы оценок наименьших квадратов x (p-by-k), функция также возвращает stdx (p-by-k), стандартное отклонение ошибки оценки x; mse (k-by-1), оцениваемые масштабные факторы ковариации ошибок данных (\sigma^2); и S (p-by-p или p-by-p-by-k, если k > 1), ковариацию ошибок x.
Ссылка: Голуб и Ван Лоан (1996), Матричные вычисления (3-е изд.), Johns Hopkins, раздел 5.6.3
- : optimset () ¶
- : options = optimset () ¶
- : options = optimset (par, val, …) ¶
- : options = optimset (old, par, val, …) ¶
- : options = optimset (old, new) ¶
-
Создание структуры параметров для функций оптимизации.
При вызове без входных или выходных аргументов,
optimsetвыводит список всех допустимых параметров оптимизации.При вызове с одним выходным и без входных аргументов, возвращает структуру параметров с инициализированными всеми допустимыми параметрами по значениям
[].При вызове со списком пар «параметр/значение», возвращает структуру параметров с инициализированными только указанными параметрами.
Если первый входной параметр — существующая структура параметров old, значения обновляются либо из списка par/val, либо из структуры параметров new.
Допустимые параметры:
- AutoScaling
- ComplexEqn
- Display
-
Запрос подробного отображения результатов оптимизации. Значения:
"off"[по умолчанию]-
Отсутствует отображение.
"iter"-
Отображение промежуточных результатов для каждой итерации цикла.
"final"-
Отображение результата последней итерации цикла.
"notify"Отображение результата последней итерации цикла, если функция не сошлась.
- FinDiffType
- FunValCheck
-
При включенном параметре, отображается ошибка, если целевая функция возвращает недопустимое значение (комплексное число, NaN или Inf). Должен быть установлен в
"on"или"off"[по умолчанию]. Примечание: функцииfzeroиfminbndкорректно обрабатывают значения Inf, и только комплексные значения или NaN вызовут ошибку в этом случае. - GradObj
-
При установке в
"on", функция минимизации должна возвращать второй аргумент, который представляет собой градиент, или первую производную, функции в точке x. Если установлен в"off"[по умолчанию], градиент вычисляется с помощью конечных разностей. - Jacobian
-
При установке в
"on", функция минимизации должна возвращать второй аргумент, который представляет собой якобиан, или первую производную, функции в точке x. Если установлен в"off"[по умолчанию], якобиан вычисляется с помощью конечных разностей. - MaxFunEvals
-
Максимальное количество вычислений целевой функции до остановки оптимизации. Должно быть положительным целым числом.
- MaxIter
-
Максимальное количество итераций алгоритма до остановки оптимизации. Должно быть положительным целым числом.
- OutputFcn
-
Определяемая пользователем функция, выполняемая один раз за итерацию алгоритма.
- TolFun
-
Критерий остановки по значению целевой функции. Если разница в значении целевой функции между одной итерацией алгоритма и следующей меньше
TolFun, оптимизация останавливается. Должно быть положительным скаляром. - TolX
-
Критерий остановки по значению входного параметра. Если разница в значении x, текущей точки поиска, между одной итерацией алгоритма и следующей меньше
TolX, оптимизация останавливается. Должно быть положительным скаляром. - TypicalX
- Updating
См. также: optimget.
- : optimget (options, parname) ¶
- : optimget (options, parname, default) ¶
-
Возвращает конкретный параметр parname из структуры параметров оптимизации options, созданной с помощью
optimset.Если parname не определён, возвращает default (если задано), в противном случае — пустую матрицу.
См. также: optimset.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v7.2.0/Linear-Least-Squares.html