相关系数计算器
粘贴 x、y 两列数据(支持从 Excel/WPS 整块复制的两列成对粘贴),自动算出皮尔逊相关系数 r、决定系数 r² 与斯皮尔曼等级相关系数 ρ,并给出 t 值、双尾 p 值、置信区间、回归方程和相关强度判读。
分别粘贴 x 和 y 两列数字,两列个数必须相同、顺序一一对应。
决定显著性判定的 α(= 1 − 置信水平)与 r 的置信区间宽度。95%(α = 0.05)是论文与 报告的默认口径。
支持逗号、空格、换行分隔,可填小数与负数。
个数必须与 x 列相同;第 1 个 y 对应第 1 个 x,依此类推。至少 3 对数据。
极强正相关(|r| = 0.9311),决定系数 r² = 0.866858,即 y 的变动约有 86.69% 能由 x 的线性关系解释。t = 7.217085(df = 8),p = 0.000091 < α = 0.05,在 95% 水平上显著。
总体 r 的 95% 置信区间(Fisher z 变换):0.72846 ~ 0.983901。区间不含 0,与显著性结论一致。
斯皮尔曼等级相关系数 ρ = 0.939394(极强正相关),p = 0.000055。两者接近,说明关系基本是线性的,用 r 即可。
回归直线(y 对 x 最小二乘):y = 53.642857 + 3.160173 x。相关不等于因果,方向与机制需要另行论证。
怎么用
- 准备成对数据:相关系数衡量的是两个变量在同一批观测对象上的共同变化,所以数据必须成对:第 1 个 x 与第 1 个 y 来自同一个人、同一天或同一次实验。两列个数必须相同,至少 3 对(只有 2 对时相关系数恒为 ±1,没有信息量)。缺失值请把整对一起删掉,不要只删一边。
- 录入两列数据:默认「两列分开填」:把 x 列和 y 列分别粘贴进两个输入框,逗号、空格、换行分隔都可以。从 Excel/WPS 整块复制的两列数据,切到「成对粘贴」,每行「2 62」或「2,62」这样一对一对贴进来,制表符会自动识别。
- 选置信水平:90%、95%、99% 三档,决定显著性判定用的 α(α = 1 − 置信水平)和 r 的置信区间宽度。论文与行业报告默认 95%(α = 0.05);医学、质量控制等误判代价高的场景常用 99%。口径要先定后算,不能算完不理想再回头调。
- 看 r 与相关强度:顶部大字是皮尔逊相关系数 r,范围 −1 到 1:正号表示同向变动,负号表示反向。下面直接给出强度判读(|r| ≥ 0.8 极强、0.6~0.8 强、0.4~0.6 中等、0.2~0.4 弱、< 0.2 极弱或无)与决定系数 r²,r² 表示 y 的变动有多大比例能被 x 的线性关系解释。
- 看显著性与置信区间:工具同时给出 t 值、自由度 df = n − 2、双尾 p 值和总体 r 的置信区间。p < α 才能说「相关显著」;区间跨过 0 就说明连方向都还没定下来。小样本很容易算出很大的 r 却不显著——n = 10 时要 |r| > 0.632 才在 α = 0.05 下显著。
- 对照斯皮尔曼 ρ 并回看散点图:结果里同时给出斯皮尔曼等级相关系数 ρ。若 ρ 明显大于 r,多半是关系单调但不是直线,或者被离群点带偏,这时以 ρ 和散点图为准。最后记住:相关不等于因果,r 再高也只能说明两者同步变动。
核心要点
相关系数衡量两个变量「同步变动」的程度,取值在 −1 到 1 之间。皮尔逊 r = Σ(x−x̄)(y−ȳ) / √(Σ(x−x̄)²·Σ(y−ȳ)²) 测直线关系; 斯皮尔曼 ρ 把两列换成名次后套同一条公式,测单调关系。
- 强度判读:
|r| ≥ 0.8极强、0.6~0.8强、0.4~0.6中等、0.2~0.4弱、< 0.2极弱或无; 符号只表示方向。 - 显著性:
t = r√((n−2)/(1−r²)),df = n − 2,双尾p < α才算显著。α = 0.05时n = 10需|r| > 0.632。 - 典型算例:本页默认数据
n = 10,r ≈ 0.931052、r² ≈ 0.866858、t ≈ 7.217085、p ≈ 0.000091、95% 区间[0.728460, 0.983901]。 - ρ 的 p 值是近似值:斯皮尔曼
ρ的显著性沿用t = ρ√((n−2)/(1−ρ²))的渐近近似, 样本量小或并列秩较多时只宜作参考,不等同于精确置换检验; 正式研究请用置换检验或 SPSS、R 等统计软件复核。 - 三条红线:
r = 0只排除线性关系(抛物线的r也是 0);相关不等于因果;算r之前先画散点图 (安斯库姆四重奏四组图形迥异的数据r都约 0.816)。
原理与公式
相关系数(correlation coefficient)描述两个变量的共变程度:一个变量偏离自己的 平均值时,另一个是不是也朝同一方向偏离。它是无量纲的——把身高 从厘米换成米、把收入从元换成万元,相关系数都不会变,这正是它比协方差更常用的原因。
皮尔逊相关系数 r(线性相关)
r = cov(x, y) / (sx · sy) = Σ(x−x̄)(y−ȳ) / √(Σ(x−x̄)²·Σ(y−ȳ)²)
等价的原始和写法(更适合手算与查表核对):r = (nΣxy − Σx·Σy) / √[(nΣx² − (Σx)²)(nΣy² − (Σy)²)]
取值范围 −1 ≤ r ≤ 1:r = 1 表示所有点严格落在一条 上升直线上,r = −1 是严格下降直线,r = 0 表示没有线性 趋势。r² 叫决定系数,等于最小二乘回归能解释的 y 的方差比例。
斯皮尔曼等级相关系数 ρ(单调相关)
把 x、y 各自换成名次(rank),再对这两列名次算皮尔逊相关系数,就是斯皮尔曼 ρ。无并列时可用捷径公式:ρ = 1 − 6Σd² / (n(n²−1)),其中 d 是同一对数据的两个名次之差。
有并列数值时按平均秩处理(三个并列占据第 2、3、4 名,都记 3), 此时捷径公式不再成立,必须回到「对名次算皮尔逊」的定义——本工具始终按定义计算, 并在存在并列时明确提示,因此结果与 SPSS、R 的 cor(method="spearman") 一致。
显著性检验
原假设 H₀: ρ总体 = 0,统计量t = r · √((n−2)/(1−r²)),df = n − 2
查双尾 p 值,p < α 时拒绝 H₀。 把上式反解可得 r 临界值:r临界 = t* / √(t*² + df)。
α = 0.05 / 0.01 的 r 临界值(双尾)n = 5:0.8783 / 0.9587;n = 8:0.7067 / 0.8343;n = 10:0.6319 / 0.7646;n = 15:0.5140 / 0.6411;n = 20:0.4438 / 0.5614;n = 30:0.3610 / 0.4629;n = 50:0.2787 / 0.3610;n = 100:0.1966 / 0.2565;n = 200:0.1388 / 0.1818。
可见样本越大,越小的 r 也能「显著」——显著性只回答「是否恰好为 0」, 强度必须另看 r² 与置信区间。
总体 r 的置信区间(Fisher z 变换)
r 的抽样分布在接近 ±1 时严重偏斜,不能直接加减误差幅度, 通行做法是先做 Fisher z 变换、在 z 尺度上做对称区间、再变回来:z = artanh(r) = ½·ln((1+r)/(1−r)),SE(z) = 1/√(n−3)区间 = tanh(z ± z* · SE(z))(z* 为正态临界值,95% 时 1.959964)
因此 n ≥ 4 才有区间,|r| = 1 时 z 发散、 区间无定义。斯皮尔曼 ρ 的标准误需要额外的修正系数(Fieller、 Bonett–Wright 等给出约 1.03~1.06 的放大),直接套皮尔逊公式会低估宽度, 所以本工具不为 ρ 给出置信区间。
计算示例(本页默认数据)
每周学习时长 x = 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 考试成绩 y = 62, 58, 71, 66, 75, 78, 72, 85, 88, 90,n = 10:x̄ = 6.6,ȳ = 74.5Sxx = Σ(x−x̄)² = 92.4,Syy = Σ(y−ȳ)² = 1064.5,Sxy = Σ(x−x̄)(y−ȳ) = 292r = 292 / √(92.4 × 1064.5) = 0.931052,r² = 0.866858t = 0.931052 × √(8/(1−0.866858)) = 7.217085,df = 8,p = 0.000091 < 0.05 → 显著95% 区间 = [0.728460, 0.983901](不含 0)ρ = 0.939394(Σd² = 10),回归直线 y = 53.642857 + 3.160173x
适用前提与常见误用
皮尔逊 r 要求:数据成对且观测相互独立、两个变量都是连续数值、 关系近似线性、无极端离群点(显著性检验还额外要求近似二元正态)。常见误用有四类:
① 只看数字不看图——安斯库姆四重奏的四组数据(直线、曲线、 单个离群点、单个杠杆点)r 都约 0.816,图形却完全不同;
② 把 r = 0 当成无关——对称抛物线 y = x² 的 r 与 ρ 都是 0,关系却是确定性的;
③ 把相关当因果——反向因果、混杂变量(第三方共同原因)、 样本选择偏差都会制造高相关;
④ 分组混合——把本该分开的两组数据合并,可能出现辛普森悖论, 合并后的相关方向与每一组内部相反。
精度与支持范围
两列数据以原始文本直接交给高精度十进制引擎,不经浮点转换; 所有和、均值、偏差平方和与相关系数本身都按偏差形式Σ(x−x̄)² 累加,而不是 Σx² − (Σx)²/n——后者在数值大而 彼此接近时(如 100000001~100000004)会发生灾难性抵消,把真值 5 算成 0 甚至负数。p 值由不完全贝塔函数表示的 t 分布尾概率求得(相对误差约 1e-13), 自由度超过 10⁶ 时自动切换到正态极限。
支持范围:数据对数 3 ≤ n ≤ 100000; 单个数据绝对值上限 1e150;置信水平 90%、95%、99%。 某一列所有数值相同(方差为 0)时相关系数无定义,会明确报错而不是返回 0。 所有计算在浏览器本地完成,不上传数据。
常见问题
- 相关系数怎么算?皮尔逊相关系数公式是什么?
- 皮尔逊相关系数 r 等于两个变量的协方差除以各自标准差的乘积,展开成偏差形式就是 r = Σ(x−x̄)(y−ȳ) / √(Σ(x−x̄)²·Σ(y−ȳ)²)。四步走:① 算出 x̄ 与 ȳ;② 对每对数据算偏差乘积 (x−x̄)(y−ȳ) 并求和,得到 Sxy;③ 分别求 Sxx = Σ(x−x̄)²、Syy = Σ(y−ȳ)²;④ 代入 r = Sxy/√(Sxx·Syy)。用原始和的等价写法更适合手算:r = (nΣxy − Σx·Σy) / √[(nΣx² − (Σx)²)(nΣy² − (Σy)²)]。以本页默认数据(每周学习时长 x 与考试成绩 y,n = 10)为例:Σx = 66、Σy = 745、Σxy = 5209、Σx² = 528、Σy² = 56567,代入得 r = (10×5209 − 66×745) / √[(10×528 − 66²)(10×56567 − 745²)] = 2920 / √(924×10645) ≈ 0.931052,r² ≈ 0.866858。
- 相关系数多少算强相关?0.5 的相关系数算高吗?
- 常用的判读区间按 |r| 分档:0.8~1.0 极强相关,0.6~0.8 强相关,0.4~0.6 中等程度相关,0.2~0.4 弱相关,0~0.2 极弱或基本无线性相关;正负号只表示方向,不影响强弱。所以 |r| = 0.5 属于中等程度,r² = 0.25,意味着只有约 25% 的变动能被线性关系解释,另外 75% 来自别的因素——说「高度相关」是夸大了。但这套分档只是经验尺度,不同学科的期待值差别很大:物理测量里 r = 0.9 可能还嫌低,社会科学、心理学、医学观察研究里 r = 0.3~0.4 已经算有价值的发现(Cohen 的经典建议是 0.1 小、0.3 中、0.5 大)。判读时务必同时看三样:样本量 n、p 值是否显著、以及 r 的置信区间有多宽。n = 8 时 r = 0.5 连显著都达不到(α = 0.05 需 |r| > 0.707),谈强弱没有意义。
- 相关系数 r 和决定系数 r² 有什么区别?r² 等于 0.87 说明什么?
- r 和 r² 回答的是两个不同的问题。r 是相关系数,范围 −1 到 1,带方向,回答「两个变量同向还是反向、同步得紧不紧」;r² 是决定系数(也写作 R²),等于 r 的平方,范围 0 到 1,没有方向,回答「y 的总变动里有多大比例能被 x 的线性关系解释」。所以 r = −0.9 与 r = 0.9 的 r² 同为 0.81,解释力一样,只是方向相反。以本页默认数据为例,r ≈ 0.931052 对应 r² ≈ 0.866858,含义是每周学习时长的线性关系能解释考试成绩约 86.7% 的变动,剩下约 13.3% 来自天赋、学习方法、题目难度等本模型没纳入的因素。两个容易踩的坑:① r 的数值不能按比例理解强弱,r = 0.8 的解释力(0.64)不是 r = 0.4(0.16)的两倍,而是四倍;② 一元线性回归里 r² 恰好等于相关系数的平方,但多元回归的 R² 会随着变量个数增加而只升不降,那里要看调整后 R²(adjusted R²),不能拿本页的 r² 直接类比。
- 皮尔逊相关系数和斯皮尔曼相关系数有什么区别?该用哪一个?
- 皮尔逊 r 直接用原始数值,测的是「直线」关系,要求两个变量都是连续的定距/定比数据,且对离群点非常敏感;斯皮尔曼 ρ 先把每列换成名次(并列取平均秩)再套同一条公式,测的是「同增同减」的单调关系,只要求数据可排序,因此顺序变量(满意度 1~5 级、职称等级、成绩排名)和有离群点、明显偏态的数据都能用。三条选择规则:① 数据近似正态、散点图看着像一条直线 → 用 r;② 数据是等级/排名,或存在极端值、明显偏态 → 用 ρ;③ 两者差距很大 → 关系大概率是单调但非线性的,以 ρ 为准并回看散点图。举例:x = 1,2,3,4,5,y = 1,8,27,64,125(完美的三次方关系)ρ = 1 但 r ≈ 0.943118;再如 x = 1~6、y = 1,2,3,4,5,1000,一个离群点就把 r 压到 0.657 而 ρ 仍为 1。注意 ρ 与 r 都只能查一元关系,控制第三个变量要用偏相关。
- 相关系数显著性怎么判断?p 值和 r 临界值表怎么看?
- 检验的原假设是「总体相关系数 ρ = 0」,统计量 t = r·√((n−2)/(1−r²)),自由度 df = n − 2,查双尾 p 值;p < α(常用 0.05)才能说相关显著。等价的做法是查 r 临界值表:α = 0.05 时,n = 5 需 |r| > 0.878,n = 10 需 > 0.632,n = 20 需 > 0.444,n = 30 需 > 0.361,n = 100 需 > 0.197。这解释了两个常见困惑:小样本里很大的 r 也可能不显著(n = 5、r = 0.8 的 p ≈ 0.10),而超大样本里 r = 0.05 也能「显著」——显著只回答「是不是恰好为 0」,不回答「关系够不够强」,后者要看 r² 和置信区间。本工具同时给出基于 Fisher z 变换的总体 r 置信区间:区间跨过 0 就等价于不显著。检验前提是成对抽样独立、近似二元正态;不满足时改用斯皮尔曼 ρ 的秩检验更稳妥。
- 斯皮尔曼相关系数的 p 值怎么算?小样本或并列秩多的时候准吗?
- 本工具与 SPSS、R 的默认做法一致:把 ρ 代进同一个统计量 t = ρ·√((n−2)/(1−ρ²)),按 df = n − 2 查双尾概率,得到 ρ 的 p 值。要留意这是一个渐近近似,不是精确检验——秩统计量的抽样分布本身是离散的,样本量小(一般指 n < 20)或并列秩较多时,这个近似 p 值与精确值会有差距,通常偏乐观。三点实操建议:① 小样本别直接套皮尔逊 r 的临界值表,斯皮尔曼有自己的精确临界值表,同一 n 下门槛并不相同;② 并列值很多时(例如满意度只有 1~5 五档、大量重复),秩之间的信息量被压缩,近似的偏差更明显,可考虑改用肯德尔 τ-b,它对并列有专门修正;③ 论文、临床研究、质量管控等正式场合,建议用置换检验(permutation test)或精确检验,并以 SPSS、R、SAS 的输出为准,本页 p 值作为快速筛查与量级参考使用。
- 相关系数为 0 是不是说明两个变量没关系?相关能证明因果吗?
- 都不能。r = 0 只说明没有「线性」关系,完全可能存在很强的非线性关系:x = −2,−1,0,1,2,y = 4,1,0,1,4 是一条标准抛物线,y 完全由 x 决定,但 r = 0(这组数据非单调,斯皮尔曼 ρ 同样是 0,所以必须画散点图)。反过来,r 很高也不等于 x 导致 y:可能是反向因果(y 影响 x)、共同的第三方原因(夏天同时推高冰淇淋销量与溺水人数)、样本选择偏差,或者纯粹巧合(伪相关)。安斯库姆四重奏是经典的警示:四组差异极大的数据(一条直线、一条曲线、一个离群点、一个杠杆点)r 都约等于 0.816。所以正确用法是「先画散点图,再算 r」,并且只把 r 当作描述同步程度的指标;要谈因果,需要随机对照实验或成体系的因果推断设计。
- Excel 的 CORREL、SPSS 和本工具算出的相关系数不一样,是哪里错了?
- 皮尔逊 r 的定义只有一种,Excel 的 CORREL 与 PEARSON、SPSS/R 的 cor() 和本工具算的是同一个量,正常只会在小数末位有差别,通常出在三处:① 数据没对齐——某一列多一个空格、多一行空值,或缺失值只删了一边,导致配对错位;② 口径不同——你比较的其实是斯皮尔曼 ρ(SPSS 里勾了 Spearman、Excel 需要先转成 RANK 再 CORREL)或肯德尔 τ;③ 浮点误差——数据量级很大且彼此接近时,用 Σx² − (Σx)²/n 展开式的实现会发生灾难性抵消,本工具全程走高精度十进制、并按偏差形式 Σ(x−x̄)² 累加,不会出现这种失真。另外注意 Excel 的 CORREL 会自动忽略文本与空单元格,可能悄悄改变实际参与计算的 n,核对时先确认两边的 n 一致;显著性方面 Excel 不直接给 p 值,需要用 T.DIST.2T(ABS(t), n−2) 自己算,本工具已直接给出。