加权非线性回归

这个例子展示了如何为具有非恒定误差方差的数据拟合非线性回归模型。

常规的非线性最小二乘算法适用于测量误差方差相同的情况。当该假设不成立时,使用加权拟合是合适的。此示例演示如何使用权重fitnlm功能。

拟合的数据和模型

我们将使用收集到引起工业和生活废弃物研究水体污染的数据。这些数据被详细描述在盒,G.P.,W.G.亨特,和J.S.描述猎人,统计实验者(Wiley出版社,1978年,第483-487)。响应变量是毫克/升生化需氧量,和预测器变量是孵育时间以天。

x = [1 2 3 5 7 10]';y = [109 149 149 191 213];情节(x, y,'KO');包含('孵化(天)中,X');ylabel (“生化需氧量(毫克/升)中,Y”);

我们将假定已知的是,前两次观测的精度低于其余的观测。例如,它们可能是用另一种乐器制作的。重量数据的另一个常见原因是,每个记录观察实际上是几个度量值的平均值在相同的值(x)的数据,假设第一个两个值代表的是单一的原始测量,而其余四个都5原始测量值的平均值。然后,它将是适当的重量通过测量的数量,进入每个观察。

W = [1 1 5 5 5 5]';

我们将对这些数据进行拟合的模型是一个缩放的指数曲线,当x变大时,它将变得水平。

modelFun = @(B,X)B(1)*(1-EXP(-B(2)* X)。)。

根据粗略的视觉拟合,通过这些点绘制的曲线可能在x = 15附近的某个地方达到240左右的水平。我们用240作为b1的起始值,由于e^(- 5*15)比1小,我们用。5作为b2的起始值。

开始= [240;5);

配合而不权重模型

在忽略测量误差的危险是,在配合可以通过不精确的测量被过度地影响,并且可以因此不认为是精确已知的测量提供了良好的配合。让我们来适应没有重量的数据,并将其与分。

NLM = fitnlm(X,Y,modelFun,启动);XX = linspace(0,12)';线(XX,预测(NLM,XX),“线型”,' - ',“颜色”,数k)

给模型加上重量

注意,拟合曲线被拉向前两个点,但似乎错过了其他点的趋势。让我们试着用重量来配合。

modelFun wnlm = fitnlm (x, y,开始,'重量'w)线(xx,预测(wnlm, xx),“颜色”,“b”)
wnlm =非线性回归模型:y ~ b1 * (1 - exp (- b2 * x))估计系数:估计SE tStat pValue说______ __________ b1 e-05 b2 0.40078 0.064296 6.2333 3.0134 225.17 10.7 21.045 0.0033745的观测数量:6,错误自由度:4根均方误差:24平方:0.908,调整平方0.885 f统计量与零模型:696年,假定值= 8.2 e-06

在这种情况下,估计的总体标准差描述了权重或测量精度为1的“标准”观测值的平均变化。

wnlm.RMSE
ans = 24.0096

任何分析的一个重要部分都是对模型拟合精度的估计。系数表显示了参数的标准误差,但我们也可以计算它们的置信区间。

coefCI(wnlm)
ANS = 195.4650 254.8788 0.2223 0.5793

估计响应曲线

接下来,我们将计算拟合响应值和置信区间为他们。默认情况下,这些宽度是逐点置信区间的预测值,但我们会要求同步间隔为整个曲线。

[ypred,ypredci] =预测(wnlm,XX,'同时',真正的);情节(x, y,'KO'xx ypred,'B-',XX,ypredci,'B:');包含('X');ylabel ('Y');传奇({'数据',“加权拟合”,'95%置信区间},'位置','东南');

注意两个downweighted点不被曲线剩余点适合为好。这是你所期望的加权拟合。

它也可以在x的特定值来估计未来的观测值预测区间。这些间隔将在效果假定的权重,或测量精度,1。

[ypred,ypredci] =预测(wnlm,XX,'同时',真的,'预测',“观察”);情节(x, y,'KO'xx ypred,'B-',XX,ypredci,'B:');包含('X');ylabel ('Y');传奇({'数据',“加权拟合”,“95%预测限制”},'位置','东南');

权重的绝对比例实际上并不影响参数估计。将权重调整为任意常数会得到相同的估计值。但它们确实影响置信度界限,因为界限代表的是权重为1的观测值。在这里您可以看到,与置信限相比,权重较高的点似乎太接近拟合线。

虽然预测方法不允许我们改变权重,我们可以做一些后处理,研究曲线如何寻找更精确的估计。假设我们对一个新的观测结果感兴趣,它是基于5次测量的平均值,就像图中最后4个点一样。我们可以把间隔的宽度减少一倍根号(5)。

半宽度= ypredci(:,2)-ypred;newwidth =半宽度/ SQRT(5);newci = [ypred-newwidth,ypred + newwidth];情节(x, y,'KO'xx ypred,'B-',XX,newci,'R:');包含('X');ylabel ('Y');传奇({'数据',“加权拟合”,“限制重量= 5”},'位置','东南');

残留分析

除了绘图数据和配合,我们会从对预测的拟合残差绘图,诊断与模型的任何问题。残差应该出现独立同分布的,但与成比例的权重的逆的方差。我们可以规范这种变化使剧情更容易解释。

R = wnlm.Residuals.Raw;图(X,R。*的sqrt(W)'B ^');包含('X');ylabel ('残差,yFit  -  Y');

在这个残积图中有一些系统模式的证据。请注意最后四个残差是如何呈现线性趋势的,这表明随着x的增加,模型增长的速度可能不够快。同时,残差的大小随着x的增大而减小,说明测量误差可能与x有关。这些值得研究,但是数据点太少,很难对这些明显的模式赋予意义。