主要内容

nlpredci.

非线性回归预测置信度间隔

描述

例子

[ypred.三角洲] = nlpredci(Modelfun.XbetR.,'covar',Covb.返回预测,ypred.,95%置信区间半宽,三角洲,对于非线性回归模型Modelfun.输入值X。在打电话之前nlpredci., 使用nlinfit.适合Modelfun.并获得估计的系数,bet,残差,R.和方差 - 协方差矩阵,Covb.

例子

[ypred.三角洲] = nlpredci(Modelfun.XbetR.,'covar',Covb.名称,价值使用一个或多个名称值对参数指定的其他选项。

例子

[ypred.三角洲] = nlpredci(Modelfun.XbetR.,'雅各比亚',j返回预测,ypred.,95%置信区间半宽,三角洲,对于非线性回归模型Modelfun.输入值X。在打电话之前nlpredci., 使用nlinfit.适合Modelfun.并获得估计的系数,bet,残差,R.和雅各比亚,j

如果您使用强大的选项nlinfit.,然后你应该使用开环语法而不是雅各比亚句法。方差 - 协方差矩阵,Covb.,需要妥善遵守稳健的拟合。

例子

[ypred.三角洲] = nlpredci(Modelfun.XbetR.,'雅各比亚',j名称,价值使用一个或多个名称值对参数指定的其他选项。

例子

全部收缩

加载样本数据。

s = load('反应');x = s.readants;y = s.rate;beta0 = s.beta;

使用初始值将Hougen-Watson模型适合速率数据Beta0.

[beta,r,j] = nlinfit(x,y,@ hougen,beta0);

在平均反应物水平下获得预测的响应和95%置信区间半宽度,用于曲线的值。

[ypred,delta] = nlpredci(@ hougen,平均(x),beta,r,'雅各比亚'j)
Ypred = 5.4622.
delta = 0.1921.

计算曲线值的95%置信区间。

[ypred-delta,ypred + delta]
ans =.1×25.2702 5.6543

加载样本数据。

s = load('反应');x = s.readants;y = s.rate;beta0 = s.beta;

使用初始值将Hougen-Watson模型适合速率数据Beta0.

[beta,r,j] = nlinfit(x,y,@ hougen,beta0);

获得预测的响应和95%预测间隔半宽,用于与反应水平的新观察[100,100,100]

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,r,'雅各比亚',j,......'predopt''观察'
Ypred = 1.8346.
delta = 0.5101.

计算新观察的95%预测间隔。

[ypred-delta,ypred + delta]
ans =.1×21.3245 2.3447

从非线性回归模型生成示例数据 y = B. 1 + B. 2 E. X P. { B. 3. X } + ε. , 在哪里 B. 1 B. 2 , 和 B. 3. 是系数,误差项通常以平均值0分布,标准偏差0.5。

modelfun = @(b,x)(b(1)+ b(2)* exp(-b(3)* x));RNG('默认'重复性的%B = [1; 3; 2];x = EXPRND(2,100,1);y = modelfun(b,x)+ normrnd(0,0.5,100,1);

使用强大的拟合选项拟合非线性模型。

opts = statset('nlinfit');opts.robustwgtfun ='Bisquare';beta0 = [2; 2; 2];[Beta,R,J,CoVB,MSE] = NlinFit(x,y,modelfun,beta0,选择);

绘制拟合的回归模型,同时95%的置信度。

xrange = min(x):01:max(x);[ypred,delta] = nlpredci(modelfun,xrange,beta,r,'COVAR',covb,......'妈妈',MSE,'simopt''在');较低= ypred  -  delta;upper = ypred + delta;图()绘图(x,y,'ko'%观察到的数据抓住绘图(Xrange,Ypred,'K''行宽',2)绘图(Xrange,[降低;上部],'r--''行宽',1.5)

加载样本数据。

s = load('反应');x = s.readants;y = s.rate;beta0 = s.beta;

指定用于观察权重的函数句柄,然后使用指定的观察权重函数将Hougen-Watson模型适合速率数据。

a = 1;B = 1;权重= @(yhat)1./((+ b * abs(yhat))。^ 2);[beta,r,j,covb] = nlinfit(x,y,@ hougen,beta0,'重量',重量);

计算95%的预测间隔,以进行反应水平的新观察[100,100,100]使用观察重量函数。

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,r,'雅各比亚',j,......'predopt''观察''重量',重量);[ypred-delta,ypred + delta]
ans =.1×21.5264 2.1033

加载样本数据。

s = load('反应');x = s.readants;y = s.rate;beta0 = s.beta;

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

[Beta,R,J,CoVB,MSE,S] = nlinfit(x,y,@ hougen,beta0,'errormodel'“合并”);

计算95%的预测间隔,以进行反应水平的新观察[100,100,100]使用拟合误差方差模型。

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,r,'雅各比亚',j,......'predopt''观察''errormodelinfo',s);[ypred-delta,ypred + delta]
ans =.1×21.3245 2.3447

输入参数

全部收缩

非线性回归模型函数,指定为函数句柄。Modelfun.必须接受两个输入参数,系数矢量和数组X- 在订购 - 并返回拟合响应值的向量。

例如,指定侯根非线性回归函数,使用功能句柄@Hhougen.

数据类型:function_handle.

预测的输入值,指定为矩阵。nlpredci.对每行的协变量进行预测X。应该有一个列X对于模型中的每个系数。

数据类型:单身的|双倍的

估计的回归系数,指定为先前呼叫返回的拟合系数向量nlinfit.

数据类型:单身的|双倍的

适合的残留物Modelfun.,指定为先前呼叫返回的残差向量nlinfit.

估计拟合系数的方差 - 协方差矩阵,bet,指定为先前调用返回的方差 - 协方差矩阵nlinfit.

估计非线性回归模型的雅各比比亚,Modelfun.指定为先前呼叫返回的雅各比矩阵nlinfit.

名称值对参数

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

例子:'alpha',0.1,'predopt','观察'为新观察指定90%的预测间隔。

置信区间的意义水平,指定为逗号分隔对'Α'和范围内的标量值(0,1)。如果Α有价值α., 然后nlpredci.返回100×的间隔(1-α.)达到置信水平。

默认的置信水平为95%(α.= 0.05)。

例子:'alpha',0.1

数据类型:单身的|双倍的

有关错误模型适合的信息,指定为包含的逗号分隔对'errormodelinfo'和以前的电话返回的结构nlinfit.

errormodelinfo.只对返回的预测间隔仅产生影响predopt.有价值'观察'。如果你不使用errormodelinfo., 然后nlpredci.假设错误方差模型是'持续的'

返回的错误模型结构nlinfit.有以下字段:

errormodel. 选择错误模型
错误参数 估计误差参数
errorvariance. 函数句柄接受一个N-经过-P.矩阵,X,并返回一个N-1使用估计误差模型的误差差异矢量
MSE 平均方形错误
Scheffesimpred. Scheffé参数使用估计误差模型时的同时预测间隔
重量障碍 逻辑与价值真的如果您之前使用过自定义重量函数nlinfit.
固定重量 逻辑与价值真的如果您之前使用过固定的重量nlinfit.
强大的重量功能 逻辑与价值真的如果您以前使用的强大拟合nlinfit.

用于拟合非线性回归模型的均方误差(MSE),指定为包括的逗号分隔对'妈妈'和以前的电话返回的MSE值nlinfit.

如果您使用强大的选项nlinfit.,然后您必须在预测新的观察时指定MSE,以便正确地承担稳健的拟合。如果您没有指定MSE,那么nlpredci.计算剩余的MSE,R.,并没有考虑到稳健的拟合。

例如,如果MSE是返回的MSE值nlinfit.,然后你可以指定'MSE',MSE

数据类型:单身的|双倍的

计算的预测间隔,指定为逗号分隔的对'predopt'和任何一种'曲线'或者'观察'

  • 如果指定值'曲线', 然后nlpredci.在观察中返回估计曲线(函数值)的置信区间X

  • 如果指定值'观察', 然后nlpredci.返回新观察的预测间隔X

如果您指定'观察'使用鲁棒选项后nlinfit.,然后您还必须指定一个值MSE提供均方方体误差的稳健估计。

例子:'predopt','观察'

指定同时界限的指示,指定为逗号分隔的配对组成'simopt'和任何一种'离开'或者'在'。使用该值'离开'计算非审计范围,和'在'同时界限。

观察权重,指定为逗号分隔的配对组成'重量'和正标量值或函数手柄的矢量。默认值不是重量。

  • 如果指定权重向量,则它必须具有与观察数(行)的元素相同X

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

给予重量,W.nlpredci.估计观察的误差方差一世经过MSE *(1 / W(i)), 在哪里MSE是指定使用的平均平方误差值MSE

例子:'重量',@ wfun

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

输出参数

全部收缩

预测的响应,作为具有相同行数的向量返回X

置信区间半宽,作为矢量与行数相同的矢量返回X。默认情况下,三角洲包含非正式95%置信区间的半宽度Modelfun.在观察中X。您可以计算置信区间的较低和上限ypred-deltaYpred +三角洲, 分别。

如果'predopt'有价值'观察', 然后三角洲包含以值为值的新观察的预测间隔的半宽度X

更多关于

全部收缩

可估计预测的置信区间

当估计的雅比尼亚型号不具有完整等级时,那么可能无法在所有预测点构建明智的置信区间。在这种情况下,nlpredci.仍然试图为任何人构建置信区间可估计预测点。

例如,假设您适合线性函数 F X 一世 β = β 1 X 一世 1 + β 2 X 一世 2 + β 3. X 一世 3. 在设计矩阵中的点

X = 1 1 0. 1 1 0. 1 1 0. 1 0. 1 1 0. 1 1 0. 1

估计的雅各比比亚在价值观中 X 设计矩阵本身, j = X 因此,雅各比比不是完整的排名:

RNG('默认'重复性的%y = randn(6,1);linfun = @(b,x)x * b;beta0 = [1; 1; 1];x = [REPMAT([1 1 0],3,1);Repmat([1 0 1],3,1)];[beta,r,j] = nlinfit(x,y,linfun,beta0);
警告:解决方案的雅可碧展处于不良状态,可能估计某些型号参数(它们不可识别)。在制作预测时使用谨慎。>在283年的Nlinfit

在这个例子中,nlpredci.只能在满足线性关系的点处计算预测间隔

X 一世 1 = X 一世 2 + X 一世 3.

如果您尝试计算非识别点的预测的置信区间,nlpredci.回报对于相应的间隔半宽:

Xpred = [1 1 1; 0 1 -1; 2 1 1];[ypred,delta] = nlpredci(林春,xpred,beta,r,'雅各比亚'j)
YPRED = -0.0035 0.0798 -0.0047 DELTA = NAN 3.8102 3.8102
在这里,第一个元素三角洲因为第一排Xpred.不满足所需的线性依赖性,因此不是一种可估计的对比度。

尖端

  • 为了计算复杂参数或数据的置信区间,您需要将问题拆分为其真实和虚部。在呼唤时nlinfit.

    1. 定义您的参数矢量bet作为原始参数向量的真实和虚部的串联。

    2. 连接响应矢量的真实和虚部y作为一个矢量。

    3. 修改您的模型功能Modelfun.接受X和纯粹的真实参数矢量,并返回装配值的真实和虚部的串联。

    随着这种方式制定的问题,nlinfit.计算真正的估计,置信区间是可行的。

算法

  • nlpredci.对待残差中的值,R.或者是雅各比亚,j,作为缺失的值,忽略相应的观察。

  • 如果是雅各比亚,j,没有完整的列等级,那么一些模型参数可能是不合格的。在这种情况下,nlpredci.试图建造可估计预测的置信区间和回报对于那些不是。

参考

[1] Lane,T.P.和W.H. Dumouchel。“多元回归中的同步置信区间。”美国统计学家。卷。48,4,1994,第315-321页。

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

在R2006A之前介绍