nonlinearmodel.fit.

班级:NonLinearModel

(不推荐)适合非线性回归模型

nonlinearmodel.fit.不推荐。用fitnlm.反而。

句法

mdl = NonLinearModel.fit(资源描述、modelfun beta0)
mdl = NonLinearModel.fit (X, y, modelfun beta0)
mdl = nonlinearmodel.fit(...,modelfun,beta0,名称,值)

描述

mdl= NonLinearModel.fit (TBL.Modelfun.beta0适合指定的模型Modelfun.到表或数据集数组中的变量TBL.,返回非线性模型mdlnonlinearmodel.fit.中使用迭代法从初始值开始估计模型系数beta0

mdl= NonLinearModel.fit (XyModelfun.beta0用列向量拟合一个非线性回归模型y作为响应变量和矩阵的列X作为预测变量。

mdl= NonLinearModel.fit(…Modelfun.beta0名称,价值适合非线性回归模型,其中包含一个或多个指定的其他选项名称,价值对论点。

输入参数

展开全部

输入数据包括预测器和响应变量,指定为表或数据集数组。预测变量和响应变量必须是数字。

  • 如果您指定Modelfun.使用公式,公式中的模型规范指定了预测器和响应变量。

  • 如果您指定Modelfun.使用函数句柄,最后一个变量默认为响应变量,其他变量为预测变量。属性将不同的列设置为响应变量ResponseVar名称值对参数。要选择列作为预测器的子集,请使用PredictorVars名称值对参数。

表中的变量名称不必有效MATLAB®身份标识。但是,如果名称无效,则无法指定Modelfun.使用公式。

您可以验证变量名称TBL.通过使用isvarname.功能。以下代码返回逻辑1真正的)对每个具有有效变量名的变量。

cellfun(@ isvarname,tbl.properties.variablenames)
如果变量名称TBL.无效,然后使用它来转换它们matlab.lang.makevalidname.功能。
tbl.properties.variablenames = matlab.lang.makevallname(tbl.properties.variablenames);

数据类型:桌子

预测变量,指定为一个N-经过-P.矩阵,其中N观察的次数是多少P.是预测变量的数量。每列X表示一个变量,每行代表一个观察。

数据类型:|双倍的

响应变量,指定为一个N1的向量,N是观察人数。每个条目y是对应行的响应X

数据类型:|双倍的

模型的功能形式,指定为以下任一项。

  • 功能手柄@Modelfun.@(b,x)Modelfun., 在哪里

    • B.一个系数向量的元素数是否相同beta0

    • X是一个具有相同数量的列的矩阵X或者预测变量列的数量TBL.

    Modelfun.b (x)所包含的行数相同的列向量X.向量的每一行都是求值的结果Modelfun.在相应的行上X.换句话说,Modelfun.是一个矢量化函数,一个在所有数据行上运行,并返回一个函数调用中的所有评估。Modelfun.应该返回真实数字以获得有意义的系数。

  • 表示表单中公式的字符向量或字符串标量'yF(b1,b2,...,bj,x1,x2,...,xk)', 在哪里F表示标量系数变量的标量函数B1,......,BJ.和标量数据变量X1,......,XK..公式中的变量名必须是有效的MATLAB标识符。

数据类型:function_handle.|char|细绳

非线性模型的系数指定为数字矢量。NonLinearModel从开始寻找最优系数beta0

数据类型:|双倍的

名称值对参数

指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值是对应的值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

模型系数的名称,指定为字符向量,字符串数组或字符向量的单元数组。

数据类型:char|细绳|细胞

错误方差模型的形式,指定为以下之一。每个模型使用标准平均值和单位方差变量定义错误E.与独立组件组合:函数值F,以及一个或两个参数一种B.

'不变'(默认) y = F + 一种 E.
“比例” y = F + B. F E.
“合并” y = F + 一种 + B. | F | E.

使用时唯一允许的错误模型重量'不变'

笔记

选项。RobustWgtFun必须有价值[]使用以外的错误模型时'不变'

例子:'errormodel','比例'

所选错误模型参数的初始估计errormodel.,指定为数字数组。

错误模型 参数 默认值
'不变' 一种 1
“比例” B. 1
“合并” 一种B. [1]

您只能使用'不变'使用时出错模型重量

笔记

选项。RobustWgtFun必须有价值[]使用以外的错误模型时'不变'

例如,如果'errormodel'有价值“合并”,可以指定起始值为1一种和起始值2B.如下。

例子:'ErrorParameters',[1,2]

从拟合中排除的观察,指定为逗号分隔的配对'排除'和一个逻辑或数字索引向量,指示从拟合中排除的观察。

例如,您可以使用以下任一实施例排除6个中的观察2和3。

例子:'排除',[2,3]

例子:'排除',逻辑([0 1 1 0 0 0])

数据类型:|双倍的|逻辑

控制迭代拟合程序的选项,指定为由此创建的结构实例化.相关领域是呼叫返回的结构中的非空字段statset('nlinfit')

选项 意义 默认
DerivStep 有限差分衍生计算中使用的相对差异。正标量或正标量的向量与使用选项结构的统计和机器学习工具箱™函数估计的参数矢量相同的尺寸。 EPS ^(1/3)
显示

拟合算法显示的信息量。

  • '离开'- 无显示信息。

  • '最终的'—显示最终输出。

  • 'iter'- 将迭代输出显示到命令窗口。

'离开'
FunValCheck 表示检查无效值的字符矢量或字符串标量,例如INF.,从模型函数。 '上'
maxiter. 允许的最大迭代次数。正整数。 200
RobustWgtFun 适用于鲁棒配件的重量函数。也可以是接受归一化残差作为输入的函数句柄,并将强大的权重返回为输出。如果使用函数句柄,请给出不变。看强大的选择 []
调整恒定用于稳健的拟合,在应用重量函数之前将残留量标准化。正标量。如果重量函数被指定为函数句柄,则需要。 强大的选择对于默认值,这取决于RobustWgtFun
塔尔芬 目标函数值的终止公差。正标量。 1E-8
托克斯 参数的终止公差。正标量。 1E-8

数据类型:塑造

预测变量用于拟合,指定为逗号分隔对'predictorvars'以及表或数据集数组中变量名称的字符数阵列或单元格数组TBL.或指示哪个列是预测变量的逻辑或数字索引向量。

字符串值或字符向量应在名称中TBL.或者使用您使用的名称'varnames'名称值对参数。

默认值是所有变量X,或所有变量TBL.除了ResponseVar

例如,您可以使用以下任一示例指定作为预测器变量的第二个和第三变量。

例子:'predictorvars',[2,3]

例子:'predictorvars',逻辑([0 1 1 0 0 0])

数据类型:|双倍的|逻辑|细绳|细胞

用于适合的响应变量,指定为逗号分隔的对组成“ResponseVar”以及包含表或数据集数组中的变量名称的字符向量或字符串标量TBL.,或指示哪个列是响应变量的逻辑或数字索引矢量。您通常需要使用“ResponseVar”拟合表或数据集数组时TBL.

例如,您可以指定第四变量,例如屈服,作为六个变量的响应,以下列方式之一。

例子:'Responalvar','收益'

例子:'ResponalVar',[4]

例子:'ResponalVar',逻辑([0 0 0 1 0 0])

数据类型:|双倍的|逻辑|char|细绳

变量的名称,指定为逗号分隔的配对组成'varnames'和字符串数组或字符向量的单元数组,包括列的名称X首先,以及响应变量的名称y最后一次。

'varnames'不适用于表格或数据集数组中的变量,因为这些变量已经有名称。

例子:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}

数据类型:细绳|细胞

观察权值,指定为非负标量值的向量或函数句柄。

  • 如果你指定一个向量,那么它一定有N元素,N是行数吗TBL.y

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

给予重量,W.NonLinearModel估计观测时的误差方差一世经过MSE * (1 / W (i)),其中MSE是平均平方误差。

数据类型:|双倍的|function_handle.

输出参数

展开全部

代表对数据响应的最小二乘拟合的非线性模型,作为a返回NonLinearModel对象。

如果是选项结构包含一个非空RobustWgtFun字段,该模型不是最小二乘拟合,而是使用RobustWgtFun强大的拟合功能。

对于非线性模型对象的属性和方法,mdl,请参阅NonLinearModel类页面。

例子

展开全部

基于“的自动里程”创建非线性模型CARBIG.数据。

加载数据并创建非线性模型。

加载CARBIG.台=表(马力、重量、MPG);modelfun = @(b,x)b(1)+ b(2)* x(:,1)。^ b(3)+...b (4) * x(:, 2)。^ b (5);β = [-50 500 -1 500 -1];mdl = NonLinearModel.fit(资源描述、modelfun beta0)
mdl =非线性回归模型:MPG ~ b1 + b2*马力^b3 + b4*重量^b5估计SE tStat pValue ________ _______ ________ ________ b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788观测数:392,误差自由度:387均方根误差:3.96 r -平方:调整后的r平方0.743 f统计量与常数模型:283,p值= 1.79e-113

基于“的自动里程”创建非线性模型CARBIG.数据。

加载数据并创建非线性模型。

加载CARBIG.x = [马力,重量];y = mpg;modelfun = @(b,x)b(1)+ b(2)* x(:,1)。^ b(3)+...b (4) * x(:, 2)。^ b (5);β = [-50 500 -1 500 -1];mdl = NonLinearModel.fit (X, y, modelfun beta0)
MDL =非线性回归模型:Y〜B1 + B2 * X1 ^ B3 + B4 * X2 ^ B5估计系数:估计硒t PVALUE ____________________________49.383 119.97 -0.41164 0.567.05 0.660372384 0.50719 B3 -0.78193 0.4719 B3 -0.781930.098177 B4 422.37 776.02 0.54428 0.58656 B5 -0.24127 0.24127 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 0.48325 -0.49926 0.61788观测数量:392,误差自由度:387根均匀误差:3.96 R线:0.745,调整R线0.743 F统计与常数模型:283,p值= 1.79e-113

基于“的自动里程”创建非线性模型CARBIG.数据。为了更准确,降低塔尔芬选项,并通过设置迭代来观察迭代显示选项。

加载数据并创建非线性模型。

加载CARBIG.x = [马力,重量];y = mpg;modelfun = @(b,x)b(1)+ b(2)* x(:,1)。^ b(3)+...b (4) * x(:, 2)。^ b (5);β = [-50 500 -1 500 -1];

创建选项以降低塔尔芬并报告迭代显示,并使用选项创建模型。

opts = statset('展示''iter''tolfun'1平台以及);mdl = NonLinearModel.fit (X, y, modelfun beta0,'选项',选择);
迭代规范的规范SSE梯度步骤---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0 1.82248e+06 1 678600 788810 1691.07 2 616716 6.12739e+06 45.4738 3 249831 3.9532e+06 293.557 4 17675 361544 369.284 5 11746.6 69670.5 169.079 6 7242.22 343738 394.822 7 6250.32 159719 452.941 8 6172.87 91622.9 268.674 9 6077 6957.44 100.208 10 6076.34 6370.39 88.1905 11 6075.75 5199.08 77.9694 12 6075.3 4646.61 69.764 13 6074.91 4235.96 62.9114 14 6074.55 3885.28 57.0647 15 6074.23 3571.1 52.0036 16 6073.93 3286.48 47.5795 17 6073.66 3028.34 43.6844 18 6073.4 2794.31 40.2352 19 6073.17 2582.15 37.1663 20 6072.95 2389.68 34.4243 21 6072.74 2214.84 31.9651 22 6072.55 2055.78 29.7516 23 6072.37 1910.83 27.753 24 6072.21 1778.51 25.9428 25 6072.05 1657.5 24.2986 26 6071.9 1546.65 22.8011 27 6071.76 1444.93 21.4338 28 6071.63 1351.44 20.1822 29 6071.51 1265.39 19.0339 30 6071.39 1186.06 17.978 31 6071.28 1112.83 17.0052 32 6071.17 1045.13 16.107 33 6071.07 982.465 15.2762 34 6070.98 924.389 14.5063 35 6070.89 870.498 13.7916 36 6070.8 820.434 13.127 37 6070.72 773.872 12.5081 38 6070.64 730.521 11.9307 39 6070.57 690.117 11.3914 40 6070.5 652.422 10.887 41 6070.43 617.219 10.4144 42 6070.37 584.315 9.97114 43 6070.31 553.53 9.55489 44 6070.25 524.703 9.1635 45 6070.19 497.686 8.79506 46 6070.14 472.345 8.44785 47 6070.08 448.557 8.12028 48 6070.03 426.21 7.81092 49 6069.99 405.201 7.51845 50 6069.94 385.435 7.2417 51 6069.9 366.825 6.97956 52 6069.85 349.293 6.73104 53 6069.81 332.764 6.49523 54 6069.77 317.171 6.27127 55 6069.74 302.452 6.0584 56 6069.7 288.55 5.85591 57 6069.66 275.411 5.66315 58 6069.63 262.986 5.47949 59 6069.6 251.23 5.3044 60 6069.57 240.1 5.13734 61 6069.54 229.558 4.97784 62 6069.51 219.567 4.82545 63 6069.48 210.094 4.67977 64 6069.45 201.108 4.5404 65 6069.43 192.578 4.407 66 6069.4 184.479 4.27923 67 6069.38 176.785 4.15677 68 6069.35 169.472 4.03935 69 6069.33 162.518 3.9267 70 6069.31 155.903 3.81855 71 6069.29 149.608 3.71468 72 6069.26 143.615 3.61486 73 6069.24 137.907 3.5189 74 6069.22 132.468 3.42658 75 6069.21 127.283 3.33774 76 6069.19 122.339 3.25221 77 6069.17 117.623 3.16981 78 6069.15 113.123 3.09041 79 6069.14 108.827 3.01386 80 6069.12 104.725 2.94002 81 6069.1 100.806 2.86877 82 6069.09 97.0611 2.8 83 6069.07 93.4814 2.73358 84 6069.06 90.0583 2.66942 85 6069.05 86.7842 2.60741 86 6069.03 83.6513 2.54745 87 6069.02 80.6529 2.48947 88 6069.01 77.7821 2.43338 89 6068.99 75.0327 2.37908 90 6068.98 72.399 2.32652 91 6068.97 69.8752 2.27561 92 6068.96 67.4561 2.22629 93 6068.95 65.1367 2.17849 94 6068.94 62.9122 2.13216 95 6068.93 60.7784 2.08723 96 6068.92 58.7308 2.04364 97 6068.91 56.7655 2.00135 98 6068.9 54.8787 1.9603 99 6068.89 4349.28 18.1917 100 6068.77 2416.27 14.4439 101 6068.71 1721.26 12.1305 102 6068.66 1228.78 10.289 103 6068.63 884.002 8.82019 104 6068.6 639.615 7.62745 105 6068.58 464.84 6.64627 106 6068.56 338.878 5.82964 107 6068.55 247.508 5.14297 108 6068.54 180.879 4.56032 109 6068.53 132.084 4.06194 110 6068.52 96.2341 3.63254 111 6068.51 69.8362 3.26019 112 6068.51 50.3734 2.93541 113 6068.5 36.0205 2.65062 114 6068.5 25.4451 2.39969 115 6068.49 17.6693 2.17764 116 6068.49 1027.4 14.0164 117 6068.48 544.038 5.31368 118 6068.48 94.057 2.86663 119 6068.48 113.636 3.73502 120 6068.48 0.518548 1.37049 121 6068.48 4.59432 0.91283 122 6068.48 1.56363 0.629281 123 6068.48 1.13811 0.432539 124 6068.48 0.295961 0.297507 Iterations terminated: relative change in SSE less than OPTIONS.TolFun

使用函数手柄或字符向量指定估计的非线性回归模型。

加载示例数据。

S =负载(“反应”);x = s.readants;y = s.rate;beta0 = s.beta;

使用函数句柄来指定速率数据的Hougen-Watson模型。

mdl = nonlinearmodel.fit(x,y,@ hougen,beta0)
MDL =非线性回归模型为:y〜hougen(B,X)的估计系数:估计SE TSTAT p值________ ________ ______ _______ B1 1.2526 0.86701 1.4447 0.18654 B2 0.062776 0.043561 1.4411 0.18753 B3 0.040048 0.030885 1.2967 0.23089 B4 0.11242 0.075157 1.4957 0.17309 B5 1.1914 0.83671 1.4239 0.1923观察次数:13,自由度误差:8根均匀误差:0.193 r断层:0.999,调整R线0.998 F统计与零型号:3.91E + 03,P值= 2.54E-13

或者,您可以使用字符向量来指定速率数据的Hougen-Watson模型。

myfun ='Y〜(b1 * x2-x3 / b5)/(1 + b2 * x1 + b3 * x2 + b4 * x3)';mdl2 = NonLinearModel.fit (X, y, myfun beta0)
MDL2 =非线性回归模型:Y〜(B1 * X2  -  X3 / B5)/(1 + B2 * X1 + B3 * X2 + B4 * X3)估计系数:估计系数:估计SE TSTAT pvalue ________ ________ ___________ b1 1.2526 0.86701 1.4447 0.18601 1.4447 0.18601 1.4447 0.18654 B20.062776 0.043561 1.4411 0.18753 0.040048 B3 0.030885 1.2967 0.23089 0.11242 B4 0.075157 1.4957 0.17309 1.1914 B5 0.83671 1.4239 0.1923观测数:13,自由的误差度:8均方根误差:0.193 R平方:0.999,调整R平方0.998 F-统计与零模型:3.91E + 03,P值= 2.54E-13

从非线性回归模型生成示例数据

y = B. 1 + B. 2 经验值 [ - B. 3. X ] + ε.

在哪里 B. 1 B. 2 , B. 3. 是系数,误差项通常以平均值0分布,标准偏差0.5。

modelfun = @ (b, x) (b (1) + (2) * exp (- b (3) * x));rng ('默认'重复性的%b = [1; 3; 2);x = exprnd (2100 1);Y = modelfun(b,x) + normrnd(0,0.5,100,1);

设置强大的拟合选项。

opts = statset('nlinfit');opts.robustwgtfun ='Bisquare';

使用强大的拟合选项拟合非线性模型。在这里,使用字符向量来指定模型。

B0 = [2; 2; 2];modelstr =.'y〜b1 + b2 * exp(-b3 * x)';mdl = NonLinearModel.fit (x, y, modelstr b0,'选项'选择)
mdl =非线性回归模型(健壮健康):y ~ b1 + b2 * exp (- b3 * x)估计系数:估计SE tStat pValue  ________ _______ ______ __________ b1 1.0218 0.07202 14.188 2.1344 e-25 b2 e-26 b3 2.9732 0.38496 7.7232 7.974 3.6619 0.25429 14.401 1.0346 e-11观测数量:100年,错误自由度:97根均方误差:0.501 R-Squared: 0.807, Adjusted R-Squared 0.803 F-statistic vs. constant model: 203, p-value = 2.34e-35

加载示例数据。

S =负载(“反应”);x = s.readants;y = s.rate;beta0 = s.beta;

指定用于观察权重的函数句柄。该函数接受模型拟合值作为输入,返回权重矢量。

= 1;b = 1;权重= @(yhat) 1。/ ((a + b * abs (yhat)) ^ 2);

使用指定的观察权重函数将Hougen-Watson模型拟合到速率数据。

mdl = nonlinearmodel.fit(x,y,@ hougen,beta0,'重量',重量)
MDL =非线性回归模型为:y〜hougen(B,X)的估计系数:估计SE TSTAT p值________ ________ ______ _______ B1 0.83085 0.58224 1.427 0.19142 B2 0.04095 0.029663 1.3805 0.20477 B3 0.025063 0.019673 1.274 0.23842 B4 0.080053 0.057812 1.3847 0.20353 B5 1.8261 1.281 1.4256 0.19183观察次数:13,自由度误差:8根均方误差:0.037 R线:0.998,调整R线0.998 F统计与零型号:1.14E + 03,P值= 3.49E-11

加载示例数据。

S =负载(“反应”);x = s.readants;y = s.rate;beta0 = s.beta;

使用组合误差方差模型拟合Hougen-Watson模型到速率数据。

mdl = nonlinearmodel.fit(x,y,@ hougen,beta0,'errormodel'“合并”
MDL =非线性回归模型为:y〜hougen(B,X)的估计系数:估计SE TSTAT p值________ ________ ______ _______ B1 1.2526 0.86702 1.4447 0.18654 B2 0.062776 0.043561 1.4411 0.18753 B3 0.040048 0.030885 1.2967 0.23089 B4 0.11242 0.075158 1.4957 0.17309 B5 1.1914 0.83671 1.4239 0.1923观察次数:13,自由度误差:8根均匀误差:1.27 R线:0.999,调整R线0.998 F统计与零型号:3.91E + 03,P值= 2.54E-13

更多关于

展开全部

算法

nonlinearmodel.fit.使用与相同的拟合算法nlinfit.

备择方案

您还可以使用非线性模型使用fitnlm.

参考

[1] SEBER,G.A.F.和C. J. Wild。非线性回归.Hoboken,NJ:Wiley-Interscience,2003。

[2] DuMouchel, W. H.和F. L. O . brien。将稳健的选择集成到多元回归计算环境中。计算机科学与统计:第21次界面研讨会的诉讼程序.亚历山大,VA:美国统计协会,1989年。

[3]荷兰,P.W.和R. e.威尔彻。“使用迭代重复最小二乘的鲁棒回归。”统计通信:理论与方法A6第813-827页。