衡量一个回归模型常用的两个参数:皮尔逊相关系数和R平方

一、皮尔逊相关系数

  在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称 PPMCC或PCCs),是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。

  

  实际可用如下公式进行计算:

  

  若大于0,表示正向相关,小于0,表示负向相关,等于0,表示不相关

二、决定系数:R平方值

定义:反应因变量的全部变异能通过回归关系被自变量解释的比例。

特别的对于简单线性回归模型时

  其中(Sum square regression)表示所有预测值与平方值的变异量,(Sum square total)表示所有真实值与平方值的变异量,(Sum square regression)表示真实值与预测值的变异量

    

例如当为0.8时,表示80%可以用模型来解释

实际应用中,为了抵消样本数量对评估参数的影响,我们需要对R平方表示式进行修正为:

表示样本的R平方值,表示样本大小,表示预测值数量

三、python代码实现

  对于简单线性回归,分别计算相关系数和决定系数,并验证公式:

import numpy as np
import math x = np.array([1,3,8,7,9])
y = np.array([10,12,24,21,34]) # 计算相关度
def computeCorrelation(x,y):
xBar = np.mean(x)
yBar = np.mean(y)
SSR = 0.0
varX = 0.0
varY = 0.0
for i in range(0,len(x)):
diffXXbar = x[i] - xBar
difYYbar = y[i] - yBar
SSR += (diffXXbar * difYYbar)
varX += diffXXbar**2
varY += difYYbar**2
SST = math.sqrt(varX * varY)
return SSR/SST # 计算R平方
def polyfit(x,y,degree):
results = {}
coeffs = np.polyfit(x,y,degree)
results['polynomial'] = coeffs.tolist()
p = np.poly1d(coeffs)
yhat = p(x)
ybar = np.sum(y)/len(y)
ssreg = np.sum((yhat - ybar)**2)
sstot = np.sum((y - ybar)**2)
results['determination'] = ssreg/sstot
return results result = computeCorrelation(x,y)
r = result
r_2 = result**2
print("r:",r)
print("r^2:",r*r)
print(polyfit(x,y,1)['determination'])

  通过结果验证,简单线性回归模型中,成立

  

day-14 回归中的相关系数和决定系数概念及Python实现的更多相关文章

  1. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  2. Ubuntu 14.04中安装最新版Eclipse

    Ubuntu 14.04中安装最新版Eclipse 来源:Linux社区    作者:Linux 1.安装OpenJDK Java 7 如果你的系统中没有安装Java,我们需要按照如下步骤事先安装好 ...

  3. Ubuntu 14.04中gedit打开文件出现中文乱码问题

    http://blog.csdn.net/cywosp/article/details/32325449/ 在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时 ...

  4. 如何在Ubuntu 14.04中安装最新版Eclipse

    想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Ec ...

  5. zhuan:点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

    在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重 ...

  6. 如何在Ubuntu 14.04中使用Samba共享文件

    Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...

  7. 怎样在Ubuntu 14.04中安装Java(转)

    想知道如何在Ubuntu 14.04中安装Java?安装Java肯定是安装Ubuntu 14.04后首先要做的几件事情之一(见http://www.linuxidc.com/Linux/2014-04 ...

  8. 点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法

    在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现非常多人遇到了相同的问题,可是解决的方法大该就仅仅有一个.以下依据自身的安装及解决的方法 ...

  9. [转载]Ubuntu 14.04中root 密码忘记解决方法

      Ubuntu 14.04中root 密码忘记解决方法 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo ...

随机推荐

  1. C#自定义异常

    继承自System.ApplicationException类,并使用Exception作为自定义异常类名的结尾 三个构造函数:一个无参构造函数:一个字符串参数的构造函数:一个字符串参数,一个内部异常 ...

  2. 关于Date的冷门知识记录

    最近在做项目的时候,用到了Date.toLocaleString来处理当前日期.在这之前,我都是通过get*等方式来获取数据进行拼接.无意间,发现了toLocaleString方法.遂想写一篇文章来记 ...

  3. Oracle批量删除表格数据

    在开发阶段往Oracle数据库中多个表格中导入了许多测试数据,倘若一张张表执行"truncate table tablename"语句显得十分繁琐.在PL/SQL中可以用代码进行批 ...

  4. 在tornado中使用异步mysql操作

    在使用tornado框架进行开发的过程中,发现tornado的mysql数据库操作并不是一步的,造成了所有用户行为的堵塞.tornado本身是一个异步的框架,要求所有的操作都应该是异步的,但是数据库这 ...

  5. php比较两个数组的差异array_diff()函数

    下面简单介绍php比较两个数组的差异array_diff()函数. 原文地址:小时刻个人技术博客 > http://small.aiweimeng.top/index.php/archives/ ...

  6. 关于mysql 删除数据后(.MYD,MYI)物理空间未释放

    关于mysql 删除数据后物理空间未释放 OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE ...

  7. jenkins里面使用shell 获取jira的sprint信息

    需求 项目需要在jenkins自动发布中加入version.html来跟踪项目发布的版本信息,需要获取到jira中当前sprint的名字,和一个sprint中的发布次数(我这里用文件把次数存起来的傻方 ...

  8. HyperLedger Fabric 1.4 单机单节点部署(10.2)

    单机单节点指在一台电脑上部署一个排序(Orderer)服务.一个组织(Org1),一个节点(Peer,属于Org1),然后运行官方案例中的example02智能合约例子,实现转财交易和查询功能.单机单 ...

  9. JDK核心源码(2)

    Java的基础知识有很多,但是我认为最基础的知识应该要属jdk的基础代码, jdk的基础代码里面,有分了很多基础模块,其中又属jdk包下面的lang包最为基础. 我们下面将总结和分析一下lang包下面 ...

  10. springboot 配置二级缓存

    springBoot中配置mybatis的二级缓存 2018年01月22日 11:45:37 Ting.Xue(Martin.Xue) 阅读数:5604更多 个人分类: SSM的Spring框架Myb ...