4

我在 Excel 2003 中使用了 GROWTH(或 LINEST 或 TREND 或 LOGEST,都造成了同样的麻烦)函数。但存在一个问题,如果某些数据丢失,该函数拒绝给出结果:

在此处输入图像描述

您可以在此处下载文件

有什么解决方法吗?寻找简单而优雅的解决方案。

  1. 我不想要摆脱缺失值的明显解决方法 - 这意味着删除列并且也会损坏图表,并且它会在我有更多行和不同数据的其他表中产生问题列。其他明显的解决方法是将一个数据用于回归,另一个用于图形,但同样,这很烦人,只会在工作表中弄得一团糟!

  2. 有什么办法告诉excell - 这个值是NA?

  3. 另一个想法是跳过表达式中的缺失值。是否可以处理一组不连续的单元格?就像=GROWTH($B2:$AH2; $B1:$AH1; B1)在我的例子中一样,使用类似的东西:

    =GROWTH({$B2:$I2,$K2:$AH2}; {$B1:$I1,$K1:$AH1}; B1)

  4. 我当然想避免写我自己的表达方式。我需要向我的同事解释如何做这一切,这会更加复杂。我想要一个简单而优雅的解决方案。

4

3 回答 3

3

我知道这是旧的......但如果您或其他人可能仍在寻找答案,您是否尝试过使用该FORECAST功能?它将计算缺失值的趋势(只要没有任何“#N/A”单元格)。

在我的例子中,我需要创建一个缺失值的无间隙图,但我还需要根据数据计算趋势。因此,首先我将图表链接到为每个缺失值放置 #N/A 的数据集:例如,IF(ISBLANK(B2),NA(),B2)

但后来我会用原始数据计算预测数字: =FORECAST(B1,$B2:$AH2,$B1:$AH1)

除非我遗漏了什么,否则应该会处理好它。你基本上会得到两行相同的数字,但其中一个有空格用于FORECAST计算,另一个用NA()图表替换每个空格。

于 2014-05-01T14:38:02.370 回答
2

如果你知道诀窍,这将是“微不足道的”。

要使用缺失值的 LINEST,您需要像往常一样创建 X 矩阵(r 行 x 列)和 Y 向量(r 行 x 列)。您还需要在 X 矩阵中创建一个附加列作为指示变量。将此列紧邻 X 矩阵的左侧。因此,如果 X 矩阵从 B 列开始,则将附加列放在 A 列中。对于要省略的每一行,将此指标值设置为零。对于要包括的每一行,将此指标值设置为一个。将 X 矩阵和 Y 向量中的每隔一列乘以该指示变量。将这个新的增强 X 矩阵和新的 Y 向量放在电子表格的其他位置。您现在应该有一个新的 X 矩阵(r 行 x c+1 列)和 Y 向量,其中每一行都被省略了零行。这很关键!

现在正常使用 LINEST 函数,指定整个 Y 向量和扩展的 r×(c+1) X 矩阵(包括指标列作为前两个函数参数,“False”(即零)为第三个参数和“TRUE”(即一个)或“FALSE”(即零)作为第四个函数参数。正确的参数估计值出现在 LINEST 输出的第一行。所有其他 LINEST 输出值如果您指定“TRUE”来获取统计信息,则除了第五行和第二列中的值(残差平方和)之外都是错误的。

如果将第四个函数参数指定为“TRUE”以获取统计信息,则需要更正输出中的错误值。扩展输出的第 2,3 和 4 行的值不正确;第 5 行第 1 列中的值也不正确。你需要修复它们。

在工作表的其他地方复制 LINEST 输出的第一行。如果您为统计信息指定“TRUE”,则在此副本下方保留四个空白行。将原始 LINEST 输出中的第 5 行第 2 列值复制到新输出空间的第 5 行第 2 列

第一步:计算正确的自由度数以替换 LINEST 输出的第 4 行第 2 列中的值。找出模型中的参数个数;这是c+1。您可以使用 COUNT 函数来计算扩展 X 矩阵中的列数。接下来将 X 矩阵的指标列中的所有值相加。假设四行的值都为零。使用 SUM 函数:这给出 r – 4 = 指标列中带有“1”的行数。正确的自由度是不同的:SUM(indicator column) – COUNT(augmented X-matrix columns)。这是应该放在新输出空间的第 4 行第 2 列中的值。

第二步:修复第2行和第3行第2列。将原始LINEST输出中的错误df(第4行第2列)除以新输出空间中正确的df(第4行第2列)。取这个商的平方根。将原始 LINEST 输出空间中第 2 行和第 3 行第 2 列中的值乘以该校正因子,得到参数的正确标准误和 Y 的正确标准误。

第三步:修正回归平方和。原始 LINEST 输出具有由于回归未校正输出的第 5 行第 1 列中的平均值而导致的平方和值;我们希望对均值进行校正的回归平方和。我们需要计算均值的校正。这是 Y 向量值的平方和除以指标列值的总和。从原始 LINEST 输出的第 5 行第 1 列中的值中减去此值,并将答案放在新输出空间的第 5 行第 1 列中。

第四步:修正第 4 行第 1 列中的 F 比。我们需要计算回归和残差的均方。回归的均方(F 比中的分子)是新输出空间的第 5 行第 1 列中的值除以 c,即增强前原始 X 矩阵中的列数。残差的均方(F 比中的分母)是新输出空间的第 5 行第 2 列除以新输出空间的第 4 行第 2 列。从这两个中间值计算 F 比,并将结果放在新输出空间的第 4 行第 1 列中。

第五步:修正第 3 行第 1 列中的 R 平方值。这是 1 -(第 5 行第 2 列除以第 5 行第 1 列和第 5 行第 2 列之和),使用来自新输出空间的值。

检查你的工作:在电子表格的其他地方复制增强的 X 矩阵和 Y 向量。对于那些在指示变量中为零的行,将所有条目替换为零。用零删除行中的所有单元格,向上移动单元格。您现在应该有一个行数更少但没有缺失值的 X 矩阵和 Y 向量。删除指标列。现在使用 LINEST 为这组简化的数据创建一个回归模型,但这次将第三个参数设置为 TRUE(包括一个常数)。这些结果应该与您在新输出空间中的结果相同。

于 2014-02-21T08:12:38.343 回答
0

我的解决方案包括两部分:

  1. 为避免图表上出现数据缺失=NA()功能的单元格中的空白 - 它会产生#N/A错误,并且此类错误类型由图表完全按照您的需要进行处理:在围绕缺失点的可用点之间插入线。在这里阅读更多:http ://www.j-walk.com/ss/excel/usertips/tip024.htm
  2. 如果您需要趋势线 - 为什么不为此使用内置例程?我在您的数据中添加了一个指数,它与您的GROWTH计算值匹配 100%。它也可以正确处理#N/A。为了确保趋势线适合您的数据 - 只需#N/A暂时替换为两个相邻单元格的平均值(您的样本为 297) - 然后它将计算GROWTH系列,您会看到它完全适合添加的趋势线。在此处阅读有关趋势线的信息:http: //office.microsoft.com/en-001/excel-help/add-a-trendline-to-a-chart-HP005198462.aspxhttp://www.computergaga.com/excel /2003/intermediate/charts/add_a_trendline.html

您的应用解决方案文件已共享:https ://www.dropbox.com/s/j7htrk9ih2jtcq6/TrendlineNA.xls

希望这有帮助!

于 2013-01-31T11:14:39.417 回答