我同意Glen_b。在回归问题中,主要重点是参数,而不是自变量或预测变量x。然后,人们可以决定是要使用简单的变换线性化问题还是照此进行。
线性问题:计算问题中的参数数量,并检查它们是否均具有幂1。例如,。该函数在是非线性的。但是对于回归问题,的非线性不是问题。必须检查参数是线性的还是线性的。在这种情况下,,, ...都具有幂1。因此,它们是线性的。y=ax+bx2+cx3+dx2/3+e/x+fx−4/7xxabcf
请注意,在,虽然a看起来具有幂1,但是在展开时
。您可以清楚地看到它是一个非线性参数,因为a的幂大于1。但是,可以通过调用对数变换来线性化此问题。即,将非线性回归问题转换为线性回归问题。y=exp(ax)exp(ax)=1+ax/1!+(ax)2/2!+…
类似地,是一个逻辑函数。它具有三个参数,即,和。参数和幂大于1,并且在展开时它们分别乘以因此,它们不是线性的,但是也可以使用适当的替换将它们线性化,方法是先设置,然后在两侧调用对数函数以线性化。y=a/(1+bexp(cx)abcbc(a/y)−1=Y
现在假设。关于参数,这再次是非线性的。但是,它不能被线性化。需要使用非线性回归。y=a1/(1+b1exp(c1x))+a2/(1+b2exp(c2x))
原则上,使用线性策略解决非线性回归问题不是一个好主意。因此,使用线性回归解决线性问题(当所有参数都具有幂1时),如果参数是非线性的,则采用非线性回归。
在您的情况下,将权重函数替换回主函数中。参数将是唯一具有幂1的参数。所有其他参数都是非线性的(最终与和相乘(这两个都是非线性参数),因此也都是非线性的,因此这是一个非线性回归问题。β 1 θ 1 θ 2β0β1θ1θ2
采用非线性最小二乘法求解。巧妙地选择初始值,并使用多起点方法来找到全局最小值。
这个观点会有所帮助(尽管它没有讨论全局解决方案):http : //www.youtube.com/watch?v=3Fd4ukzkxps
在Excel电子表格中使用GRG非线性求解器(通过转到选项-加载项-Excel加载项,然后选择求解器加载项来安装求解器工具包),并通过在参数列表中指定间隔和要求,从而在选项列表中调用多重启动如果约束精度和收敛性较小,则可以得到整体解。
如果您使用的是Matlab,请使用全局优化工具箱。它具有multistart和globalsearch选项。在此处
和
此处,某些代码可用于全局解决方案。
如果您使用的是Mathematica,请看这里。
如果您使用的是R,请在此处尝试。