Excel 应用LINEST函数计算线性趋势的参数

LINEST函数用于使用最小二乘法对已知数据进行最佳直线拟合,然后返回描述此直线的数组。也可以将LINEST与其他函数结合以便计算未知参数中其他类型的线性模型的统计值,包括多项式、对数、指数和幂级数。因为此函数返回数值数组,所以必须以数组公式的形式输入。LINEST函数的语法如下。


LINEST(known_y's,known_x's,const,stats)

其中参数known_y’s是关系表达式y=mx+b中已知的y值集合。

· 如果数组known_y’s在单独一列中,则known_x’s的每一列被视为一个独立的变量。

· 如果数组known_y’s在单独一行中,则known_x’s的每一行被视为一个独立的变量。

known_x’s是关系表达式y=mx+b中已知的可选x值集合。

· 数组known_x’s可以包含一组或多组变量。如果仅使用一个变量,那么只要known_x’s和known_y’s具有相同的维数,则它们可以是任何形状的区域。如果用到多个变量,则known_y’s必须为向量(即必须为一行或一列)。

· 如果省略known_x’s,则假设该数组为{1,2,3,…},其大小与known_y’s相同。

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。

【背景知识】直线的公式为:y=mx+b或y=m1x1+m2x2+…+b(如果有多个区域的x值)。

其中,因变量y是自变量x的函数值。m值是与每个x值相对应的系数,b为常量。注意y、x和m可以是向量。LINEST函数返回的数组为{mn,mn-1,…,m1,b}。LINEST函数还可返回附加回归统计值。

附加回归统计值如表16-1所示。

表16-1 附加回归统计值

【典型案例】已知某公司1~6月份的产品销售额,估算第8个月的销售值。基础数据如图16-119所示。

步骤1:打开例子工作簿“LINEST.xlsx”。

步骤2:在单元格A9中输入公式“=SUM(LINEST(B2:B7,A2:A7)*{8,1})”,用于估算第8个月的销售值。计算结果如图16-120所示。

【使用指南】

1)可以使用斜率和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函数来得到结果。

2)当只有一个自变量x时,可直接利用下面公式得到斜率和y轴截距值。

· 斜率公式如下。


=INDEX(LINEST(known_y's,known_x's),1)

图16-119 基础数据

图16-120 计算结果

· y轴截距公式如下。


=INDEX(LINEST(known_y's,known_x's),2)

3)数据的离散程度决定了LINEST函数计算的精确度。数据越接近线性,LINEST模型就越精确。LINEST函数使用最小二乘法来判定最适合数据的模型。当只有一个自变量x时,m和b是根据下面的公式计算出的:

其中x和y是样本平均值,例如x=AVERAGE(knownx’s)和y=AVERAGE(known_y’s)。

4)直线和曲线函数LINEST和LOGEST可用来计算与给定数据拟合程度最高的直线或指数曲线。但需要判断两者中哪一个更适合数据。可以用函数TREND(known_y’s,known_x’s)来计算直线,或用函数GROWTH(known_y’s,known_x’s)来计算指数曲线。这些不带参数new_x’s的函数可在实际数据点上根据直线或曲线来返回y的数组值,然后可以将预测值与实际值进行比较。另外还可以用图表方式来直观地比较二者。

5)回归分析时,Excel计算每一点的y的估计值和实际值的平方差。这些平方差之和称为残差平方和(ssresid)。然后Excel计算总平方和(sstotal)。当const=TRUE或被删除时,总平方和是y的实际值和平均值的平方差之和。当const=FALSE时,总平方和是y的实际值的平方和(不需要从每个y值中减去平均值)。回归平方和(ssreg)可通过公式“ssreg=sstotal-ssresid”计算出来。残差平方和与总平方和的比值越小,判定系数r2的值就越大。r2是表示回归分析公式的结果反映变量间关系的程度的标志,其值等于ssreg和sstotal的比值。

6)在某些情况下,一个或多个x列可能没有出现在其他x列中的预测值(假设y’s和x’s位于列中)。换句话说,删除一个或多个x列可能导致同样精度的y预测值。在这种情况下,这些多余的x列应该从回归模型中删除。这种现象被称为“共线”,因为任何多余的x列可表示为多个非多余x列的和。LINEST将检查是否存在共线,并在识别出来之后从回归模型中删除任何多余的x列。由于包含0系数以及0se’s,所以已删除的x列能在LINEST输出中被识别出来。如果一个或多个多余的列被删除,则将影响df,原因是df取决于被实际用于预测目的的x列的个数。如果由于删除多余的x列而更改了df,则也会影响sey和F的值。

实际上,出现共线的情况应该相对很少。但是,如果某些x列仅包含0’s和1’s作为一个实验中的对象是否属于某个组的指示器,则很可能引起共线。如果const=TRUE或被删除,则LINEST可有效地插入所有包含1’s的其他x列以便模型化截取。如果在一列中,1对应于每个男性对象,0对应于非男性对象;而在另一列中,1对应于每个女性对象,0对应于非女性对象,那么后一列就是多余的,因为其中的项可通过从所有包含1’s(由LINEST添加)的另一列中减去“男性指示器”列中的项来获得。

7)df的计算方法如下所示(没有x列由于共线而从模型中被删除):如果存在known_x’s的k列和const=TRUE或被删除,那么df=n–k–1;如果const=FALSE,那么df=n-k。在这两种情况下,每次由于共线而删除一个x列都会使df加1。

8)对于返回结果为数组的公式,必须以数组公式的形式输入。

当输入一个数组常量(如known_x’s)作为参数时,以逗号作为同一行中各数值的分隔符,以分号作为不同行中各数值的分隔符。分隔符可能因“控制面板”的“区域和语言选项”中区域设置的不同而有所不同。

9)注意,如果y的回归分析预测值超出了用来计算公式的y值的范围,它们可能是无效的。

函数LINEST中使用的下层算法与函数SLOPE和INTERCEPT中使用的下层算法不同。当数据未定且共线时,这些算法之间的差异会导致不同的结果。例如,如果参数known_y’s的数据点为0,参数known_x’s的数据点为1:

·LINEST返回值0。LINEST算法用来返回共线数据的合理结果,在这种情况下至少可找到一个答案。

·SLOPE和INTERCEPT返回错误“#DIV/0!”。SLOPE和INTERCEPT算法用来查找一个且仅一个答案,在这种情况下可能有多个答案。

10)除了使用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

可以调整此公式以计算其他类型的回归,但是在某些情况下,需要调整输出值和其他统计值。

Excel 应用INTERCEPT函数计算线性回归线的截距

INTERCEPT函数用于利用现有的x值与y值计算直线与y轴的截距。截距为穿过已知的known_x’s和known_y’s数据点的线性回归线与y轴的交点。当自变量为0(零)时,使用INTERCEPT函数可以决定因变量的值。例如,当所有的数据点都是在室温或更高的温度下取得的,可以用INTERCEPT函数预测在0℃时金属的电阻。INTERCEPT函数的语法如下。


INTERCEPT(known_y's,known_x's)

其中参数known_y’s为因变量的观察值或数据集合,known_x’s为自变量的观察值或数据集合。

典型案例

已知一组x、y值,计算直线与y轴的截距。基础数据如图16-117所示。

步骤1:打开例子工作簿“INTERCEPT.xlsx”。

步骤2:在单元格A8中输入公式“=INTERCEPT(A2:A6,B2:B6)”,用于计算已知直线与y轴的截距。计算结果如图16-118所示。

图16-117 基础数据

图16-118 计算结果

使用指南

参数可以是数字,或者是包含数字的名称、数组或引用。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略,但包含零值的单元格将计算在内。如果known_y’s和known_x’s所包含的数据点个数不相等或不包含任何数据点,则函数INTERCEPT返回错误值“#N/A”。回归线a的截距公式为:

公式中斜率b计算如下:

其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s)。

函数SLOPE和INTERCEPT中使用的下层算法与函数LINEST中使用的下层算法不同。当数据未定且共线时,这些算法之间的差异会导致不同的结果。例如,如果参数known_y’s的数据点为0,参数known_x’s的数据点为1:

·SLOPE和INTERCEPT返回错误“#DIV/0!”。INTERCEPT和SLOPE算法用来查找一个且仅一个答案,在这种情况下可能有多个答案。

·LINEST返回值0。LINEST算法用来返回共线数据的合理结果,在这种情况下至少可找到一个答案。

Excel 应用STEYX函数计算通过线性回归法预测每个x的y值时所产生的标准误差

STEYX函数用于计算通过线性回归法计算每个x的y预测值时所产生的标准误差。标准误差用来度量根据单个x变量计算出的y预测值的误差量。STEYX函数的语法如下。


STEYX(known_y's,known_x's)

其中参数known_y’s为因变量数据点数组或区域,known_x’s为自变量数据点数组或区域。

典型案例

已知一组x、y值,用线性回归法计算每个x的y预测值时所产生的标准误差。基础数据如图16-115所示。

步骤1:打开例子工作簿“STEYX.xlsx”。

步骤2:在单元格A10中输入公式“=STEYX(A2:A8,B2:B8)”,用线性回归法计算每个x的y预测值时所产生的标准误差。计算结果如图16-116所示。

图16-115 基础数据

图16-116 计算结果

使用指南

参数可以是数字或者是包含数字的名称、数组或引用。逻辑值和直接键入到参数列表中代表数字的文本被计算在内。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略,但包含零值的单元格将计算在内。

如果参数为错误值或为不能转换成数字的文本,将会导致错误;如果known_y’s和known_x’s的数据点个数不同,函数STEYX返回错误值“#N/A”。如果known_y’s和known_x’s为空或其数据点个数小于3,函数STEYX返回错误值“#DIV/0!”。预测值y的标准误差计算公式如下。

其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s),且n是样本大小。

Excel 应用SLOPE函数计算线性回归线的斜率

SLOPE函数用于计算根据known_y’s和known_x’s中的数据点拟合的线性回归直线的斜率。斜率为直线上任意两点的垂直距离与水平距离的比值,也就是回归直线的变化率。SLOPE函数的语法如下。


SLOPE(known_y's,known_x's)

其中参数known_y’s为数字型因变量数据点数组或单元格区域,known_x’s为自变量数据点集合。

典型案例

已知一组x、y值,根据这些数据点计算拟合的线性回归直线的斜率。基础数据如图16-113所示。

步骤1:打开例子工作簿“SLOPE.xlsx”。

步骤2:在单元格A10中输入公式“=SLOPE(A2:A8,B2:B8)”,用于计算线性回归直线的斜率。计算结果如图16-114所示。

图16-113 基础数据

图16-114 计算结果

使用指南

1)参数可以是数字,或者是包含数字的名称、数组或引用。

2)如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略,但包含零值的单元格将计算在内。

3)如果known_y’s和known_x’s为空或其数据点个数不同,函数SLOPE返回错误值“#N/A”。回归直线的斜率计算公式如下。

其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s)。

4)函数SLOPE和INTERCEPT中使用的下层算法与函数LINEST中使用的下层算法不同。当数据未定且共线时,这些算法之间的差异会导致不同的结果。例如,如果参数known_y’s的数据点为0,参数known_x’s的数据点为1:

·SLOPE和INTERCEPT返回错误“#DIV/0!”。SLOPE和INTERCEPT算法用来查找一个且仅一个答案,在这种情况下可能有多个答案。

·LINEST返回值0。LINEST算法用来返回共线数据的合理结果,在这种情况下至少可找到一个答案。

Excel 应用STANDARDIZE函数计算正态化数值

STANDARDIZE函数用于计算以mean为平均值、以standard_dev为标准偏差的分布的正态化数值。STANDARDIZE函数的语法如下。


STANDARDIZE(x,mean,standard_dev)

其中参数x为需要进行正态化的数值,mean为分布的算术平均值,standard_dev为分布的标准偏差。

典型案例

已知要正态化的数值、分布的算术平均值和分布的标准偏差,计算符合上述条件的58的正态化数值。基础数据如图16-111所示。

图16-111 基础数据

步骤1:打开例子工作簿“STANDARDIZE.xlsx”。

步骤2:在单元格A6中输入公式“=STANDARDIZE(A2,A3,A4)”,用于计算符合上述条件的58的正态化数值。计算结果如图16-112所示。

图16-112 计算结果

使用指南

如果standard_dev≤0,函数STANDARDIZE返回错误值“#NUM!”。正态化数值的计算公式如下。

Excel 应用NORMSINV函数计算标准正态累积分布函数的反函数

NORMSINV函数用于计算标准正态累积分布函数的反函数。该分布的平均值为0,标准偏差为1。NORMSINV函数的语法如下。


NORMSINV(probability)

其中参数probability为正态分布的概率值。

典型案例

计算概率为0.95221时标准正态累积分布函数的反函数值。基础数据如图16-109所示。

步骤1:打开例子工作簿“NORMSINV.xlsx”。

步骤2:在单元格A2中输入公式“=NORMSINV(0.95221)”,用于计算概率为0.95221时标准正态累积分布函数的反函数值。计算结果如图16-110所示。

图16-109 基础数据

图16-110 计算结果

使用指南

如果probability为非数值型,函数NORMSINV返回错误值“#VALUE!”;如果probability<0或probability>1,函数NORMSINV返回错误值“#NUM!”。如果已给定概率值,则NORMSINV使用NOR-MS-DIST(z)=probability求解数值z。

因此,NORMSINV的精度取决于NORMSDIST的精度。NORMSINV使用迭代搜索技术,如果搜索在100次迭代之后没有收敛,则函数返回错误值“#N/A”。

Excel 应用NORMSDIST函数计算标准正态累积分布

NORMSDIST函数用于计算标准正态累积分布函数,该分布的平均值为0,标准偏差为1。可以使用该函数代替标准正态曲线面积表。NORMSDIST函数的语法如下。


NORMSDIST(z)

其中参数z为需要计算其分布的数值。

典型案例

计算1.66667的正态累积分布函数值。基础数据如图16-107所示。

步骤1:打开例子工作簿“NORMSDIST.xlsx”。

步骤2:在单元格A2中输入公式“=NORMSDIST(1.66667)”,用于计算1.66667的正态累积分布函数值。计算结果如图16-108所示。

图16-107 基础数据

图16-108 计算结果

使用指南

如果z为非数值型,函数NORMSDIST返回错误值“#VALUE!”。标准正态分布密度函数计算公式如下:

Excel 应用NORMINV函数计算标准正态累积分布函数的反函数

NORMINV函数用于计算指定平均值和标准偏差的正态累积分布函数的反函数。NORMINV函数的语法如下。


NORMINV(probability,mean,standard_dev)

其中参数probability为正态分布的概率值,mean为分布的算术平均值,standard_dev为分布的标准偏差。

典型案例

已知需要计算其分布的数值、分布的算术平均值和分布的标准偏差,计算在这些条件下正态累积分布函数的反函数值。基础数据如图16-105所示。

步骤1:打开例子工作簿“NORMINV.xlsx”。

步骤2:在单元格A6中输入公式“=NORMINV(A2,A3,A4)”,用于计算正态累积分布函数的反函数值。计算结果如图16-106所示。

图16-105 基础数据

图16-106 计算结果

使用指南

如果任一参数为非数值型,函数NORMINV返回错误值“#VALUE!”;如果probability<0或probability>1,函数NORMINV返回错误值“#NUM!”;如果standard_dev≤0,函数NORMINV返回错误值“#NUM!”;如果mean=0且standard_dev=1,函数NORMINV使用标准正态分布。

如果已给定概率值,则NORMINV使用NORMDIST(x,mean,standard_dev,TRUE)=probability求解数值x。因此,NORMINV的精度取决于NORMDIST的精度。NORMINV使用迭代搜索技术,如果搜索在100次迭代之后没有收敛,则函数返回错误值“#N/A”。

Excel 应用NORMDIST函数计算正态累积分布

NORMDIST函数用于计算指定平均值和标准偏差的正态分布函数。此函数在统计方面应用范围广泛(包括假设检验)。NORMDIST函数的语法如下。


NORMDIST(x,mean,standard_dev,cumulative)

其中参数x为需要计算其分布的数值,mean为分布的算术平均值,standard_dev为分布的标准偏差,cumulative为一决定函数形式的逻辑值。如果cumulative为TRUE,函数NORMDIST返回累积分布函数;如果为FALSE,返回概率密度函数。

典型案例

已知需要计算其分布的数值、分布的算术平均值和分布的标准偏差,计算累积分布函数值和概率密度函数值。基础数据如图16-103所示。

步骤1:打开例子工作簿“NORMDIST.xlsx”。

步骤2:在单元格A6中输入公式“=NORMDIST(A2,A3,A4,TRUE)”,用于计算在上述条件下的累积分布函数值。

步骤3:在单元格A7中输入公式“=NORMDIST(A2,A3,A4,FALSE)”,用于计算在上述条件下的概率密度函数值。计算结果如图16-104所示。

图16-103 基础数据

图16-104 计算结果

使用指南

如果mean或standard_dev为非数值型,函数NORMDIST返回错误值“#VALUE!”。如果standard_dev≤0,函数NORMDIST返回错误值“#NUM!”。如果mean=0,standard_dev=1,且cumulative=TRUE,则函数NORMDIST返回标准正态分布,即函数NORMSDIST。正态分布密度函数(cumulative=FALSE)的计算公式如下。

如果cumulative=TRUE,则公式为从负无穷大到公式中给定的X的积分。

Excel 应用VARP函数计算基于样本总体的方差

VARP函数用于计算基于样本总体的方差。VARP函数的语法如下。


VARP(number1,number2,...)

其中参数number1,number2,…为对应于样本总体的1到255个参数。

典型案例

假定某工厂仅生产了10种产品,取样为随机样本进行抗断强度检验。基础数据如图16-101所示。

步骤1:打开例子工作簿“VARP.xlsx”。

步骤2:在单元格A13中输入公式“=VARP(A2:A11)”,用于计算全部工具抗断强度的方差(假定仅生产了10件工具)。计算结果如图16-102所示。

图16-101 基础数据

图16-102 计算结果

使用指南

函数VARP假设其参数为样本总体。如果数据只是代表样本总体中的一个样本,则使用函数VAR计算方差。参数可以是数字或者是包含数字的名称、数组或引用。逻辑值和直接键入到参数列表中代表数字的文本被计算在内。

如果参数是一个数组或引用,则只计算其中的数字,数组或引用中的空白单元格、逻辑值、文本或错误值将被忽略。如果参数为错误值或为不能转换为数字的文本,将会导致错误;如果要使计算包含引用中的逻辑值和代表数字的文本,则需要使用VARPA函数。函数VARP的计算公式如下:

其中x为样本平均值AVERAGE(number1,number2,…),n为样本大小。