Excel中使用LINEST的二次和三次回归

Posted

技术标签:

【中文标题】Excel中使用LINEST的二次和三次回归【英文标题】:Quadratic and cubic regression in Excel using LINEST 【发布时间】:2016-08-17 11:46:07 【问题描述】:

我正在尝试在 Excel 2013 中使用 LINEST 来获取三次函数的系数,但根据此链接 MS KB828533,LINEST 不适用于非线性函数。显然这是因为处理共线性的方式。此处Quadratic and cubic regression in Excel 提出了类似的问题,但并未解决问题。

Excel 的内置 Column Chart | Trendline (3rd degree poly) 产生正确的系数。但是,LINESTData Analysis | Regression 都给出了错误的系数。

编辑:Excel 的内置 Column Chart 确实 NOT 为多项式生成正确的系数。仅将Column Chart 趋势线用于线性数据! (请看答案)。

这是我的数据:

x     y 
2006 7798 
2007 8027 
2008 9526 
2009 11661 
2010 16014 
2011 18731 
2012 23405 
2013 25294 
2014 28578 

我只能用这个得到第三个系数(这里是x3):

=LINEST(y;(x-AVERAGE(x))^1,2,3)

结果:

系数图表 LINEST x3 -62.295 -62.295 x2 1098.254 163.834 x1 -2746.214 3564.226 intcpt 9528.659 15467.104 正确 x3 正确,其余错误

我也尝试过像这样更复杂的LINEST

=MMULT(LINEST(y;(x-AVERAGE(x))^1,2,3);
IFERROR(COMBIN(3;2;1;0;3,2,1,0)*(-AVERAGE(x))^(3;2;1;0-3,2,1,0);0))

但以类似的方式,只有x3 是正确的,其余的都是错误的。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

问题解决了。事实证明,使用anything else but XY Scatter Plot 计算多项式(或趋势线)的回归系数,会产生错误的系数

最后,不要不要使用 折线条形柱形图表来计算多项式的回归系数。下图显示了计算系数的差异 - 上图使用XY Scatter Plot 并产生正确的系数,而下图使用Column 图表创建。两个数字使用相同的数据。

【讨论】:

以上是关于Excel中使用LINEST的二次和三次回归的主要内容,如果未能解决你的问题,请参考以下文章

小工具,大作用:教你如何利用EXCEL函数LINEST做回归分析

为啥函数第一次调用比第二次和第三次调用花费更多的时间等等?

matlab练习程序(贝塞尔曲线)

猿创征文|时间序列分析算法之二次指数平滑法和三次指数平滑法详解+Python代码实现

python statsmodels - 回归中的二次项

如何访问传递给 MEX 函数的矩阵成员?