给定多个点的线的斜率

机器算法验证 r 回归 擅长
2022-03-17 11:29:17

我有一个起始 (y) 值的数据,该值随着 (x) 时间的流逝而顺序递增/递减。我发现这个链接用于创建数据的线性回归 http://www.easycalculation.com/statistics/regression.php

我想在excel中自动计算斜率。有谁知道该怎么做?我在页面底部看到数学公式

NXYXYNX2(X)2

但我不知道如何将其转换为 excel 公式。问题主要是XYX2. 其他的很容易使用count,sumpow功能。我的 x 坐标和 y 坐标在行中,例如C1isx1D1is x2

4个回答

首先,请注意您的链接链接到一个可能会有所帮助的工作示例。

要在 Excel 中实现方程:

  1. 在 E 中创建一个标记为“XY”的新列
  2. 在单元格“F2”中输入行数(这将是 N)
  3. 标签列 F“X^2”
  4. 输入=C2^2F2 计算 X^2,突出显示 F2:FN 并点击ctrl+D以填充此等式
  5. 将方程=(G2*sum(E:E) - sum(C:C)*sum(D:D))/(G2*sum(F:F) - sum(C:C)^2)输入一个空单元格。这将是你的 R^2
  6. 将方程式=slope(D:D, C:C)输入另一个空单元格,这应该与您的计算相符。

完成的结果显示在一个示例google doc中,可以在此处以Excel 格式下载。

带有 R 的解决方案和 @David 发布的示例数据以及关于从革命博客访问谷歌电子表格数据的说明

require(RCurl)
mycsv <- getURL("https://docs.google.com/spreadsheet/pub?key=0Ai_PDCcY5g2JdGNabGs0R0IyVzhrUFIxOVRoTXMzUUE&single=true&gid=0&range=C1%3AD11&output=csv")
mydata <- read.csv(textConnection(mycsv))

x <- mydata$X
    y <- mydata$Y
n <- nrow(mydata)
xy <- x*y
m <- (n*sum(xy)-sum(x)*sum(y)) / (n*sum(x^2)-sum(x)^2)
m

或者,您可以使用 R 的内置函数

lm(y~x)

Excel 已经包含一个名为 SLOPE 的函数。请参阅此官方帮助站点以获取参考和示例。

在 A 列中使用 X 值,在 B 列中使用 Y 值(无列标题):

=( (COUNT(A:A)*(SUMPRODUCT(A:A,B:B)) - (SUM(A:A)*SUM(B:B))) )/ 
 ( (COUNT(A:A)*SUMPRODUCT(A:A,A:A)) - (SUM(A:A)^2) )

如果需要列标题,请将所有 A:A 和 B:B 条目替换为值的正确位置。

我想出了这个公式,所以我可以在 PowerPivot 中使用斜率函数,它没有 SLOPE 公式。