Spec-Zone.ru › Octave 8

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-мерного распределения с нулевым средним и ковариационной матрицей S размером p×p, постоянными при условии 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

Множители Лагранжа. Если они отличны от нуля, соответствующие значения x должны быть нулевыми, что указывает на то, что решение прижато к координатной плоскости. Величина указывает, насколько улучшится остаток, если ограничения x >= 0 будут ослаблены в этом направлении.

См. также: 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.

Ссылка: Голуб и Ван Лоан (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 выводит список всех допустимых параметров оптимизации.

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

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

Если первый вход — существующая структура параметров 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.

: optval = optimget (options, optname) ¶
: optval = optimget (options, optname, default) ¶

Возвращает конкретный параметр optname из структуры параметров оптимизации options, созданной optimset.

Если optname не определен, возвращается default (если указан), в противном случае пустая матрица.

См. также: optimset.

© 1996–2023 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/v8.1.0/Linear-Least-Squares.html

Spec-Zone.ru

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