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 定义如下。
矩阵 b 的 OLS 估计量。beta 直接通过 inv (x'*x) * x' * y 计算,前提是矩阵 x'*x 满秩。否则,beta = pinv (x) * y,其中 pinv (x) 表示 x 的伪逆。
矩阵 s 的 OLS 估计量,
sigma = (y-x*beta)' * (y-x*beta) / (t-rank(x))
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 定义如下。
矩阵 b 的 GLS 估计量。
标量 s^2 的 GLS 估计量。
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"。
输出:
残差的 2-范数平方:norm (c*x-d)^2
残差:d-c*x
收敛指示器。0 表示超过迭代次数,因此未能达到收敛;>0 表示算法已收敛。(该算法是稳定的,只要迭代次数足够就会收敛。)
包含两个字段的结构体:
"algorithm":使用的算法("nnls")"iterations":执行的迭代次数。拉格朗日乘子。如果这些值非零,则对应的 x 值应为零,表明解被压在了坐标平面上。其大小表示如果在那个方向上放宽 x >= 0 约束,残差将改善多少。
x = lscov (A, b) ¶x = lscov (A, b, V) ¶x = lscov (A, b, V, alg) ¶[x, stdx, mse, S] = lscov (…) ¶计算广义线性最小二乘拟合。
在模型 b = Ax + w 下估计 x,其中噪声 w 被假定服从具有协方差矩阵 {\sigma^2} V 的正态分布。
如果系数矩阵 A 的大小为 n×p,则常数项向量/数组 b 的大小必须为 n×k。
可选的输入参数 V 可以是一个 n 元正权重向量(逆方差),或一个表示 b 协方差的 n×n 对称半正定矩阵。如果未提供 V,则返回普通最小二乘解。
输入参数 alg 用于指示求解方法的选择,当前被忽略。
除了最小二乘估计矩阵 x(p×k)之外,该函数还返回 stdx(p×k),即估计 x 的标准误差;mse(k×1),即估计的数据误差协方差尺度因子(\sigma^2);以及 S(p×p,如果 k > 1 则为 p×p×k),即 x 的误差协方差。
参考文献:Golub and Van Loan, Matrix Computations (3rd Ed.), Johns Hopkins, Section 5.6.3, 1996.
() ¶options = optimset () ¶options = optimset (par, val, …) ¶options = optimset (old, par, val, …) ¶options = optimset (old, new) ¶创建优化函数的选项结构体。
当无输入或输出参数调用时,optimset 打印所有有效优化参数的列表。
当有一个输出参数且无输入参数调用时,返回一个所有有效选项参数均初始化为 [] 的选项结构体。
当使用参数/值对列表调用时,返回一个仅初始化了指定参数的选项结构体。
当第一个输入是现有的选项结构体 old 时,将从 par/val 列表或选项结构体 new 更新值。
如果 par 与标准参数的名称不完全匹配,optimset 将尝试将 par 匹配到一个标准参数,如果找到匹配项,则设置该参数的值。匹配不区分大小写,基于参数名称开头的字符进行匹配。如果找到多个不明确的匹配,optimset 会返回错误。如果没有找到匹配的标准参数,则发出警告并创建一个非标准参数。
标准有效参数列表:
请求优化结果的详细显示。取值为:
"off" [默认值]无显示。
"iter"显示每次循环迭代的中间结果。
"final"显示最终循环迭代的结果。
"notify"如果函数未能收敛,则显示最终循环迭代的结果。
启用后,如果目标函数返回无效值(复数、NaN 或 Inf),则显示错误。必须设置为 "on" 或 "off"(默认)。注意:函数 fzero 和 fminbnd 能正确处理 Inf 值,只有复数或 NaN 会导致错误。
当设置为 "on" 时,要最小化的函数必须返回第二个参数,即该函数在点 x 处的梯度(一阶导数)。如果设置为 "off"(默认),则通过有限差分计算梯度。
当设置为 "on" 时,要最小化的函数必须返回第二个参数,即该函数在点 x 处的雅可比矩阵(一阶导数)。如果设置为 "off"(默认),则通过有限差分计算雅可比矩阵。
优化停止前的最大函数求值次数。必须为正整数。
优化停止前的最大算法迭代次数。必须为正整数。
每个算法迭代执行一次的用户自定义函数。
函数输出的终止准则。如果相邻两次算法迭代之间计算的目标函数差值小于 TolFun,则优化停止。必须为正标量。
函数输入的终止准则。如果 x(当前搜索点)在相邻两次算法迭代之间的差值小于 TolX,则优化停止。必须为正标量。
此列表可由用户或其他已加载的 Octave 包扩展。可以使用无参数形式的 optimset 查询更新后的有效参数列表。
注 1:在匹配短参数名称时,仅考虑标准列表中的参数名称,并且 par 将始终扩展以匹配标准参数,即使存在完全匹配的非标准参数。与一个或多个标准参数存在歧义的非标准参数的值无法通过 optimset 设置,只能使用 setfield 或结构体的点表示法进行设置。
注 2:优化选项结构体主要用于通过 optimset 和 optimget 操作已知参数。创建非标准或歧义参数,或在创建优化选项结构体后加载/卸载更改已知参数列表的包,可能导致未来对 optimset 或 optimget 的调用出现不可预测的行为。
另请参阅: optimget。
val = optimget (options, par) ¶val = optimget (options, par, default) ¶从由 optimset 创建的优化选项结构体 options 中返回特定参数 par 的值。
如果 par 未定义,则返回 default 值(如果提供了的话),否则返回空矩阵。
如果 par 与标准参数的名称不完全匹配,optimget 将尝试将 par 匹配到一个标准参数,如果找到匹配项,则返回该参数的值。匹配不区分大小写,基于参数名称开头的字符进行匹配。如果找到多个不明确的匹配,optimget 会返回错误。如果没有找到匹配的标准参数,则发出警告。请参阅 optimset 了解标准选项列表的信息。
注意:在匹配短参数名称时,仅考虑标准列表中的参数名称,并且 par 将始终扩展以匹配标准参数,即使存在完全匹配的非标准参数。与一个或多个标准参数存在歧义的非标准参数的值无法通过 optimget 返回,只能使用 getfield 或结构体的点表示法进行访问。
另请参阅: optimset。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2