【问题标题】:manually calculate excel power law r^2手动计算excel幂律r^2
【发布时间】:2018-07-25 04:32:23
【问题描述】:

在 Excel 中添加趋势线时,我无法手动计算幂律曲线的 r^2(确定系数)。我无法获得与 Excel 相同的值。我尝试通过取 y 值的对数(以 10 为底)来线性化数据,然后计算线性数据的 r^2,但我无法获得与 Excel 的幂律 r^2 相同的结果。这是一个例子。请注意,我很清楚我将在此处发布的数据甚至不符合幂律曲线,但这不是重点,而是我当时正在测试的数据。

假设我有以下 x 和 y 值。

x   y
2   0.25
3   0.25
4   0.3125
5   0.0625
6   0.0625
7   0.0625

当我将它放入 excel 中,并在图表中添加一条趋势线时,Excel 显示幂律方程为 y=0.9414*x^(-1.395),r^2 值为 0.6519。

现在我想手动获取相同的值。首先,我通过取所有点的以 10 为底的对数来线性化数据。请注意,我也尝试取自然对数,但最终结果是相同的值。现在我的新 x 和 y 如下。

x   y
2   -0.602059991
3   -0.602059991
4   -0.505149978
5   -1.204119983
6   -1.204119983
7   -1.204119983

然后我使用微软页面上的公式计算这个“线性”数据的 r^2。

r^2 = (sum((x-xbar)(y-ybar))/(sqrt(sum((x-xbar)^2))*sqrt(sum((y-ybar)^2)) ))^2

https://support.office.com/en-gb/article/RSQ-function-d7161715-250d-4a01-b80d-a8364f2be08f

我得到 r^2 值为 0.712549414。请注意,如果我绘制此线性数据,添加线性趋势线并显示 r^2,则该值也是 0.712549414。

为什么不对数据进行线性化并计算 r^2 值 (0.712549414) 给出的值与原始数据 (0.6519) 的幂律曲线图上显示的 r^2 相同?如何手动计算原始数据的幂律曲线中显示的值?

【问题讨论】:

  • 考虑在 Stack Exchange 而不是 Stack Overflow 上的数学论坛上提出这个问题。
  • 是的 0.6519 是正确答案。我只是仔细检查了一遍。请注意,我没有意识到我的数据会以如此奇怪的方式发布。我最初有两列。
  • 也许 x 和 y 值在这样表示时可以更清楚地理解: (x,y): (2,0.25),(3,0.25),(4,0.3125),(5, 0.0625),(6,0.0625),(7,0.0625)

标签: excel


【解决方案1】:

您需要同时获取 x 和 y 的对数来对其进行线性化,然后两种方式都会得到相同的答案,即

x'=log(x)
y'=log(y)

并使用 x' 和 y' 进行关联。

因为如果公式在表格中

y=xk

其中 k 是一个常数,取日志可以得到

log(y)=klog(x)

所以

y'=kx'

这是一条直线。

【讨论】:

  • 哇哦。是的,你是对的!答案很简单。我很惊讶我没有尝试过。谢谢你的帮助!!
  • 不客气!我想我可能会添加更多细节来解释原因。
  • 我明白了。那讲得通。谢谢!
【解决方案2】:

可以使用方程的更简化版本来计算 r^2。 设y = f(x),如果f(x)是线性的,那么

  ybar = average(yi)
  R^2 = sum((f(xi) - ybar)^2) / sum((yi-ybar)^2)

在幂律情况下,y = a*x^b。 然后 x 和 y 都需要通过在两边取 ln 来线性化, 方程变为 ln(y) = ln(a) + b * ln(x)

 ybar = average(ln(yi))
 R^2 = sum((ln(a) + b * ln(xi) - ybar)^2) / sum((ln(yi) - ybar)^2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2011-05-05
    • 2013-03-09
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多