nlpredci

非线性回归预测的置信区间

描述

例子

[Ypred,三角洲)= nlpredci (modelfun,X,公测,R“柯伐合金”,CovB)收益预测,Ypred, 95%置信区间半宽度,三角洲用于非线性回归模型modelfun在输入值X。在调用nlpredci, 采用nlinfit以适应modelfun得到估计系数,公测,残差R,方差-协方差矩阵,CovB

例子

[Ypred,三角洲)= nlpredci (modelfun,X,公测,R“柯伐合金”,CovB,名称,值)使用由一个或多个名称-值对参数指定的附加选项。

例子

[Ypred,三角洲)= nlpredci (modelfun,X,公测,R'雅可比',J)收益预测,Ypred, 95%置信区间半宽度,三角洲用于非线性回归模型modelfun在输入值X。在调用nlpredci, 采用nlinfit以适应modelfun得到估计系数,公测,残差R雅可比矩阵,J

如果您使用一个健壮的选项nlinfit,那么你应该使用柯伐合金语法,而不是雅可比矩阵语法。variance-covariance矩阵,CovB,需要适当地考虑稳健拟合。

例子

[Ypred,三角洲)= nlpredci (modelfun,X,公测,R'雅可比',J,名称,值)使用由一个或多个名称-值对参数指定的附加选项。

例子

全部折叠

加载样本数据。

S =负载('反应');X = S.reactants;y = S.rate;beta0 = S.beta;

使用初始值拟合Hougen沃森模型的速率数据beta0

-β,R,J = nlinfit(X,Y,@ hougen,beta0);

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

(ypredδ)= nlpredci (@hougen,意味着(X),β,R,的雅可比矩阵,J)
ypred = 5.4622
δ= 0.1921

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

(ypred-delta ypred +δ)
ans =1×25.2702 5.6543

加载样本数据。

S =负载('反应');X = S.reactants;y = S.rate;beta0 = S.beta;

使用初始值拟合Hougen沃森模型的速率数据beta0

-β,R,J = nlinfit(X,Y,@ hougen,beta0);

得到具有反应物水平的新观测的预测响应和95%预测区间半宽度[100100100]

(ypredδ)= nlpredci (@hougen,[100100100],β,R,的雅可比矩阵,J,...“PredOpt”,“观察”)
ypred = 1.8346
δ= 0.5101

计算所述新的观察的95%预测区间。

(ypred-delta ypred +δ)
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);

使用鲁棒拟合选项拟合非线性模型。

选择= statset (“nlinfit”);选择。RobustWgtFun =“bisquare”;beta0 = [2; 2; 2];-β,R,J,CovB,MSE] = nlinfit(X,Y,modelfun,beta0,OPTS);

绘制拟合回归模型和同时95%置信限。

的xrange =分钟(X):. 01:MAX(X);[ypred,δ= nlpredci(modelfun,x范围,β,R,“柯伐合金”CovB,...MSE的、MSE、“SimOpt”,“上”);降低= ypred  - 三角;上部= ypred +增量;图()情节(X,Y,'KO')%观察到的数据持有情节(xrange ypred,“k”,“线宽”,2)图(x范围,[降低;上部]“r——”,“线宽”,1.5)

加载样本数据。

S =负载('反应');X = S.reactants;y = S.rate;beta0 = S.beta;

指定的功能句柄观察权重,然后使用指定的观测权重函数拟合Hougen沃森模型的速率数据。

= 1;b = 1;权值= @(yhat) 1。/ ((a + b * abs (yhat)) ^ 2);[β,R, J, CovB] = nlinfit (X, y, @hougen beta0,“重量”、重量);

计算含反应物的新观测值的95%预测区间[100100100]使用观察权重函数。

(ypredδ)= nlpredci (@hougen,[100100100],β,R,的雅可比矩阵,J,...“PredOpt”,“观察”,“重量”、重量);(ypred-delta ypred +δ)
ans =1×21.5264 - 2.1033

加载样本数据。

S =负载('反应');X = S.reactants;y = S.rate;beta0 = S.beta;

使用组合的误差方差模型拟合Hougen沃森模型的速率数据。

-β,R,J,CovB,MSE,S] = nlinfit(X,Y,@ hougen,beta0,“ErrorModel”,“组合”);

计算含反应物的新观测值的95%预测区间[100100100]使用拟合的误差方差模型。

(ypredδ)= nlpredci (@hougen,[100100100],β,R,的雅可比矩阵,J,...“PredOpt”,“观察”,“ErrorModelInfo”,年代);(ypred-delta ypred +δ)
ans =1×21.3245 - 2.3447

输入参数

全部折叠

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

例如,要指定hougen非线性回归函数,使用函数句柄@hougen

数据类型:function_handle

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

数据类型:|

估计的回归系数,指定为前一个调用返回的拟合系数的向量nlinfit

数据类型:|

残差拟合modelfun,指定为残差矢量通过返回先前调用nlinfit

估计方差 - 协方差矩阵拟合系数公测,指定为前一个调用返回的方差-协方差矩阵nlinfit

非线性回归模型的估计雅可比矩阵,modelfun,指定为前一次调用返回的雅可比矩阵nlinfit

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“阿尔法”,0.1,“PredOpt”,“观察”为新观测指定90%的预测间隔。

为置信区间显着性水平,指定为逗号分隔的一对组成的'Α'以及(0,1)范围内的标量值。如果α是有价值的α,然后nlpredci返回与100的间隔×(1-α)%的置信水平。

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

例子:'阿尔法',0.1

数据类型:|

有关错误模型拟合的信息,指定为逗号分隔的对组成“ErrorModelInfo”以及前一个调用返回的结构nlinfit

ErrorModelInfo只对返回的预测区间有影响PredOpt的值“观察”。如果你不使用ErrorModelInfo,然后nlpredci假设误差方差模型为'不变'

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

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

对于拟合的非线性回归模型,均方误差(MSE)为逗号分隔对MSE的和前一个调用返回的MSE值nlinfit

如果您使用一个健壮的选项nlinfit,则在预测新观测值时,必须指定MSE,以适当考虑稳健拟合。如果不指定MSE,则nlpredci根据残差计算MSE,R,而没有考虑稳健拟合。

例如,如果均方误差是MSE值由归国nlinfit,那么你可以指定'MSE',MSE

数据类型:|

预测时间间隔为计算,指定为逗号分隔的一对组成的“PredOpt”,要么“曲线”要么“观察”

  • 如果你指定了值“曲线”,然后nlpredci返回观测值处估计曲线(函数值)的置信区间X

  • 如果你指定了值“观察”,然后nlpredci返回新观测值的预测区间X

如果您指定“观察”之后使用一个健壮的选项nlinfit,那么你还必须指定一个值均方误差提供对均方误差的稳健估计。

例子:“PredOpt”、“观察”

用于指定同时边界指示符,指定为逗号分隔的一对组成的“SimOpt”,要么“关闭”要么“上”。使用价值“关闭”计算非同时界“上”同时界限。

观察权值,由逗号分隔的对组成“重量”和正标量的值的矢量或功能句柄。默认是没有权重。

  • 如果指定的权重向量,那么它必须有相同数量的元素的观测(行)数X

  • 如果您为权重指定一个函数句柄,那么它必须接受一个包含预测响应值的向量作为输入,并返回一个包含实际正权值的向量作为输出。

给定的权重,W,nlpredci估计在观测误差方差通过MSE *(1 / W(i))的,在那里均方误差是使用指定的均方误差值均方误差

例子:“重量”,@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)];[β,R, J] = nlinfit (X, y, linfun beta0);
警告:解的雅可比矩阵是病态的,一些模型参数可能无法很好地估计(无法识别)。预测时要谨慎。> In nlinfit at 283

在这个例子中,nlpredci只能在满足线性关系的点上计算预测区间吗

x 1 = x 2 + x 3.

如果你试图计算预测在不可识别点的置信区间,nlpredci返回用于相应的时间间隔半宽度:

xpred = [1 1 1;0 1 -1;2 1 1];(ypredδ)= nlpredci (linfun xpred,β,R,的雅可比矩阵,J)
ypred = -0.0035 0.0798 -0.0047 delta = NaN 3.8102 3.8102
这里,第一元件三角洲因为第一行xpred不满足所需的线性相关,因此不是一个可估计的对比。

提示

  • 要计算复杂参数或数据的置信区间,需要将问题分为实部和虚部。当调用nlinfit:

    1. 定义你的参数向量公测即原参数向量的实部和虚部的拼接。

    2. 级联的响应矢量的实部和虚部Y作为单个向量。

    3. 修改你的模型功能modelfun接受X以及纯实参数向量,并返回拟合值的实部和虚部的串联。

    这个问题制定这样,nlinfit计算真正的估计和置信区间是可行的。

算法

  • nlpredci对待残差的值,R或雅可比,J,作为缺失值,忽略相应的观测值。

  • 如果雅可比,J,不必列满秩,那么一些模型参数的可能是nonidentifiable。在这种情况下,nlpredci试图构建置信区间估预测,并返回对于那些不是的。

参考文献

[1] Lane, t。p。和w。h。DuMouchel。多元回归中的同时置信区间美国统计学家。第48卷,第4期,1994年,第315-321页。

[2] Seber, g.a. F.,和c.j. Wild。非线性回归。新泽西州霍博肯市:威利 - InterScience的,2003。

R2006a前推出