主要内容

nlinfit

非线性回归

描述

例子

β= nlinfit (<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-X" class="intrnllnk">X,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Y" class="intrnllnk">Y,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-modelfun" class="intrnllnk">modelfun,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-beta0" class="intrnllnk">beta0,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-options" class="intrnllnk">选项利用算法对结构中的控制参数进行非线性回归拟合选项.您可以返回前面语法中的任何输出参数。

例子

β= nlinfit (___,<一个href="//www.tatmou.com/ch/help/stats/#namevaluepairarguments" class="intrnllnk">名称,值使用由一个或多个名-值对参数指定的其他选项。例如,您可以指定观察权重或非常数误差模型。您可以使用前面语法中的任何输入参数。

例子

[<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-beta" class="intrnllnk">β,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-R" class="intrnllnk">R,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-J" class="intrnllnk">J,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-CovB" class="intrnllnk">CovB,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-MSE" class="intrnllnk">均方误差,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-ErrorModelInfo" class="intrnllnk">ErrorModelInfo= nlinfit(___另外返回残差,R的雅可比矩阵modelfunJ,估计系数的估计方差-协方差矩阵,CovB,误差项方差的估计,均方误差,以及包含误差模型细节的结构,ErrorModelInfo

例子

全部折叠

输入参数

全部折叠

非线性回归函数的预测变量,用矩阵表示。通常情况下,X是一个预测器(自变量)值的设计矩阵,其中每个值有一行<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Y" class="intrnllnk">Y,每个预测器对应一列。然而,X可以是任何数组吗<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-modelfun" class="intrnllnk">modelfun可以接受。

数据类型:|

拟合非线性回归函数的响应值(因变量),指定为具有相同行数的向量<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-X" class="intrnllnk">X

数据类型:|

非线性回归模型函数,指定为函数句柄。modelfun必须接受两个输入参数,一个系数矢量和一个数组X然后返回一个由拟合响应值组成的向量。

例如,指定<一个href="//www.tatmou.com/ch/help/stats/hougen.html">hougen非线性回归函数,使用函数句柄@hougen

数据类型:function_handle

最小二乘估计算法的初始系数值,指定为一个向量。

请注意

较差的初始值可能导致具有较大残余误差的解决方案。

数据类型:|

估计算法选项,指定为创建时使用的结构<一个href="//www.tatmou.com/ch/help/stats/statset.html">statset.以下statset参数适用于nlinfit

相对差为梯度的有限差分计算,指定为正标量值,或大小相同的矢量<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-beta" class="intrnllnk">β.使用矢量来指定每个系数的不同相对差值。

估计期间的输出显示级别,指定为之一“关闭”“通路”,或“最后一次”.如果你指定“通路”,在每次迭代时显示输出。如果你指定“最后一次”,最后一次迭代后显示输出。

指示器,用于是否检查无效值,例如从目标函数,指定为“上”“关闭”

估计算法的最大迭代次数,指定为正整数。迭代继续进行,直到估计值在收敛公差范围内,或指定的最大迭代数麦克斯特是达到了。

用于鲁棒拟合的权重函数,指定为有效的字符向量、字符串标量或函数句柄。

请注意

RobustWgtFun必须有价值[]当你使用观察权重时,W

下表描述了可能的字符向量和字符串标量。让r表示标准化残差和w表示健壮的权重。指标函数I[x如果表达式为x为真,否则为0。

权函数 方程 默认调优常数
''(默认) 没有坚固的配件 - - - - - -
“安德鲁”

w | r | < π × r / r

1.339
“bisquare”

w | r | < 1 × 1 r 2 2

4.685
“柯西”

w 1 1 + r 2

2.385
“公平”

w 1 1 + | r |

1.400
“休伯”

w 1 马克斯 1 | r |

1.345
“物流”

w 双曲正切 r r

1.205
“犯错误”

w | r | < 1

2.795
“welsch”

w 经验值 r 2

2.985

您还可以指定一个函数句柄,该函数句柄接受规范化残差向量作为输入,并返回稳健权重向量作为输出。如果使用函数句柄,则必须提供<一个href="//www.tatmou.com/ch/help/stats/#d124e692878" class="intrnllnk">调优常数。

用于稳健拟合的调优常数,指定为正标量值。在应用鲁棒权重函数之前,调谐常数用于归一化残差。的函数指定默认调优常数<一个href="//www.tatmou.com/ch/help/stats/#d124e692703" class="intrnllnk">RobustWgtFun

如果使用函数句柄来指定RobustWgtFun,则必须指定值调优

残差平方和的终止容差,指定为正标量值。迭代继续进行,直到估计值在收敛公差范围内,或指定的最大迭代数麦克斯特是达到了。

对估计系数的终止公差,β,指定为正标量值。迭代继续进行,直到估计值在收敛公差范围内,或指定的最大迭代数麦克斯特是达到了。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“ErrorModel”、“比例”,“ErrorParameters”,0.5指定比例误差模型,误差参数估计的初始值为0.5

错误项的形式,指定为逗号分隔的对,由“ErrorModel”而且“不变”“比例”,或“组合”错误模型。每个模型都使用标准的均值零和单位方差变量来定义误差e与独立组件组合:函数值f,和一个或两个参数一个而且b

“不变”(默认) y f + 一个 e
“比例” y f + b f e
“组合” y f + 一个 + b | f | e

使用时唯一允许的错误模型<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Weights" class="intrnllnk">权重“不变”

请注意

选项。RobustWgtFun必须有价值[]当使用其他错误模型时“不变”

对所选误差模型参数的初始估计<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-ErrorModel" class="intrnllnk">ErrorModel,指定为逗号分隔的对,由“ErrorParameters”和一个标量值或两元向量。

误差模型 参数 默认值
“不变” 一个 1
“比例” b 1
“组合” 一个b [1]

例如,如果“ErrorModel”有价值“组合”时,可以指定起始值1一个初始值为2b如下。

例子:“ErrorParameters”,[1,2]

您只能使用“不变”使用时错误模型<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Weights" class="intrnllnk">权重

请注意

选项。RobustWgtFun必须有价值[]当使用其他错误模型时“不变”

数据类型:|

观察权重,由逗号分隔的对组成“重量”一个实权向量或者一个函数句柄。您可以使用观测权重来降低您希望对拟合模型影响较小的观测值的权重。

  • 如果W是向量,那么它的大小一定和<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Y" class="intrnllnk">Y

  • 如果W是函数句柄,则它必须接受预测响应值的向量作为输入,并返回实际正权重的向量作为输出。

请注意

选项。RobustWgtFun必须有价值[]当你使用观察权重时。

数据类型:||function_handle

输出参数

全部折叠

估计的回归系数,作为向量返回。元素的数量β等于其中的元素数<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-beta0" class="intrnllnk">beta0

f X b 表示所指定的非线性函数<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-modelfun" class="intrnllnk">modelfun,在那里 x 是观察的预测因子吗= 1,…,N, b 是回归系数。返回的系数向量β使加权最小二乘方程最小,

1 N w y f x b 2

对于非加权非线性回归,所有的权重项都等于1。

拟合模型的残差,作为向量返回。

  • 如果使用名称-值对参数指定观察权重<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Weights" class="intrnllnk">权重,然后R包含<一个href="//www.tatmou.com/ch/help/stats/nlinfit.html" class="intrnllnk">加权残差

  • 如果指定的错误模型不是“不变”使用名称-值对参数<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-ErrorModel" class="intrnllnk">ErrorModel,那么你就不能再解释了R作为模型拟合残差。

非线性回归模型的雅可比矩阵,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-modelfun" class="intrnllnk">modelfun,作为N——- - - - - -p矩阵,N观察的次数和p是估计系数的个数。

  • 如果使用名称-值对参数指定观察权重<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Weights" class="intrnllnk">权重,然后J是<一个href="//www.tatmou.com/ch/help/stats/nlinfit.html" class="intrnllnk">加权模型函数雅可比矩阵

  • 如果指定的错误模型不是“不变”使用名称-值对参数<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-ErrorModel" class="intrnllnk">ErrorModel,那么你就不能再解释了J作为模型函数雅可比矩阵。

拟合系数的估计方差协方差矩阵,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-beta" class="intrnllnk">β,作为p——- - - - - -p矩阵,p是估计系数的个数。如果模型是雅可比矩阵,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-J" class="intrnllnk">J,则具有满列秩CovB = inv(J'*J)*MSE,在那里<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-MSE" class="intrnllnk">均方误差是均方误差。

拟合模型的均方误差(MSE),以标量值返回。MSE是误差项方差的估计。如果模型是雅可比矩阵,<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-J" class="intrnllnk">J,则具有满列秩MSE = (R'*R)/(N-p),在那里N是观察数,和p是估计系数的个数。

关于错误模型拟合的信息,作为具有以下字段的结构返回:

ErrorModel 选择误差模型
ErrorParameters 估计误差参数
ErrorVariance 函数句柄N——- - - - - -p矩阵,X,并返回一个N-by-1误差方差向量,使用估计误差模型
均方误差 均方误差
ScheffeSimPred Scheffé参数用于使用估计误差模型时的同时预测间隔
WeightFunction 有价值的逻辑真正的中使用自定义权重函数nlinfit
FixedWeights 有价值的逻辑真正的如果你之前使用固定的权重nlinfit
RobustWeightFunction 有价值的逻辑真正的如果你之前使用了稳健拟合nlinfit

提示

算法

  • nlinfit对待值<一个href="//www.tatmou.com/ch/help/stats/#btk7ign-Y" class="intrnllnk">Ymodelfun (beta0 X)作为缺失的数据,并忽略相应的观察。

  • 对于非鲁棒估计,nlinfit采用Levenberg-Marquardt非线性最小二乘算法<一个href="//www.tatmou.com/ch/help/stats/nlinfit.html" class="intrnllnk">[1]

  • 对于鲁棒估计,nlinfit采用的算法<一个href="//www.tatmou.com/ch/help/stats/robust-regression-reduce-outlier-effects.html" class="a">迭代重加权最小二乘(<一个href="//www.tatmou.com/ch/help/stats/nlinfit.html" class="intrnllnk">[2],<一个href="//www.tatmou.com/ch/help/stats/nlinfit.html" class="intrnllnk">[3]).在每次迭代中,鲁棒权值都是基于前一次迭代中每个观测值的残差重新计算的。这些权重降低了离群值,从而降低了它们对拟合的影响。迭代继续进行,直到权重收敛为止。

  • 当您为观察权重指定函数句柄时,权重取决于拟合模型。在这种情况下,nlinfit采用迭代广义最小二乘算法拟合非线性回归模型。

参考文献

[1]塞伯,g.a.f.和c.j.怀尔德。非线性回归.霍博肯,新泽西州:Wiley-Interscience, 2003。

[2]杜穆切尔,W. H.和F. L.奥布莱恩。将一个健壮的选项集成到多元回归计算环境中。计算机科学与统计:第21届界面研讨会论文集.亚历山大,弗吉尼亚州:美国统计协会,1989年。

[3]霍兰德,P. W.和R. E.韦尔施。使用迭代重加权最小二乘的稳健回归统计通讯:理论与方法A6, 1977,第813-827页。

版本历史

R2006a之前介绍