回归中的相关度和R平方值 学习笔记
回归中的相关度和R平方值
自变量x和因变量y的相关度
1.皮尔逊相关系数(Pearson Correlation Coefficient):
1.1衡量两个值线性相关强度的量
1.2取值范围[-1,1]:
正向相关: >0,负向相关: <0,无相关性: =0
公式:correlation, correlationvariance(Cov):协方差(两个量相关方差) Var:方差
变化得:
分子即为covariance,分母中开根号抵消一个Cov得到当前的分母.
2. 计算方法举例:
| X | Y |
| 1 | 10 |
| 3 | 12 |
| 8 | 24 |
| 7 | 21 |
| 9 | 34 |
正相关;无相关;负相关:
4. R平方值:(衡量做出的模型能多大比例解释y的变化)
4.1定义:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。
4.2描述:如R平方为0.8,则表示回归关系可以解释因变量80%的变异。换句话说,如果我们能控制自变量不变,则因变量的变异程度会减少80%
4.3 :简单线性回归: R^2= r* r(一个自变量x和一个因变量y)
多元线性回归:
SSR:Sum Square of Regression(由于建的模型不完全与数据一致而引起的变异程度的平方和)
SST:Sum Square of Total(所有点的变异量的平方和)
y_hat:为估计值,在模型线上;
y_bar:为平均值,所有y求均值;
y(i):即为实际的y的值
SSE:Sum Square of Error(自然误差浮动)(SSE+SSR=SST)
那么R^2=SSR/SST即表示我们的模型能表示该变异程度的所占比例
(绿线为对应的y为y的均值)
一般0.3~0.8表示拟合度较高
- R平方也有其局限性: R平方随着自变量(样本)的增加会变大,R平方和样本量是有关系的。因此,我们要到R平方进行修正。修正的方法:
变量说明见图片中描述
R^2_adjusted用来评判线性模型对数据的拟合度的好坏
实例代码:
import numpy as np
import mathdef computeCorelation(X,Y): #计算corelationX_Bar = np.mean(X)Y_Bar = np.mean(Y)CovXY = 0var_X = 0var_Y = 0for i in range(0,len(X)):#对于所有的数据# 求corelation(X,Y)或者说求r_XYdiff_XXBar = X[i]-X_Bardiff_YYBar = Y[i]-Y_BarCovXY += (diff_XXBar*diff_YYBar)var_X += diff_XXBar**2var_Y += diff_YYBar**2VarXY = math.sqrt(var_X*var_Y)return CovXY/VarXY
#对于简单线性回归只需将此值平方即可得到R平方值testX = [1,3,8,7,9]
testY = [10,12,24,21,34]
print('r:',computeCorelation(testX,testY))
print('r*r:',computeCorelation(testX,testY)**2)# polynomial Regression
def polyfit(x,y,deg=1): #degree为方程的最高次方,这里为2元1次回归方程,deg=1results= {}coeffs = np.polyfit(x,y,deg=1)#polyfit可以在传入参数后自动计算出回归方程得到方程的各个斜率截距等参数results['polynomial'] = coeffs.tolist() #numpy中的list转换方法,只能用于数组、矩阵p = np.poly1d(coeffs) y_hat = p(x) #调用np中的1维的方程计算方法可以直接计算预测值y_haty_bar = np.mean(y)SSR = np.sum((y_hat-y_bar)**2) SST = np.sum((y-y_bar)**2)results['determination'] = SSR/SSTprint('results:',results) #polynomial的两个值对应斜率和截距return resultsprint('r^2:',polyfit(testX,testY)['determination'])
运行结果如下:
r: 0.94031007654487
r*r: 0.8841830400518192
results: {‘polynomial’: [2.65677966101695, 5.322033898305076], ‘determination’: 0.8841830400518196}
r^2: 0.8841830400518196
回归中的相关度和R平方值 学习笔记相关推荐
- 机器学习——回归中的相关度与R平方值及其应用
1.皮尔逊相关系数(Pearson Correlation Coeffident) (1)衡量两个值线性相关的强度 (2)取值范围[-1,1]:正向相关>0:负向相关<0:无相关性=0. ...
- 机器学习-回归中的相关度和R平方值
1. 皮尔逊相关系数(Pearson Correlation Coefficient) 1.1 衡量两个值线性相关强度的量 1.2 取值范围[-1, 1] 正相关:>0, 负相关:<0, ...
- r语言中残差与回归值的残差图_R语言逻辑回归、方差分析、伪R平方分析
原标题:R语言逻辑回归.方差分析.伪R平方分析 原文链接:http://tecdat.cn/?p=9589 目录 怎么做测试 假设条件 并非所有比例或计数都适用于逻辑回归分析 过度分散 伪R平方 测试 ...
- 机器学习-回归中的相关性(Correlation Coefficient)和R平方值算法
学习彭亮<深度学习基础介绍:机器学习>课程 皮尔逊相关系数 (Pearson Correlation Coefficient): 概念:衡量两个值线性相关强度的量 取值范围: [-1, 1 ...
- 9.回归中的相关度和决定系数
起步 训练集中可能有若干维度的特征.但有时并不是所有特征都是有用的,有的特征其实和结果并没有关系.因此需要一个能衡量自变量和因变量之间的相关度. 皮尔逊相关系数 皮尔逊相关系数( Pearson co ...
- 机器学习之回归中的相关度和决定系数
目录 1. 相关度 1.1 相关度(Relevancy) 1.2 应用实例 2. 决定系数(R^2) 机器学习中关于回归模型有时候需要衡量自变量和因变量之间的相关度,接下来介绍两个衡量相关度的指标: ...
- R语言逻辑回归、方差分析 、伪R平方分析
目录 怎么做测试 假设条件 并非所有比例或计数都适用于逻辑回归分析 过度分散 伪R平方 测试p值 Logistic回归示例 模型拟合 系数和指数系数 方差分析 伪R平方 模型的整体p值 标准化残差图 ...
- [Excel]如何取得多項式擬合的R平方值(R-squared)?
延續<[Excel]如何取得趨勢線的參數值>一文,有網友提問,如何進一步提取多項式擬合的R平方值(R-squared),並期望隨著參數調整而即時動態取得. 經查詢LINEST的語法說明,藉 ...
- 统计学习导论 - 基于R的应用 学习笔记1
统计学习导论 - 基于R的应用 学习笔记 Chapter 1 导论 统计学习是什么: 关于估计ƒ的一系列方法 Y=f(x)+ξ f:X 提供给 Y 的系统信息,是 x 的函数 ξ:随机误差项:均值为0 ...
- R语言可视化学习笔记之ggridges包绘制山峦图
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源. 严涛老师的绘图教程还有: gganimate |诺奖文章里面的动图绘制教程来了!! ggplot2学习笔记之 ...
最新文章
- 基于Jedis实现Redis分片的理解
- ext2和ext3文件系统知识
- 选购商用计算机任务书,计算机网络综合实习任务书-.doc
- buuctf [GKCTF 2021]你知道apng吗 <apng图片格式的考察>
- Wannafly挑战赛22 C	多项式(大数,多项式极限)
- 图片合成gif_谈谈有哪些好用的制作GIF的方式
- js之上传文件多图片预览
- 与David Blevins聊Java EE的未来
- Linq to Oracle 使用教程(七)将数据库的存储过程映射到方法
- jdbc url链接加时区正确方法
- Unable to run Kiwi tests on iOS8 device
- inno setup安装之前关闭mysql_innosetup安装之前关闭进程
- Python内置函数之-struct
- C1认证之计算机通识知识及习题总结——我的学习笔记
- python获取计算机时间_在Python中获取计算机的UTC偏移量
- 面试培训机构里的教师时,一分钟的自我介绍和五分钟的试讲如何安排?需要注意什么?
- 杂谈:创业公司的产品开发与团队管理
- 期待已久的《刀剑神域》第三季终于来了
- CSS样式之实现水平排列块元素的几种方式
- Django实现邮箱注册系统