在Excel中使用linest的二次回归 - 不完整的数据集

时间:2017-05-21 12:22:24

标签: excel

我之前使用LINEST对不完整数据集进行线性回归。线程Missing values in MS Excel LINEST, TREND, LOGEST and GROWTH functions给了我所需的所有答案。

我的数据集是:

D    E
12   1,23
12,5 1,28
13   1,33
13,5 missing    
14   1,41
14,5 1,47
15   1,53
15,5 1,56
16   missing
16,5 1,66
17   1,70
17,5 1,72
18   1,66

使用链接中提到的技巧,我创建了一个带有额外列的新表

A           B    C
1           12   1,23
1           12,5 1,28
1           13   1,33
0           13,5 0  
1           14   1,41
1           14,5 1,47
1           15   1,53
1           15,5 1,56
0           16   0
1           16,5 1,66
1           17   1,70
1           17,5 1,72
1           18   1,66

然后使用公式LINEST(C1:C13; A1:B13; 1; 0)计算y = Ax + B的A和B.

现在我的问题很相似,但这次我需要进行二次回归。 Normaly使用完整的数据集我将使用公式LINEST(E1:E13; D1:D13 ^ {1 \ 2}; 1; 0)创建y = Ax ^ 2 + Bx + C的A,B和Y数组

问题是LINEST似乎不允许我使用与线性回归相同的解决方案,在这种情况下我会使用LINEST(C1:C13; A1:B13 ^ {1 \ 2}; 1; 0),但它不起作用: - (

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

第一步是创建一个紧凑的数据列表,而不用缺少

F1 中输入1.
F2 中输入:

=IF(E2<>"missing",1+MAX($F$1:F1),"")

并复制下来:

enter image description here
G1 H1 中输入:

=IFERROR(INDEX(D:D,MATCH(ROW(),$F:$F,0)),"")
=IFERROR(INDEX(E:E,MATCH(ROW(),$F:$F,0)),"")

并将其复制下来:

enter image description here

获取系数:

Y = A * X 2 + B * X + C
(其中 X - 值在列 G Y - 值在列 H

A 使用:

=INDEX(LINEST(H1:H11,G1:G11^{1,2}),1)

B 使用:

=INDEX(LINEST(H1:H11,G1:G11^{1,2}),1,2)

C 使用:

=INDEX(LINEST(H1:H11,G1:G11^{1,2}),1,3)