这个计算器能做什么
本工具采用最小二乘法,为一组数据点拟合一条直线 \(y = A + Bx\),其中每个点都可以带有一个频数(权重)\(f\)。频数加权的好处在于能够紧凑地汇总重复出现的观测值:你不必把同一组 (x, y) 重复列出很多遍,只需写一次并附上出现次数即可。它是一个纯数学的通用统计工具,在任何地区、任何场景下的计算原理都完全一致。
使用方法
每行输入一组数据,格式为 x, y, f。频数列是可选的;如果省略不填,则每个点的权重相同(即普通的无权重回归)。接着选择结果需要保留几位有效数字,然后提交即可。计算器会返回回归方程、斜率 \(B\) 与截距 \(A\)、皮尔逊相关系数 \(r\)、总频数 \(n\)、\(x\) 与 \(y\) 的均值,以及辅助计算的平方和 \(S_{xx}\)、\(S_{yy}\) 和 \(S_{xy}\)。
公式详解
设各行数据为 \(i = 1..N\),取值分别为 \(x_i\)、\(y_i\) 和频数 \(f_i\)。总频数为 \(n = \sum f_i\)。加权均值为 \(\bar{x} = \sum x_i f_i / n\) 与 \(\bar{y} = \sum y_i f_i / n\)。各平方和为 \(S_{xx} = \sum x_i^2 f_i - n\cdot\bar{x}^2\)、\(S_{yy} = \sum y_i^2 f_i - n\cdot\bar{y}^2\),以及 \(S_{xy} = \sum x_i y_i f_i - n\cdot\bar{x}\cdot\bar{y}\)。由此可得斜率 \(B = S_{xy}/S_{xx}\),截距 \(A = \bar{y} - B\cdot\bar{x}\),相关系数 \(r = S_{xy}/(\sqrt{S_{xx}}\cdot\sqrt{S_{yy}})\)。
$$\hat{y} = b_0 + b_1 x$$ $$\text{where}\quad \left\{ \begin{aligned} b_1 &= \frac{S_{xy}}{S_{xx}} \\ b_0 &= \bar{y} - b_1\,\bar{x} \\ S_{xx} &= \textstyle\sum f x^2 - n\bar{x}^2 \\ S_{xy} &= \textstyle\sum f x y - n\bar{x}\,\bar{y} \\ n &= \textstyle\sum f \end{aligned} \right.$$ $$r = \frac{S_{xy}}{\sqrt{S_{xx}}\,\sqrt{S_{yy}}}, \quad S_{yy} = \sum f\,y^2 - n\bar{y}^2$$
实例演算
以数据 (1,2,1)、(2,3,2)、(3,5,1)、(4,4,2)、(5,6,1)、(6,7,1) 为例:\(n = 8\),\(\bar{x} = 3.375\),\(\bar{y} = 4.25\)。代入可得 \(S_{xx} = 19.875\),\(S_{yy} = 19.5\),\(S_{xy} = 18.25\)。于是 \(B = 18.25/19.875 \approx 0.9182\),\(A = 4.25 - 0.9182\cdot 3.375 \approx 1.1509\),\(r \approx 0.9271\) —— 这表示二者呈强正相关。最终拟合直线为 $$y = 1.1509 + 0.9182\cdot x$$
常见问题
频数列有什么作用? 它用于为每个点加权。一个 \(f = 3\) 的点,相当于该观测值出现了三次。频数也可以是小数。
如果 \(r\) 无法计算怎么办? 如果所有 \(x\) 取值都相同(\(S_{xx} = 0\)),斜率无法确定;如果 \(S_{xx}\) 或 \(S_{yy}\) 中任一为零,则因数据没有变化(方差为零)而无法计算相关系数。
如何判断相关性的强弱? 看 \(|r|\) 的大小:大于 0.7 为强相关,0.4 至 0.7 为中等相关,0.2 至 0.4 为弱相关,小于 0.2 则基本不相关。