主要内容

nlpredci

非线性回归预测置信区间

描述

例子

(Ypred,δ)= nlpredci (modelfun,X,β,R“柯伐合金”,CovB)收益预测,Ypred,95%的置信区间的半宽度,δ非线性回归模型modelfun在输入值X。在调用之前nlpredci,使用nlinfit以适应modelfun估计系数,β残差,Rvariance-covariance矩阵,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-Watson模型数据使用初始值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-Watson模型数据使用初始值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) + (2) * exp (- b (3) * x));rng (“默认”)%的再现性b = [1; 3; 2);x = exprnd (2100 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,选择);

画出拟合回归模型同时95%置信界限。

xrange = min (x): . 01:马克斯(x);(ypredδ)= nlpredci (modelfun xrange,β,R,“柯伐合金”CovB,MSE的、MSE、“SimOpt”,“上”);降低= ypred -三角洲;上= ypred +δ;图()图(x, y,“柯”)%观测数据持有情节(xrange ypred,“k”,“线宽”2)图(xrange(低;上),“r——”,“线宽”,1.5)

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。一个或多个行显示的值只使用标记

加载示例数据。

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

指定一个函数处理观察权重,然后配合Hougen-Watson模型使用指定的观测率数据权重函数。

= 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-Watson模型使用合并后的误差方差率数据模型。

[β,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

估计variance-covariance拟合系数矩阵,β,指定为variance-covariance矩阵返回前一个调用nlinfit

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

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“阿尔法”,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,并返回一个N1使用估计误差模型向量误差方差
均方误差 均方误差
ScheffeSimPred 矫正人员同时预测参数间隔当使用估计的误差模型
WeightFunction 逻辑与价值真正的如果你使用一个定制的权函数之前nlinfit
FixedWeights 逻辑与价值真正的如果您使用固定权重以前nlinfit
RobustWeightFunction 逻辑与价值真正的如果你使用健壮的拟合之前nlinfit

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

如果你使用一个健壮的选项nlinfit,那么你必须指定MSE正确预测新观测时考虑的配件。如果你不指定MSEnlpredci从残差计算均方误差,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);
警告:在解决方案是坏脾气的雅可比矩阵,和一些模型参数估计可能不是好(他们不识别)。使用谨慎做出预测。在nlinfit > 283

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

x 1 = x 2 + x 3

如果你想计算置信区间预测nonidentifiable点,nlpredci返回相应区间的半宽度:

xpred = [1 1 1 0 1 1; 2 1 1];(ypredδ)= nlpredci (linfun xpred,β,R,的雅可比矩阵,J)
ypred =δ=南3.8102 -0.0035 0.0798 -0.0047 3.8102
的第一个元素δ因为第一行xpred不满足要求的线性相关,因此不是一个有价值的对比。

提示

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

    1. 定义你的参数向量β串联的实部和虚部的原始参数向量。

    2. 连接响应向量的实部和虚部Y作为一个单独的向量。

    3. 修改您的模型函数modelfun接受X和纯粹的参数向量,并返回一个连接的实部和虚部拟合值。

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

算法

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

  • 如果雅可比矩阵,J,没有满列秩,然后可能nonidentifiable模型的一些参数。在这种情况下,nlpredci试图构建置信区间为有价值的预测,并返回对于那些不是。

引用

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

[2]seb, g·a·F。,c . j .野生。非线性回归。新泽西州霍博肯:Wiley-Interscience, 2003年。

版本历史

之前介绍过的R2006a