通过MCP连接 →

输入计算

所有 X 和 Y 值都必须严格为正。含非正数的数据行将被忽略。至少需要 2 个有效数据点。

数学公式

广告

结果

幂回归方程
y = 1.765548701 * x^1.754405692
Strong correlation
系数 A 1.765549
指数 B 1.754406
相关系数 r 0.993169
数据点个数 5

什么是幂回归?

幂回归就是把模型 \(y = A \cdot x^{B}\) 拟合到一组数据点上。在物理、生物和经济等领域,只要一个量随另一个量呈幂次变化,就会用到这种曲线——比如异速生长、学习曲线以及各种标度律(scaling law)。其中指数 \(B\) 反映标度变化的快慢,系数 \(A\) 则决定整体的数量级大小。

在 x-y 坐标轴上拟合分散数据点的幂律曲线趋势线
幂回归用曲线 \(y = A \cdot x^{B}\) 拟合分散的数据点。

如何使用本计算器

把 X 值和 Y 值分别填进去,用逗号或空格分隔,并按顺序一一对应(第一个 X 对应第一个 Y,依此类推)。由于拟合过程使用自然对数,所有数值都必须严格为正;任何小于或等于 0 的数据行都会被自动忽略。再选择想要显示的有效数字位数,即可读出系数、指数以及相关系数 \(r\)

公式详解

关键在于"线性化"。对 \(y = A \cdot x^{B}\) 两边同时取自然对数,得到 \(\ln y = \ln A + B \cdot \ln x\),在变换后的变量 \(t = \ln x\) 与 \(u = \ln y\) 中,这就是一条直线。接着进行普通最小二乘回归:先算出均值,再求平方和 \(S_{xx}\)、\(S_{yy}\) 以及交叉乘积和 \(S_{xy}\)。斜率 \(B = S_{xy}/S_{xx}\) 即为指数,而 \(A = \exp(\operatorname{mean}(\ln y) - B \cdot \operatorname{mean}(\ln x))\)。相关系数 \(r = S_{xy}/\sqrt{S_{xx} \cdot S_{yy}}\) 则衡量对数变换后各点排列在直线上的紧密程度。

Advertisement
在对数-对数坐标轴上转化为直线的曲线幂数据
取对数可将幂曲线变为直线,从而进行最小二乘拟合。

实例演示

以数据 (1,2)、(2,5)、(3,11)、(4,21)、(5,33)(\(n = 5\))为例,对数求和得到 \(S_{xx} \approx 1.6155\)、\(S_{xy} \approx 2.8340\)、\(S_{yy} \approx 5.0410\)。于是 $$B = \frac{2.8340}{1.6155} \approx 1.7544$$ $$A = \exp(2.2483 - 1.7544 \cdot 0.9575) \approx 1.7655$$ 相关系数 \(r \approx 0.9933\),拟合效果很好。最终模型为 \(y \approx 1.7655 \cdot x^{1.7544}\)

常见问题

为什么所有数值都必须为正?这种方法要对 \(x\) 和 \(y\) 取自然对数 \(\ln\),而 0 和负数的对数没有定义,因此非正数的数据点无法参与计算。

如何解读相关系数 \(r\)?\(|r|\) 大于 0.7 表示关系很强,0.4–0.7 为中等,0.2–0.4 较弱,低于 0.2 则基本不相关。

用自然对数还是常用对数(以 10 为底)有区别吗?没有区别——无论用哪种,指数 \(B\) 和相关系数 \(r\) 都完全相同。本工具统一采用自然对数,并用 \(\exp()\) 一致地计算 \(A\),所得结果与标准教材完全吻合。

最后更新: