Excel - LINEST 函数
说明
LINEST 函数使用"最小二乘法"计算直线的统计数据,以计算最适合您数据的直线,然后返回描述该直线的数组。
您还可以将 LINEST 与其他函数结合使用,以计算未知参数为线性的其他类型模型的统计数据,包括多项式、对数、指数和幂级数。
由于此函数返回一个值数组,因此必须将其作为数组公式输入。
语法
LINEST (known_y's, [known_x's], [const], [stats])
参数
参数 | 描述 | 必需/可选 |
---|---|---|
known_y's |
关系 y = mx + b 中您已经知道的一组 y 值。 如果 known_y 的范围位于单列中,则 known_x 的每一列都将解释为一个单独的变量。 如果 known_y 的范围包含在单行中,则 known_x 的每一行都将解释为一个单独的变量。 |
必需 |
known_x |
您可能已经知道关系 y = mx + b 中的一组 x 值。 known_x 的范围可以包含一组或多组变量。 如果仅使用一个变量,known_y 和 known_x 可以是任意形状的范围,只要它们具有相同的维度。 如果使用多个变量,known_y's 必须是一个向量(即高度为一行或宽度为一列的范围)。 如果省略 known_x's,则假定它是与 known_y's 大小相同的数组 {1,2,3,...}。 |
可选 |
const | 一个逻辑值,指定是否强制常数 b 等于 0。 如果 const 为 TRUE 或省略,则正常计算 b。 如果 const 为 FALSE,则将 b 设置为 0,并调整 m 值以适应 y = mx。 |
可选 |
stats | 指定是否返回附加回归统计数据的逻辑值。 如果 stats 为 TRUE,LINEST 将返回附加回归统计数据。因此,返回的数组为 {mn, mn-1 ,..., m1, b; sen ,sen-1, ..., se1, seb; r2, sey; F, df; ssreg, ssresid}。 如果 stats 为 FALSE 或省略,LINEST 将仅返回 m 系数和常数 b。附加回归统计数据如下表所示。 |
可选 |
附加回归统计数据
Sr.No | 统计 &描述 |
---|---|
1 |
se1,se2,...,sen 系数 m1,m2,...,mn 的标准误差值。 |
2 |
seb 常数 b 的标准误差值(const 为 FALSE 时 seb = #N/A)。 |
3 |
r2 判定系数。比较估计值和实际 y 值,值的范围从 0 到 1。如果为 1,则样本具有完美的相关性 — 估计的 y 值和实际 y 值之间没有差异。在另一个极端,如果判定系数为 0,则回归方程对于预测 y 值没有帮助。有关如何计算 r2 的信息,请参阅下面的注释。 |
4 |
sey y 估计的标准误差。 |
5 |
F F 统计量或 F 观测值。使用 F 统计量来确定因变量和自变量之间观察到的关系是否偶然发生。 |
6 |
df 自由度。使用自由度可帮助您在统计表中找到 F 临界值。将您在表中找到的值与 LINEST 返回的 F 统计量进行比较,以确定模型的置信度。有关如何计算 df 的信息,请参阅下面的注释。 |
7 |
ssreg 回归平方和。 |
8 |
ssreg 残差平方和。有关如何计算 ssreg 和 ssresid 的信息,请参阅下面的注释。 |
注释
直线方程为 −
y = mx + b
或
y = m1x1 + m2x2 + ... + b
如果有多个 x 值范围,其中依赖的 y 值是独立 x 值的函数,则 −
m 值是与每个 x 值对应的系数,b 是常数值。
请注意,y、x 和 m 可以是向量。
LINEST 函数返回的数组为 {mn, mn-1… m1, b}。
LINEST 还可以返回其他回归统计数据
您可以用斜率和 y 截距 − 描述任何直线。
斜率 (m) −
要找到直线的斜率(通常写为 m),请在线上取两个点,(x1,y1) 和 (x2,y2)。斜率等于
(–2 - y1)/(–2 - x1)。
Y 截距 (b) −
直线的 y 截距,通常写为 b,是直线与 y 轴相交点处的 y 值。
直线方程为 y = mx + b。一旦知道 m 和 b 的值,您就可以通过将 y 或 x 值代入该方程来计算直线上的任何点。您还可以使用 TREND 函数。
当您只有一个独立的 x 变量时,您可以使用以下公式直接获得斜率和 y 截距值 −
斜率 −
=INDEX (LINEST (known_y's,known_x's),1)
Y 截距 −
=INDEX (LINEST (known_y's,known_x's),2)
LINEST 函数计算的直线的准确性取决于数据的散布程度。数据越线性,LINEST 模型就越准确。
LINEST 使用最小二乘法来确定数据的最佳拟合。当您只有一个独立的 x 变量时,m 和 b 的计算基于以下公式 −
$$m=\frac{\sum \left ( x-\bar{x} ight )\left ( y-\bar{y} ight )}{\sum \left ( x- \bar{x} ight )^2}$$
其中 x 和 y 是样本均值。即
x = AVERAGE (known x's)
y = AVERAGE (known_y's)
直线和曲线拟合函数 LINEST 和 LOGEST 可以计算出最适合您数据的直线或指数曲线。但是,您必须决定哪个结果最适合您的数据。您可以计算 TREND (known_y's,known_x's) 来得到直线,或计算 GROWTH(known_y's, known_x's) 来得到指数曲线。这些函数(不省略 known_x's 参数)返回在您的实际数据点处沿该直线或曲线预测的 y 值数组。然后,您可以将预测值与实际值进行比较。您可能希望将它们都绘制成图表以进行直观比较。
在回归分析中,Excel 为每个点计算该点的估计 y 值与其实际 y 值之间的平方差。这些平方差的总和称为残差平方和 ssresid。然后,Excel 计算总平方和 sstotal。当 const 参数 = TRUE 或省略时,总平方和是实际 y 值与 y 值平均值之间的平方差的总和。
当 const 参数 = FALSE 时,总平方和是实际 y 值的平方和(不从每个单独的 y 值中减去平均 y 值)。然后可以通过以下公式找到回归平方和 ssreg:ssreg = sstotal - ssresid。与总平方和相比,残差平方和越小,判定系数 r2 的值就越大,判定系数 r2 是衡量回归分析方程解释变量间关系的指标。r2 的值等于 ssreg/sstotal。
在某些情况下,一个或多个 X 列(假设 Y 和 X 都在列中)可能在其他 X 列存在的情况下没有额外的预测值。也就是说,消除一个或多个 X 列可能会导致预测的 Y 值同样准确。在这种情况下,应从回归模型中省略这些冗余的 X 列。这种现象称为"共线性",因为任何冗余的 X 列都可以表示为非冗余 X 列的倍数之和。
LINEST 函数检查共线性,并在识别出冗余的 X 列时将其从回归模型中删除。在 LINEST 输出中,删除的 X 列除了具有 0 se 值外,还具有 0 系数。如果删除一个或多个多余的列,则 df 会受到影响,因为 df 取决于实际用于预测目的的 X 列的数量。
如果由于删除了多余的 X 列而更改了 df,则 sey 和 F 的值也会受到影响。在实践中,共线性应该相对少见。但是,更有可能出现共线性的一种情况是,当某些 X 列仅包含 0 和 1 值作为实验中的受试者是否属于特定组成员的指标时。如果 const = TRUE 或省略,LINEST 函数会有效地插入一个全为 1 值的附加 X 列来对截距进行建模
当有 k 个 known_x 列并且没有由于共线性而从模型中删除任何 X 列时,df 的值按如下方式计算 −
如果 const = TRUE 或省略,则 df = n – k – 1
如果 const = FALSE,则 df = n – k
在这两种情况下,由于共线性而删除的每个 X 列都会使 df 的值增加 1。
输入数组常量(例如 known_x's)作为参数时,使用逗号分隔包含在同一行中的值,使用分号分隔行。分隔符可能因区域设置而异。
请注意,如果回归方程预测的 y 值超出了用于确定方程的 y 值的范围,则它们可能无效。
LINEST 函数中使用的底层算法与 SLOPE 和 INTERCEPT 函数中使用的底层算法不同。当数据不确定且共线时,这些算法之间的差异可能导致不同的结果。
除了使用 LOGEST 计算其他回归类型的统计数据外,您还可以使用 LINEST 计算一系列其他回归类型,方法是输入 x 和 y 变量的函数作为 LINEST 的 x 和 y 系列。例如,以下公式 −
=LINEST (yvalues, xvalues^COLUMN($A:$C))
当您有一列 y 值和一列 x 值来计算 − 的三次(3 阶多项式)近似值时有效
y = m1*x + m2*x^2 + m3*x*3 + b
您可以调整此公式来计算其他类型的回归,但在某些情况下,它需要调整输出值和其他统计数据。
LINEST 函数返回的 F 检验值与 FTEST 函数返回的 F 检验值不同。 LINEST 返回 F 统计量,而 FTEST 返回概率。
如果 known_x 的数组与 known_y 的数组长度不同,LINEST 将返回 #REF! 错误值。
如果提供的 known_x 或 known_y 数组中的任何值不是数字(这可能包括数字的文本表示,因为 LINEST 函数不会将它们识别为数字),LINEST 将返回 #VALUE! 错误值。
如果 const 或 stats 参数中的任何一个都无法计算为 TRUE 或 FALSE,LINEST 将返回 #VALUE!错误值。
适用性
Excel 2007、Excel 2010、Excel 2013、Excel 2016
示例
