统计-R(相关系数)与R^2(决定系数)傻傻分不清

读文献时,有时求相关系数,有时求拟合优度,到底都是什么呢?
先给结论, R R R R 2 R^2 R2没有关系,就如同标准差与标准误差没有关系一样。

1. 相关系数(R)

定义:变量之间线性相关的度量。分三种,spearman, pearson, kendall
公式:
ρ = C o v ( X , Y ) σ X σ Y \rho = \frac{Cov(X,Y)}{\sigma_X\sigma_Y} ρ=σXσYCov(X,Y)
解释:自变量X和因变量Y的协方差/标准差的乘积。

  • 协方差:两个变量变化是同方向的还是异方向的。X高Y也高,协方差就是正,相反,则是负。
  • 为什么要除标准差:标准化。即消除了X和Y自身变化的影响,只讨论两者之间关系。
  • 因此,相关系数是一种特殊的协方差。

2. 决定系数(R^2)

定义:对模型进行线性回归后,评价回归模型系数拟合优度。

公式:R2=SSR/SST=1-SSE/SST
SST (total sum of squares):总平方和
SSR (regression sum of squares):回归平方和
SSE (error sum of squares) :残差平方和。

解释:残差(residual):实际值与观察值之间的差异

在一组数据中,采用平均值做基线模型(图中黑线)
我们的模型(蓝线)都与这个黑线比较,来判断模型的好坏
var=sum(i-mean)^2
image.png

结论:R^2=81%,因变量Y的81%变化由我们的自变量X来解释。
R^2 的缺陷:当我们人为的向系统中添加过多的自变量,SSE会减少,从而R^2变大。因此我们采用校正R方,惩罚了过多无意义的自变量:

在这里插入图片描述

在R语言中,你可以使用`corrplot`包来绘制多变量的相关性矩阵,并通过`spearman()`函数计算Spearman等级相关系数。同时,虽然`corrplot`本身并不直接支持R^2,但你可以结合其他统计图表来间接展示。以下是步骤: 1. 首先,安装并加载所需的包: ```R install.packages("corrplot") library(corrplot) ``` 2. 创建数据集(例如,假设你有一个名为df的数据框): ```R set.seed(42) # 设置随机数种子以便于复制结果 df <- data.frame(matrix(rnorm(50), ncol = 10)) ``` 3. 计算Spearman相关系数矩阵: ```R cor_matrix <- cor(df, method = "spearman") # 使用Spearman秩相关 ``` 4. 使用`corrplot`绘制相关性矩阵,包括Spearman系数: ```R corrplot(cor_matrix, method = "color", type = "upper", tl.col = "black", tl.srt = 45, # 设置字体颜色和倾斜角度 title = "Spearman 相关性矩阵", # 添加标题 cmap = "RdYlBu", # 选择色彩映射 mar = c(4, 4, 0, 2)) # 调整边距美观 ``` 注意:`cmap="RdYlBu"`是选择了渐变的颜色方案,从红色到黄色再到蓝色表示相关性的强弱。 为了展示R^2决定系数),你可以在画完相关性矩阵后,单独对每个变量做线性回归分析,然后提取每个模型的R^2值。但是,直接在关联图上显示R^2并不是常见的做法,因为它需要额外的信息图表。 如果你想查看单个变量的R^2,可以这样做: ```R lm_results <- lapply(names(df), function(x) lm(df[[x]] ~ df[-x], data = df)) r_squared <- sapply(lm_results, function(x) summary(x)$r.squared) ``` 然后,你可以将这些值添加到图表的旁边或作为注释。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值