Spec-Zone.ru › Octave 6

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), Matrix Computations (3rd Ed.), Johns Hopkins, Раздел 5.6.3

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

END_OF_DOCUMENT_MARKER
: 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/v6.4.0/Linear-Least-Squares.html

Spec-Zone.ru

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