Spec-Zone.ru › Octave 5

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.

См. также: gls, pinv.

[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

Недокументированный выход

См. также: pqpnonneg, lscov, optimset.

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×p, размер вектора/массива констант b должен быть n×k.

Необязательный входной аргумент V может быть вектором из n положительных весов (обратные дисперсии) или симметричной положительно полуопределённой матрицей размером n×n, представляющей ковариацию b. Если V не указан, возвращается решение обычных наименьших квадратов.

Входной аргумент alg, задающий рекомендации по методу решения, в настоящее время игнорируется.

Помимо оценки наименьших квадратов x (p×k), функция также возвращает stdx (p×k), стандартное отклонение ошибки оценённого x; mse (k×1), оцененные факторы масштаба ковариации ошибки данных (\sigma^2); и S (p×p, или p×p×k, если k > 1), ковариация ошибки x.

Ссылка: Golub и Van Loan (1996), Матричные вычисления (3-е изд.), Johns Hopkins, Раздел 5.6.3

См. также: ols, gls, lsqnonneg.

optimset ()
options = optimset ()
options = optimset (par, val, …)
options = optimset (old, par, val, …)
options = optimset (old, new)

Создать структуру опций для функций оптимизации.

Если вызывается без входных или выходных аргументов, optimset выводит список всех допустимых параметров оптимизации.

При вызове с одним выходным параметром и без входных параметров возвращает структуру options со всеми допустимыми параметрами options, инициализированными значением [].

При вызове со списком пар параметр/значение возвращает структуру options только с инициализированными именованными параметрами.

При первом входе структура options old значения обновляются из списка par/val или из структуры options 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.

END_OF_DOCUMENT_MARKER
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/v5.2.0/Linear-Least-Squares.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API