主要内容

加权非线性回归

这个例子显示了如何拟合非线性回归模型的数据与非常数误差方差。

当测量误差具有相同的方差时,正则非线性最小二乘算法是合适的。当该假设不成立时,使用加权拟合是合适的。这个例子展示了如何使用权重fitnlm功能。

适合度的数据和模型

我们将使用收集的数据来研究由工业和国内垃圾引起的水污染。这些数据在框,G.P.,W.G. Hunter和J.s.中详细描述了详细描述猎人,实验者统计(Wiley,1978,PP。483-487)。响应变量是Mg / L中的生物化学需氧量,并且预测变量是在几天内孵育时间。

X = [1 2 3 5 7 10]';Y = [109 149 149 191 213 224]';情节(x, y,'ko');包含('孵化(天),x');ylabel ('生化氧气需氧(mg / l),y');

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

w = [1 1 5 5 5 5]'

我们用来拟合这些数据的模型是一个缩放的指数曲线,随着x变大而变得水平。

modelfun = @(b,x)b(1)。*(1-exp(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)) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ b1 225.17 10.7 21.045 3.0134e-05 b2 0.40078 0.064296 6.2333 0.0033745观测数:6,误差自由度:4均方根误差:24 R-Squared:0.885 F-statistic vs. zero model: 696, p-value = 8.2e-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 ('是');传奇({'数据''加权贴合''95%的置信限制'},'地点''东南');

请注意,两个下行点也不适合曲线作为其余点。这就像你期望加权契合一样。

对于在指定值的X的值下,还可以估计预测间隔。这些间隔将有效地假设1的重量或测量精度为1。

[ypred,ypredci] =预测(wnlm,xx,'同时',真的,'预言''观察');情节(x, y,'ko'xx ypred,'b-',xx,ypredci,'B:');包含('X');ylabel ('是');传奇({'数据''加权贴合'“95%预测限制”},'地点''东南');

权重的绝对尺度实际上并不影响参数估计。将权重按任何常数重新调整,我们都会得到相同的估计值。但它们确实会影响置信界限,因为置信界限表示权值为1的观察值。这里你可以看到,与置信限相比,权重较高的点似乎太接近拟合线。

虽然这吧预测方法不允许我们改变权重,我们可以做一些后处理,调查曲线如何寻找一个更精确的估计。假设我们对一个基于五个测量值平均值的新观测结果感兴趣,就像图中的最后四个点一样。我们可以将间隔的宽度减小根号5。

halfwidth = ypredci(:,2) - 是;newwidth = halfwidth / sqrt(5);newci = [ypred-newwidth,ypred + newwidth];情节(x, y,'ko'xx ypred,'b-',xx,newci,'r:');包含('X');ylabel ('是');传奇({'数据''加权贴合'“限制重量= 5”},'地点''东南');

残留分析

除了绘制数据和拟合之外,我们还将符合适合于预测器的残差,以诊断模型的任何问题。残差应出现独立并相同分布,但具有与权重的倒数成比例的方差。我们可以标准化这种方差,使情节更容易解释。

r = wnlm.residuals.raw;绘图(x,r。* sqrt(w),'b ^');包含('X');ylabel ('残留,Yfit  -  Y');

在这片残余地块上有一些系统模式的证据。注意最后四个残差是如何呈线性趋势的,这表明随着x的增加,模型的增长速度可能不够快。此外,残差的大小往往随着x的增加而减小,这表明测量误差可能取决于x。这些值得调查,然而,数据点太少,很难重视这些明显的模式。