回归中的相关度和决定系数
来源:互联网 发布:如何查看光猫端口速率 编辑:程序博客网 时间:2024/04/29 11:20
1.皮尔逊相关系数(Pearson Correlation Coefficient)
1)衡量两个值线性相关强度的量;
2)取值范围:[-1,1]
正向相关:>0,负向相关:<0,无相关性:=0
3)定义
2.R平方值
1)定义:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例;
2)描述:如R平方为0.8,则表示回归关系可以解释因变量80%的变异;即如果自变量不变,则因变量的变异程度会减少80%
3)简单线性回归:R^2=r*r
多元线性回归:
3.R平方局限性
R平方随着自变量的增大会变大,R平方和样本量是有关系的。所以,需要对R平方进行修正,修正方法为:
4.代码实现相关系数和R平方的计算
1)代码
# -*- coding: utf-8 -*-
import numpy as np
from astropy.units import Ybarn
import math
#根据相关系数计算公式给出实现过程
def computerCorrelation(X,Y):
xBar = np.mean(X)
yBar = np.mean(Y)
SSR = 0
varX = 0
varY = 0
for i in range(0,len(X)):
diffXXBar = X[i]-xBar
diffYYBar = Y[i]-yBar
SSR+=(diffXXBar*diffYYBar)
varX += diffXXBar**2
varY += diffYYBar**2
SST = math.sqrt(varX*varY)
return SSR/SST
#计算R平方
#degree为最高次的数值
def polyfit(X,Y,degree):
results = {}
#调用函数实现回归中参数计算
coeffs = np.polyfit(X,Y,degree)
#将结果转化为list
results["polynomial"] = coeffs.tolist()
#传入参数给出预测方程
p = np.poly1d(coeffs)
#给出y的预测值
yhat = p(X)
ybar = np.sum(Y)/len(Y)
ssreg = np.sum((yhat-ybar)**2)
sstot = np.sum((Y-ybar)**2)
results["determirnation"] = ssreg/sstot
return results
testX = [1,3,8,7,9]
testY = [10,12,24,21,34]
print("r:",computerCorrelation(testX,testY))
#线性相关时的特殊情况
print("r平方:",computerCorrelation(testX,testY)**2)
print("r平方",polyfit(testX,testY,1)["determirnation"])
2)结果
r: 0.940310076545r平方: 0.884183040052
r平方 0.884183040052
3)结果说明
在一元线性相关的情况下:R^2=r*r
- 回归中的相关度和决定系数
- 机器学习(回归问题中的相关度和决定系数)
- 决定系数和残差
- 决定系数
- 7.6 回归中的相关度和R平方值
- 7.7 回归中的相关度和R平方值
- 7.8 回归中的相关度和R平方值应用
- 回归系数(拟合度)与相关系数
- 7.7 回归中的相关度的实现
- Khan公开课 - 统计学学习笔记:(九)线性回归公式,决定系数和协方差
- (机器学习)如何评价回归模型?——Adjusted R-Square(校正决定系数)
- 相关系数、决定系数
- 决定系数R^2
- 第22节--回归中的相关度和R平方值
- 第23节--回归中的相关度和R平方值应用
- 回归中的相关度和R平方值(麦子学院)
- 欧几里德距离&皮尔逊相关度系数
- 多元线性回归模型的t检验和回归系数的置信区间
- libz.so.1: cannot open shared object file: No such file or directory
- web登陆界面加密的参考
- 设置Hbase的环境变量
- 小程序小结
- java 面试
- 回归中的相关度和决定系数
- Linux JDK安装及配置 (.bin格式)
- -webkit-overflow-scolling使用心得
- 【每天一个linux命令】01.ls命令
- 误删接口?妙用eoLinker恢复误删接口
- 基于OpenConnect 构建的SSL VPN解决方案
- AndroidStudio使用leakcanary教程
- python tornado修改log输出
- 关于mybatis修改数据库信息,控制台能执行,数据库没变