使用最小二乘法对已知数据进行最佳直线拟合,并返回描述此直线的数组。因为此函数返回数值数组,所以必须以数组公式的形式输入。
语法
表达式.LinEst(Arg1, Arg2, Arg3, Arg4)
表达式 一个代表 WorksheetFunction 对象的变量。
参数
名称 | 必选/可选 | 数据类型 | 说明 |
---|
Arg1 | 必选 | Variant | Known_y's - 关系表达式 y = mx + b 中已知的 y 值集合。 |
Arg2 | 可选 | Variant | Known_x's - 关系表达式 y = mx + b 中可能已知的可选 x 值集合。 |
Arg3 | 可选 | Variant | Const - 一个逻辑值,用于指定是否强制常量 b 等于 0。 |
Arg4 | 可选 | Variant | Stats - 一个逻辑值,指定是否返回附加回归统计值。 |
返回值
Variant
说明
直线的公式为:
y = mx + b 或者
y = m1x1 + m2x2 + ... + b(如果有多个区域的 x 值)
式中,因变量 y 是自变量 x 的函数值。M 值是与每个 x 值相对应的系数,b 为常量。注意 y、x 和 m 可以是向量。LINEST 函数返回的数组为 {mn,mn-1,...,m1,b}。LINEST 函数还可返回附加回归统计值。
-
如果数组 known_y's 在单独一列中,则 known_x's 的每一列被解释为一个独立的变量。
-
如果数组 known_y's 在单独一行中,则 known_x's 的每一行被解释为一个独立的变量。
-
known_x's 数组可以包括一组或多组自变量。如果仅使用一个变量,那么只要 known_x's 和 known_y's 具有相同的维数,则它们可以是任何形状的区域。如果用到多个变量,则 known_y's 必须为向量(即必须为一行或一列)。
-
如果省略 known_x's,则假定该数组为 {1,2,3,...},其大小与 known_y's 相同。
-
如果 const 为 TRUE 或被省略,b 将按正常方式计算。
-
如果 const 为 FALSE,b 将被设为 0,并同时调整 m 值使 y = mx。
-
如果 stats 为 TRUE,则 LINEST 函数返回附加回归统计值,这时返回的数组为 {mn,mn-1,...,m1,b;sen,sen-1,...,se1,seb;r2,sey;F,df;ssreg,ssresid}。
-
如果 stats 为 FALSE 或省略,LINEST 函数只返回系数 m 和常量 b。
附加回归统计值如下:
统计值 | 说明 |
---|
se1,se2,...,sen | 系数 m1,m2,...,mn 的标准误差值。 |
seb | 常量 b 的标准误差值(当 const 为 FALSE 时,seb = #N/A)。 |
r2 | 判定系数。Y 的估计值与实际值之比,范围在 0 到 1 之间。如果为 1,则样本有很好的相关性,Y 的估计值与实际值之间没有差别。如果判定系数为 0,则回归公式不能用来预测 Y 值。有关计算 r2 的方法的详细信息,请参阅本主题后面的“注解”。 |
sey | y 估计值的标准误差。 |
F | F 统计或 F 观察值。使用 F 统计可以判断因变量和自变量之间是否偶尔发生过可观察到的关系。 |
df | 自由度。用于在统计表上查找 F 临界值。所查得的值和 LINEST 函数返回的 F 统计值的比值可用来判断模型的置信度。有关如何计算 df,请参阅在此主题中后面的“注解”。示例 4 注解了 F 和 df 的使用。 |
ssreg | 回归平方和。 |
ssresid | 残差平方和。有关计算 ssreg 和 ssresid 的方法的详细信息,请参阅本主题后面的“注解”。 |
下面的图示显示了附加回归统计值返回的顺序。

- 可以使用斜率和 y 轴截距描述任何直线:
斜率 (m):
通常记为 m,如果需要计算斜率,则选取直线上的两点,(x1,y1) 和 (x2,y2);斜率等于 (y2 - y1)/(x2 - x1)。
Y 轴截距 (b):
通常记为 b,直线的 y 轴的截距为直线通过 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 是根据下面的公式计算出的:


其中 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) 来计算指数曲线。这些不带参数 new_x's 的函数可在实际数据点上根据直线或曲线来返回 y 的数组值,然后可以将预测值与实际值进行比较。还可以用图表方式来直观地比较二者。
- 回归分析时,ET 计算每一点的 y 的估计值和实际值的平方差。这些平方差之和称为残差平方和 (ssresid)。然后 ET 计算总平方和 (sstotal)。当 const = TRUE 或被删除时,总平方和是 y 的实际值和平均值的平方差之和。当 const = FALSE 时,总平方和是 y 的实际值的平方和(不需要从每个 y 值中减去平均值)。回归平方和 (ssreg) 可通过公式 ssreg = sstotal - ssresid 计算出来。残差平方和与总平方和的比值越小,判定系数 r2 的值就越大,r2 是表示回归分析公式的结果反映变量间关系的程度的标志。r2 等于 ssreg/sstotal。
- 某些情况下,一个或多个 X 列(假设 Y's 和 X's 位于列中)在有其他 X 列的情况下可能没有附加的预测值。换句话说,删除一个或多个 X 列可能并不影响 Y 预测值的精度。在这种情况下,应该从回归模型中略去这些冗余的 X 列。这种现象被称为“共线性”,因为任何冗余的 X 列都可以表示为多个非冗余的 X 列的和。LINEST 检查共线性,并在识别出任何冗余的 X 列以后从回归模型中删除这些列。可以在 LINEST 输出中识别出已删除的 X 列,因为这些列的系数为 0 并且 se's 也为 0。如果一个或多个列被作为冗余列删除,则 df 会受到影响,因为 df 取决于实际用于预测的 X 列的个数。有关计算 df 的详细信息,请参阅下面的例 4。如果由于删除冗余的 X 列而改变了 df,则 sey 和 F 的值也会受到影响。实际上,共线性应该相对稀有。但是,很有可能出现共线性的一种情况是,某些 X 列仅包含 0's 和 1's 作为某个实验中的对象是否属于某个组的指示器。如果 const = TRUE 或被省略,LINEST 可以有效插入一个所有 1's 的附加 X 列,以建立截距模型。假定有一列,1 表示相应对象是男性,0 表示相应对象不是男性;另有一列,1 表示相应对象是女性,0 表示相应对象不是女性,那么,后一列就是冗余的,因为从 LINEST 添加的所有 1's 的附加列中的项减去“男性指示器”列中的项就可以得到后一列中的项。
- 如果没有任何 X 列因共线性而从模型中删除,则 df 的计算方法如下所示:如果存在 known_x's 的 k 列且 const = TRUE 或被省略,则 df = n