回归中的相关度和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表示拟合度较高

  1. 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为方程的最高次方,这里为21次回归方程,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧交通day02-车流量检测实现09:SORT/deepSORT

SORT和DeepSORT是多目标跟踪中两个知名度比较高的算法。DeepSORT是原团队对SORT的改进版本。现在来解析一下SORT和DeepSORT的基本思路。 1.SORT SORT核心是卡尔曼滤波和匈牙利匹配两个算法。流程图如下所示&#xff0c;可以看到整体可以拆分为两个部分&#xff0c;分别是匹配…

素数环 与 算法 全排列

在说起全排列前&#xff0c;先说一下昨天碰到的一个题目&#xff08;答案不是我做出来的&#xff0c;但是我感觉有好多个亮点&#xff0c;贴出来方便日后的学习&#xff09;&#xff1a; 素数环 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;…

简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

简单线性回归(Simple Linear Regression) 0.前提介绍: 为什么需要统计量? 统计量:描述数据特征 0.1集中趋势衡量 0.1.1均值(平均数&#xff0c;平均值) (mean)&#xff1a;&#xff08;求和除以个数&#xff0c;Ex也可以表示x求均值&#xff09; 0.1.2中位数(median) : 将数…

开机自启动和由一个APK启动另一个APK核心代码

1、开机自启动 public class BootReceiver extends BroadcastReceiver {private static final String ACTION "android.intent.action.BOOT_COMPLETED";private static final String TAG "ZED_Led_Receiver";private static final String FileName &quo…

智慧交通day02-车流量检测实现10:多目标追踪实现

在这里我们主要实现了一个多目标跟踪器&#xff0c;管理多个卡尔曼滤波器对象&#xff0c;主要包括以下内容&#xff1a; 初始化&#xff1a;最大检测数&#xff0c;目标未被检测的最大帧数 目标跟踪结果的更新&#xff0c;即跟踪成功和失败的目标的更新 初始化 def __init_…

centos安装python3.5和pip

#安装zlib openssl openssl-devel yum install -y zlib zlib-devel yum install openssl -y yum install openssl-devel -ywget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz #下载tar Jxvf Python-3.5.0.tar.xz #解压cd Python-3.5.0 #进入目录mkdi…

聚类(Clustering):hierarchical clustering 层次聚类及其应用

聚类(Clustering):hierarchical clustering 层次聚类及其应用 clustering实现&#xff1a; from numpy import * import math #基于matrix计算的pakage#定义树形结构图的结点&#xff0c;当再往上两则分为一类时则将其连接起来 #用面向对象(class)的方法实现此次的代码: clas…

具有IOctl的简单字符驱动

http://www.cnblogs.com/geneil/archive/2011/12/04/2275372.html 驱动层 #include <linux/init.h> #include <linux/module.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/device.h> #include <linux/module.h> #i…

智慧交通day02-车流量检测实现11:yoloV3模型

yoloV3以V1&#xff0c;V2为基础进行的改进&#xff0c;主要有&#xff1a;利用多尺度特征进行目标检测&#xff1b;先验框更丰富&#xff1b;调整了网络结构&#xff1b;对象分类使用logistic代替了softmax,更适用于多标签分类任务。 1.算法简介 YOLOv3是YOLO (You Only Loo…

bzoj1992鬼谷子的钱袋(二分乱搞 二进制)

1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3223 Solved: 2333Descriptio 鬼谷子非常聪明&#xff0c;正因为这样&#xff0c;他非常繁忙&#xff0c;经常有各诸侯车的特派员前来向他咨询时政。有一天&#xff0c;他在咸阳游历的时候&…

聚类(Clustering): K-means算法

聚类(Clustering): K-means算法 1.归类: 聚类(clustering)属于非监督学习(unsupervised learning) 无类别标记( class label) 3. K-means 算法&#xff1a; 3.1 Clustering 中的经典算法&#xff0c;数据挖掘十大经典算法之一 3.2 算法接受参数 k &#xff1b;然后将事先输入…

ubuntu12.04

http://blog.sina.com.cn/s/blog_92942dba01014r7z.html

智慧交通day02-车流量检测实现12:基于yoloV3的目标检测

在本章节代码编写中&#xff0c;发现之前的代码所处的环境是python3&#xff0c;因此导致了cv2.dnn.readNetFromDarknet()在代码运行中导致了i[0]的获值失败&#xff0c;故总结如下&#xff1a; cv2.dnn.readNetFromDarknet()在python3上遇到的问题_李大狗的读研日记-CSDN博客…

非线性回归(Non-linear Regression)

非线性回归应用&#xff08;Logistic Regression Application&#xff09; 理论实际应用整合到一起链接 import numpy as np import random# 一个函数为梯度下降的算法 def GradientDescent(x,y,theta,alpha,m,numInterations):# m denotes the number of examples here, not…

cv2.dnn.readNetFromDarknet()在python3上遇到的问题

问题描述&#xff1a; 代码如下 net cv2.dnn.readNetFromDarknet(configPath,weightsPath) #获取YOLO每一层的名称 #getLayerNames&#xff08;&#xff09;&#xff1a;获取网络所有层的名称。 ln net.getLayerNames() # 获取输出层的名称: [yolo-82,yolo-94,yolo-106] # …

企业的网站遭受木马攻击了,导致网站目录下所有文件都被篡改了

问题&#xff1a; 一个 lamp 的服务器站点目录下所有文件均被植入如下内容 <script languagejavascript srchttp://luoahong.blog.51cto.com/504977/1827164> 包括图片文件也被植入了&#xff0c;网站打开时就会调用这个地址&#xff0c;造成的影响很恶劣。 实际解决办法…

智慧交通day02-车流量检测实现13:基于虚拟线圈法的车辆统计+视频中的车流量统计原理解析

1.基于虚拟线圈法的车辆统计 基于虚拟线圈的车流量统计算法原理与交通道路上的常见的传统的物理线圈类似&#xff0c;由于物理线圈需要埋设在路面之下&#xff0c;因此会有安装、维护费用高&#xff0c;造成路面破坏等问题&#xff0c;而采用基于视频的虚拟线圈的车辆计数方法…

ValueError: Found array with dim 4. Estimator expected和ValueError: Expected 2D array, got 1D array i

python3中对numpy数组进行降维或升维 解决报错如&#xff1a; 1.ValueError: Found array with dim 4. Estimator expected 2.ValueError: Expected 2D array, got 1D array instead: 报错1ValueError: Found array with dim 4. Estimator expected——解决方式&#xff1a…

ubuntu 12.04 eclipse 安装

方法二&#xff1a;(优点是安装内容清爽&#xff0c;缺点是配置麻烦) 1、安装JDK&#xff0c;参考 Ubuntu 12.04 下安装 JDK 7 2、下载 Eclipse 从 http://www.eclipse.org/downloads/index-developer.php下载合适版本&#xff0c;如&#xff1a;Eclipse IDE for C/C Develope…

智慧交通day02-车流量检测实现14:代码汇总+问题修正

代码权重文件资源https://download.csdn.net/download/qq_39237205/43072746https://download.csdn.net/download/qq_39237205/43072746 环境要求&#xff1a;python2.7 环境配置&#xff1a;见文末requirements.txt 1.YOLO.py # encoding:utf-8 import imutils import tim…