这个计算器有什么用
本工具可以为一组数据点拟合形如 \(y = A\cdot x^{B}\) 的幂律趋势线,其中每个数据点 (x, y) 都可以带有一个频数或权重 f。它采用自然对数空间下的频率加权最小二乘回归——通过取对数,幂函数曲线被转化为一条直线 \(\ln y = \ln A + B\cdot\ln x\)。该方法纯粹基于数学与统计学原理,普遍适用,不涉及任何地区性规则。
使用方法
把 x 值、y 值和频数分别填入三个长度相等、以英文逗号分隔的列表中。每个 x 和 y 都必须严格大于零(对零或负数无法取对数),每个频数则应大于或等于零。选择输出结果要保留的有效数字位数,即可读取拟合得到的系数 \(A\)、指数 \(B\) 以及皮尔逊相关系数 \(r\)。
公式详解
对每一行数据,令 \(X = \ln x\)、\(Y = \ln y\)。设总权重 \(n = \sum f\),则加权平均值为 \(\text{meanLnX} = \sum f\cdot\ln x / n\)、\(\text{meanLnY} = \sum f\cdot\ln y / n\)。加权平方和分别为
$$S_{xx} = \sum f(\ln x)^2 - n\cdot\text{meanLnX}^2$$$$S_{yy} = \sum f(\ln y)^2 - n\cdot\text{meanLnY}^2$$$$S_{xy} = \sum f(\ln x)(\ln y) - n\cdot\text{meanLnX}\cdot\text{meanLnY}$$由此得到
$$B = \frac{S_{xy}}{S_{xx}}, \quad A = \exp(\text{meanLnY} - B\cdot\text{meanLnX}), \quad r = \frac{S_{xy}}{\sqrt{S_{xx}}\cdot\sqrt{S_{yy}}}$$每个数据点都相当于按其频数 \(f\) 被重复计入。
计算示例
取 x = [1, 2, 3, 4, 5]、y = [1, 4, 9, 16, 25](恰好满足 \(y = x^2\)),所有频数均为 1。计算可得 \(S_{xx} \approx 1.615494\)、\(S_{xy} \approx 3.230987\)、\(S_{yy} \approx 6.461972\),于是 \(B = 3.230987/1.615494 = 2\),\(A = \exp(0) = 1\),\(r = 1\)。结果为 \(y = 1\cdot x^2\),与预期完全吻合。
常见问题
相关系数代表什么? \(|r|\) 越接近 1,说明幂律关系越强;0.4–0.7 为中等相关,0.2–0.4 为弱相关,低于 0.2 则基本无相关性。
为什么 x 和 y 必须为正数? 拟合过程中要用到自然对数,而对数只对正数有定义,因此非正数的数据点会被跳过。
如果所有 x 值都相同会怎样? 此时 \(S_{xx} = 0\),无法确定幂指数 \(B\),计算器会提示错误。