Spec-Zone.ru › Octave 9

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

Оценка матрицы b методом OLS. beta вычисляется напрямую с помощью inv (x'*x) * x' * y, если матрица x'*x имеет полный ранг. В противном случае beta = pinv (x) * y, где pinv (x) обозначает псевдообратную матрицу x.

sigma

Оценка матрицы s методом OLS,

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

Оценка матрицы b методом GLS.

v

Оценка скаляра s^2 методом GLS.

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.

Источник: 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 выводит список всех допустимых параметров оптимизации.

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

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

Если первый входной аргумент — существующая структура параметров old, значения обновляются либо из списка par/val, либо из структуры параметров new.

Если par не совпадает в точности с именем стандартного параметра, optimset попытается сопоставить par со стандартным параметром и установить его значение, если соответствие будет найдено. Сопоставление нечувствительно к регистру и выполняется по совпадению символов в начале имени параметра. optimset выдаёт ошибку, если обнаруживает несколько неоднозначных соответствий. Если соответствий стандартным параметрам не найдено, выдаётся предупреждение и создаётся нестандартный параметр.

Стандартный список допустимых параметров:

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

Пользователь или другие загруженные пакеты Octave могут расширить этот список. Обновлённый список допустимых параметров можно получить, вызвав optimset без аргументов.

Примечание 1: При сопоставлении кратких имён параметров учитываются только имена из стандартного списка, и par всегда будет дополнен до имени стандартного параметра, даже если существует точное совпадение с нестандартным именем. Значение нестандартного параметра, неоднозначного с одним или несколькими стандартными параметрами, нельзя задать с помощью optimset; его можно задать только с помощью setfield или используя точечную нотацию для структур.

Примечание 2: Структура параметров оптимизации предназначена главным образом для работы с известными параметрами с помощью optimset и optimget. Создание нестандартных или неоднозначных параметров, а также загрузка или выгрузка пакетов, изменяющих список известных параметров после создания структуры параметров оптимизации, может привести к непредсказуемому поведению при последующих вызовах optimset или optimget.

См. также: optimget.

: val = optimget (options, par)
: val = optimget (options, par, default)

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

Если par не определён, возвращается значение default, если оно задано; в противном случае возвращается пустая матрица.

Если par не совпадает в точности с именем стандартного параметра, optimget попытается сопоставить par со стандартным параметром и вернуть значение этого параметра, если соответствие будет найдено. Сопоставление нечувствительно к регистру и выполняется по совпадению символов в начале имени параметра. optimget выдаёт ошибку, если обнаруживает несколько неоднозначных соответствий. Если соответствий стандартным параметрам не найдено, выдаётся предупреждение. Сведения о стандартном списке параметров см. в optimset.

Примечание: При сопоставлении кратких имён параметров учитываются только имена из стандартного списка, и par всегда будет дополнен до имени стандартного параметра, даже если существует точное совпадение с нестандартным именем. Значение нестандартного параметра, неоднозначного с одним или несколькими стандартными параметрами, нельзя получить с помощью optimget; к нему можно обратиться только с помощью getfield или используя точечную нотацию для структур.

См. также: optimset.

© 1996–2026 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/v9.4.0/Linear-Least-Squares.html

Spec-Zone.ru

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