可转换为一元线性回归的曲线回归问题

在实际中,人们经常遇到非线性问题。通过变换,有的非线性问题可以被转换为线性问题,从而可以用线性回归的方法来处理。

常用的线性转换方法如表1-16所示。可以利用表中介绍的转换方法对一些比较特殊的函数进行转换,达到线性化的目的。

表1-16 常用线性转换表

模型名称 曲线模型 转 换 线性模型
双曲线 1/y=a+b/x u=1/y,v=1/x u=a+bv
幂函数 y=axb u=lny,v=lnx,c=lna u=c+bv
复合曲线 y=abx u=lny,c=lna,d=lnb u=c+dx
生长曲线 y=e(a+bx) u=lny u=a+bx
指数曲线1 y=aebx u=lny,c=lna u=c+bx
指数曲线2 y=ae(b/x) u=lny,v=1/x,c=lna u=c+bx
对数曲线 y=a+blnx v=lnx y=a+bv
曲线 y=a+b/x v=1/x y=a+bv
S型曲线 y=e(a+be-x) u=1/y,v=ex u=a+bv
逻辑曲线 y=1/(1/u+a(bx)) u=ln(1/y-1/u),c=lna,d=lnb u=c+bx

混凝土的抗压强度随着养护时间的延长而增加。现将一批混凝土制成12个试块,并记录了养护时间T(单位:天)与抗压强度Y(单位:kg/\(c{m}^{2}\)),数据如下所示。

T 2.00 3.00 4.00 5.00 7.00 9.00 12.00 14.00 17.00 21.00 28.00 56.00

Y 35.00 42.00 47.00 53.00 59.00 65.00 68.00 73.00 76.00 82.00 86.00 99.00

解 经过曲线拟合发现,该数据能很好地拟合对数模型,上面的数据可以表达为Y=b\(0\)+b\(1\)lnt的形式。

在命令窗口中输入命令行:

code.matlab
>> T=[2.00 3.00 4.00 5.00 7.00 9.00 12.00 14.00 17.00 21.00 28.00 56.00]';
>> Y=[35.00 42.00 47.00 53.00 59.00 65.00 68.00 73.00 76.00 82.00 86.00 99.00]';
>> X = [ones(12,1) log(T)];
>> [b,bint,r,rint,stats] = regress(Y ,X,0.05)
b =
   21.0058
   19.5285
bint =
   19.4463   22.5653
   18.8943   20.1627
stats =
   1.0e+03 *
  0.0010    4.7069    0.0000    0.0009

所以,该混凝土抗压强度与养护时间之间的关系可以表达为Y=21.0058+19.5285lnt。相关系数的平方值接近于1(stats结构的第一个值)。