excel - 加权趋势线

标签 excel graph excel-formula curve-fitting least-squares

Excel 为成对值集生成散点图。它还提供了生成最适合趋势线和趋势线公式的选项。它还生成气泡图,其中考虑了每个值提供的权重。然而,权重对趋势线或公式没有影响。以下是一组示例值及其映射和权重。

    Value Map     Weight
    0       1      10
    1       2      10
    2       5      10
    3       5      20
    4       6      20
    5       1      1

对于Excel的趋势线,值5的映射对公式的影响太大。有没有办法生成反射(reflect)各自权重的公式?

作为帮助,我引入了五个连续值的加权平均值。但他们是更好的方法吗?

最佳答案

根据A2:C7中的数据,根据标准加权最小二乘公式,您可以尝试:

=LINEST(B2:B7*C2:C7^0.5,IF({1,0},1,A2:A7)*C2:C7^0.5,0)

使用 CTRL+SHIFT+ENTER 在 E2:F2 或任何 2x1 范围内输入。这也会返回 {1.1353,1.4412}。

对于 Rsquared,您可以输入:

=INDEX(LINEST((B2:B7-SUM(B2:B7*C2:C7)/SUM(C2:C7))*C2:C7^0.5,IF({1,0},1,A2:A7)*C2:C7^0.5,0,1),3,1)

公式解释

首先考虑使用 LINEST 进行 y 在 X 上的正态回归。如果 const = TRUE,则回归矩阵是由一列 1 和后跟回归列组成的增广矩阵,即 X'=(1,X)。如果 const = FALSE,回归矩阵就是 X,因此包含一列 1 的情况下运行回归得到的估计值与不包含 1 列并设置 const=TRUE 的情况下运行回归的估计值相同。

现在考虑加权最小二乘回归。现在的回归是 WX'=(W1,WX) 上的 Wy,其中 W 是由权重平方根组成的对角矩阵。由于不存在一列,因此我们必须设置 const = FALSE 并在回归矩阵中使用两列。

R平方计算

在第三行和第五行中得到的第一个公式的 LINEST 输出中将统计信息设置为 TRUE:

SSres = 59.76
SSreg(u) = 1461.24
SSTot(u) = 1521
Rsq(u) = 1 - 59.76/1521 = 0.9607 

请注意,由于 const=FALSE,这些值是未居中的版本 (u)(有关详细信息,请参阅 LINEST 上的 MS 帮助。)对于居中的版本 (c),我们需要减去加权平均值,如下所示:

SSTot(c) =SUMPRODUCT(C2:C7*(B2:B7-SUM(B2:B7*C2:C7)/SUM(C2:C7))^2) = 244.93
Rsq(c) = 1 - 59.76/244.93 = 0.756

关于excel - 加权趋势线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087773/

相关文章:

jquery - JQPlot - 将点标签移动到图形的起点

graph - 从 Clojure 中表示为向量的树中获取边

Excel中的排序公式

excel - 在 VBA 代码中的文件夹路径中使用当前月份

vba - 用于主轴标签的 Excel 宏

azure - 在 Microsoft Azure 门户中获取管理员同意

excel - Excel 中的 IF 语句查看单元格的值是日期

excel - 无需 VBA 即可确定 Excel 中的小数分隔符

java - 读取 excel 文件时出现 Apache POI NoClassDefFoundError

excel - 更改列宽和行高