主要内容

nlpredci

非线性回归预测置信区间

描述

例子

Ypredδ) = nlpredci (modelfunXβR“柯伐合金”,CovB收益预测,Ypred95%置信区间半宽度,δ,为非线性回归模型modelfun在输入值X.在调用之前nlpredci,使用nlinfit以适应modelfun然后得到估计的系数,β残差,R,方差-协方差矩阵,CovB

例子

Ypredδ) = nlpredci (modelfunXβR“柯伐合金”,CovB名称,值使用由一个或多个名称-值对参数指定的其他选项。

例子

Ypredδ) = nlpredci (modelfunXβR“雅可比矩阵”,J收益预测,Ypred95%置信区间半宽度,δ,为非线性回归模型modelfun在输入值X.在调用之前nlpredci,使用nlinfit以适应modelfun然后得到估计的系数,β残差,R雅可比矩阵,J

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

例子

Ypredδ) = nlpredci (modelfunXβ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”“上”);Lower = ypred - delta;Upper = ypred + delta;图()图(x, y,“柯”%观测数据持有情节(xrange ypred,“k”“线宽”2)图(xrange(低;上),“r——”“线宽”, 1.5)

图中包含一个axes对象。axis对象包含4个line类型的对象。

加载示例数据。

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

拟合系数的估计方差-协方差矩阵,β的前一个调用返回的方差-协方差矩阵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,并返回N-乘1的误差方差向量使用估计误差模型
均方误差 均方误差
ScheffeSimPred Scheffé参数为使用估计误差模型时的同时预测间隔
WeightFunction 逻辑与价值真正的如果您使用自定义权重函数之前nlinfit
FixedWeights 逻辑与价值真正的如果你之前用的是固定权重nlinfit
RobustWeightFunction 逻辑与价值真正的如果你之前用过稳健拟合nlinfit

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

如果您使用健壮的选项nlinfit,那么在预测新的观测结果时必须指定均方误差,以适当地考虑鲁棒拟合。如果不指定MSE,则nlpredci从残差中计算MSE,R,不考虑鲁棒拟合。

例如,如果均方误差返回的MSE值是多少nlinfit,然后可以指定MSE, MSE

数据类型:|

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

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

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

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

例子:“PredOpt”、“观察”

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

观察权值,用逗号分隔的对表示“重量”一个由正标量值组成的向量或者一个函数句柄。默认是没有权重。

  • 如果你指定一个权重向量,那么它的元素数量必须与观察(行)的数量相同X

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

给定的权重,Wnlpredci估计观察时的误差方差通过mse * (1 / W (i)),在那里均方误差是否使用了均方误差值均方误差

例子:“重量”,@WFun

数据类型:||function_handle

输出参数

全部折叠

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

置信区间半宽度,作为具有相同行数的向量返回X.默认情况下,δ的非同时95%置信区间的半宽度modelfun在观察中X.您可以计算置信区间的下界和上界Ypred-delta而且Ypred +δ,分别。

如果“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.

如果你试图计算不可识别点上预测的置信区间,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,没有完整的列秩,那么一些模型参数可能是不可识别的。在这种情况下,nlpredci试图构建可估计预测的置信区间,并返回对于那些没有的。

参考文献

雷恩,T. P.和W. H.杜穆谢尔。"多元回归中的同步置信区间"美国统计学家.1994年第4期,第48卷,第315-321页。

西伯,g.a.f和c.j.怀尔德。非线性回归.霍博肯,新泽西州:威利- interscience, 2003。

版本历史

之前介绍过的R2006a

Baidu
map