You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用cor()函数手动计算Pearson相关系数?

手动计算Pearson相关系数(不使用cor()函数)

Pearson相关系数的核心公式是:
[ r = \frac{\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^2 \sum_{i=1}^{n}(y_i - \bar{y})^2}} ]

实现步骤(以R语言为例)

  • 计算两个变量的算术均值
  • 计算每个观测值与对应均值的偏差
  • 计算偏差乘积的总和(分子)
  • 计算两个变量偏差平方和的平方根乘积(分母)
  • 分子除以分母得到最终的相关系数

代码示例

# 示例数值变量
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 5, 8, 9)

# 步骤1:计算均值
x_mean <- mean(x)
y_mean <- mean(y)

# 步骤2:计算偏差
x_deviations <- x - x_mean
y_deviations <- y - y_mean

# 步骤3:计算分子
numerator <- sum(x_deviations * y_deviations)

# 步骤4:计算分母
x_ss <- sum(x_deviations^2)  # x的偏差平方和
y_ss <- sum(y_deviations^2)  # y的偏差平方和
denominator <- sqrt(x_ss * y_ss)

# 步骤5:计算相关系数
manual_pearson <- numerator / denominator

# 输出结果
manual_pearson

验证结果

你可以用内置的cor()函数验证结果是否一致:

cor(x, y)  # 输出和manual_pearson完全相同

注意事项

  • 确保输入变量是数值型,如果是因子或字符型需要先转换
  • 若数据存在缺失值,需先通过na.omit()或其他方式处理,否则计算结果会返回NA
  • 该实现等价于cor(x, y, method = "pearson", use = "everything")的默认行为

内容的提问来源于stack exchange,提问作者aaaaaaab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:00:02