-
2020-12-02 14:34:32
两个变量与因变量相关性分析
提问:用SPSS一个分析,有一个因变量和N个自变量,先做相关性发现有很多自变量与因变量有关,相关性也比较高.
继续说,但是再做多重回归方程的时候只有3个因变量入选,其他都被排除了,那在写文章的时候那些被排除了的有相关性的因变量该怎么处理呢?
这说明这些变量之间存在自相关,模型选择的是代表程度更高且自变量相互之间相关性低的自变量来,以保证自变量变化时,只影响因变量,而不影响其它模型中的自变量.
建议你对这些自变量做两两之间的相关性检验,以说明他们不适合同时存在于模型中.
追问:这个是所谓的共线性的问题么?那我做自变量两两之间的相关性检验,什么样的结果才能显示他们不适合同时出现在模型中呢?
追答:你进行自变量之间的相关性检验,结果就会出来他们之间的相关性很高。 至于具体到模型中,得看具体的情况了,我也没有经验值。但是建模的时候一定要选择合适的变量进入方式。
最佳答案:
1.多重共线性的概念:
所谓多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。一般来说,由于经济数据的限制使得模型设计不当,导致设计矩阵中解释变量间存在普遍的相关关系。
完全共线性的情况并不多见,一般出现的是在一定程度上的共线性,即近似共线性。
2.多重共线性产生的原因 主要有3各方面: (1)经济变量相关的共同趋势 (2)滞后变量的引入 (3)样本资料的限制 3多重共线性的解决方法
多重共线性的处理方法一般有如下的几种
1 增加样本容量,当线性重合是由于测量误差引起的以及他仅是偶然存在于原始样本,而不存在于总体时,通过增加样本容量可以减少或是避免线性重合,但是在现实的生活中,由于受到各种条件的限制增加样本容量有时又是不现实的
2剔除一些不重要的解释变量,主要有向前法和后退法,逐步回归法.
前进法的主要思想是变量由少到多的,每次增加一个,直至没有可引入的变量为止.具体做法是首先对一个因变量y和m个自变量分别建立回归方程,并分别计算这m个回归方程的F值,选其最大者,记为Fj,,给定显著性水平F,如果Fj>F,则变量引入该方程,再分别对(Xj,X1),(Xj,X2)…(Xj,Xm)做回归方程,并对他们进行F检验,选择最大的Fi值,如果Fi.>F,则该变量引入方程,重复上述步骤,直到没有变量引入为止.
后退法,是先用m个因变量建立回归方程,然后在这m个变量中选择一个最不显著的变量将它从方程中剔除,对m个回归系数进行F检验,记所求得的最小的
一个记为Fj,给定一个显著性的水平,如果Fj逐步回归法,前进法存在着这样的缺点当一个变量被引入方程时,这个变量就被保留在这个方程中了,当引入的变量导致其不显著时,它也不会被删除掉,后退法同样存在着这样的缺点,当一个变量被剔除时就永远的被排斥在方程以外了,而逐步回归法克除了两者的缺点.逐步回归的思想是有进有出.将变量一个一个的引入,每引入一个变量对后面的变量进行逐个检验,当变量由于后面变量的引入而不变的不显著时将其剔除,进行每一步都要进行显著性的检验,以保证每一个变量都是显著的.
理论上上面的三种方法都是针对不相关的的数据而言的,在多重共线性很严重的情况下,结论 的可靠性受到影响,在一些经济模型中,要求一些很重要变量必须包含在里面,这时如果贸然的删除就不符合现实的经济意义.
3.不相关的系数法.当变量之间存在着多重共线性最直接的表现就是各个解释变量之间的决定系数很大.考虑到两个变量之间的决定系数众所周知, 在多元线性回归模型中, 当各个解释变量( 如Xi 与Xj, i≠j) 之间存在着多重共线性时, 其最直接的表现就是各个解释变量之间的决定系数(ri2,j)很大.ri2,j 很大, 则意味着重要变量Xi( 在本文中, 为研究方便, 我们始终假定Xi 相对于Xj 而言, 是一重要变量, i≠j) 的变化能够说明Xj 的变化.如两者之间的r2,j=90%, 则我们以说, Xi 的变化说明了Xj 变化的90%,而剩余的( 1- ri2,j) 部分,则是由Xj 自身的变化说明的.由此决定, 在反映被解释变量(Y)与解释变量Xi,Xj 之间的关系时, 对于解释变量Xj 来说, 并不需要用全部的信息来解释被解释变量的问题, 而只需要用剩余的( 1- ri2,j) 部分的信息来解释就足够了,因为有ri2,j 部分的信息是与Xi 相重复的, 已由Xi 解释了.由此出发, 如果我们能够在保留重要变量(Xi) 全部信息的同时, 以重要变量(Xi) 为基础, 对其他的解释变量进行一定的线形变换, 使之转换为一个新变量, 如将Xj 转换为Xjj , 并且使得Xi 与新变量Xjj 之间的决定系数( ri2,jj) 降低到最小程度———如( 1- ri2,j) , 则就可以消除多重共线性.
喜欢 (5)or分享 (0)
更多相关内容 -
多变量相关数据中的相关性消除:一种减少相关变量之间相关性的简单转换方法。-matlab开发
2021-05-30 19:35:31用法:[Y CovY] = Correlation_elimination( X ) 输入: X表示多元原始观测值(相关数据) 输出: Y 表示多元不相关数据 CovY 是 Y 的协方差_________________________________________ 例子: 将多元 Poisson-... -
不同类型特征变量之间相关性分析
2022-01-01 19:22:13站在2022的第一天想说点...但是,在日常数据分析实践中,由于数据源的特征分布情况,特征相关性分析往往是针对连续变量与连续变量,如pearson相关系数等,而对分类变量的相关性较少关注。本文基于SAS实操,介绍下不同类站在2022的第一天想说点啥总结却迟迟不知道该如何下笔,年前的立的各种风控技能Flag还没一一勾除又有新的Flag要立,风控人不容易…不管怎样,学习总是必要的,今天带来番茄风控2022年第一篇实操干货。
在数据分析过程中,对特征变量的相关性分析是一项重要工作,尤其是在数据建模场景,特征的相关性分析是变量筛选的一种典型方法。但是,在日常数据分析实践中,由于数据源的特征分布情况,特征相关性分析往往是针对连续变量与连续变量,如pearson相关系数等,而对分类变量的相关性较少关注。本文基于SAS实操,介绍下不同类型特征之间的相关性分析,分为三个部分:连续变量与连续变量、连续变量与分类变量、分类变量与分类变量。
现有一份excel测试数据,样本量2000,特征数13个,其结构如下图所示:
【图1:样本数据(前10条)】通过以下代码进行excel数据导入,生成SAS数据集,并对数据的特征类型分布通过报表展示:
生成特征类型报表如图2所示,包括变量名称、类型、长度、标签等信息:
【图2:特征类型】
1、连续变量与连续变量
衡量连续变量与连续变量的相关性程度有多个参数,包括pearson、spearman、 kendall、hoeffding系数等,其中pearson是参数度量方法,spearman、kendall、hoeffding是非参数度量方法。在实际数据分析工作中,我们经常使用的是person系数或spearman系数。从图2信息可知,变量X1、X4X10均为连续型变量,我们通过SAS中的corr过程步分析变量X4X10与X1之间的线性相关程度。
代码运行后生成报表如图3~4所示,包括变量基本信息、统计信息(最大值、最小值、平均值、中位数、标准差等)、pearson系数、spearman系数。
【图3: 统计信息】
【图4 :相关系数】从上表可知,变量X4~X10与变量X1的相关性依次减弱,pearson系数与pearson系数均呈现同样规律。变量X1(年龄)与X4(信用卡额度)的相关性相对较强,从pearson系数0.12149与spearson系数0.23105均得以体现,同时p值(<0.0001)检验均远小于0.1。X1与X6、X7、X10的相关性均较弱,相关系数低于0.04,p值检验均大于0.1。
为了更有效评估连续变量之间的相关性,综合对比pearson系数与pearson系数更为合理些。例如,某两个变量之间的pearson系数较大,而pearson系数较小,则不能单从某一个系数大小评估其相关性程度。
2、连续变量与分类变量
连续变量与分类变量相关性程度的评估方法,有T检验、方差分析等。在SAS语言的统计分析中,主要取决于分类变量的类别数。若对比分类变量两个类别的差异,可以使用SAS中的ttest(T检验)过程;若比较分类变量多个类别的差异,可以使用anova(方差分析)过程。
T检验是通过T分布理论与假设检验原理进行样本均值与总体均值的比较,以及进行两样本均值的比较;方差分析是用于检验两组或两组以上样本的均值是否具有显著性差异性的一种数理统计方法。2.1 二分类变量与连续变量
从图2的特征类型信息可知,变量Y(好坏标签)是二分类变量,X5(最近3个月通话次数)是连续型变量,我们通过SAS中的ttest过程步分析变量X2与X5之间的相关性程度。
代码运行后生成报表如图5~ 6所示,包括变量统计信息(最大值、最小值、平均值、标准差、标准误差等)、置信区间、T检验、方差等价性检验。
图5: 统计信息与置信区间
【图6 :T检验与方差等价检验】根据生成的报表信息,我们来对结果指标进行解读。首先,看图6的“方差等价检验”结果,p值为0.1161,在0.1置信水平下,接受原假设,认为方差相等。然后,看图6 的“T检验”结果,在“方差”为“等于”的一行,对应p值为0.0003,在0.1置信水平下,拒绝原假设,认为变量Y的“0”和“1”两个群体间的“X5(最近3个月通话次数)”信息有显著性差异。最后,综上说明变量X5(最近3个月通话次数)可以作为区分Y变量(0或1)的一个有效特征,即两个变量之间有较好的相关性。
2.2 多分类变量与连续变量
以上是采用T检验,举例(Y与X5)对二分类变量与连续变量进行相关性分析。现选取多分类变量X3(学历)与连续变量X9(最近1年银行卡交易次数),通过SAS中的anova过程(方差分析)说明多分类变量与连续变量的相关性程度。
代码运行后生成报表如图7~9所示,包括方差分析、盒型图、方差齐性检验。根据图7方差分析结果可知,p值为0.9106,接受原假设,认为变量X3(学历)在7种不同水平下的X9(最近1年银行卡交易次数)信息没有显著性差异。从图9方差齐性检验结果可知,p值为0.9379,满足方差齐性检验,认为变量X3(学历)在7种不同水平下的X9(最近1年银行卡交易次数)信息没有较强的关联关系。图8变量盒型图则展示变量X3(学历)不同类别在X9(最近1年银行卡交易次数)的分布情况。
【图7:方差分析】
【图8:变量盒型图】
【图9:方差齐性检验】3、分类变量与分类变量
分类变量之间的相关性检验,其理论基础为卡方检验分析,在SAS中以freq过程步(频数统计)实现分类变量相关性的分析过程。现选取分类变量X2(性别)与分类变量Y(好坏标签),对分类变量之间的相关性程度分析进行说明。
代码运行后生成如图10~13所示,包括变量交叉频数表、卡方检验、Fisher检验、优比信息,其中Fisher检验结果仅对于两个二分类变量输出,本例选取的两个分类变量均为二分类变量,即变量X2(性别)取值“男”与“女”,变量Y(好坏标签)取值“0”和“1”。
【图10:变量交叉频数 】
【图11:卡方检验】
【图12: Fisher检验】【图13:优比信息】
由图11卡方检验结果可知,p值为0.3371,在0.1置信水平下,接受原假设,认为分类变量X2(性别)与Y(好坏标签)无关联关系。由图12的Fisher检验可知,p值为0.3781,在0.1的置信水平下,接受原假设,认为X2(性别)与Y(好坏标签)无关联关系。由图13优化比信息可知,变量优比值为0.8537,而95%的置信区间为[0.6179, 1.1795],区间范围包含1,说明优比与1无显著性差异,即认为X2与Y无关联关系。综合以上三项指标,均说明X2(性别)与Y(好坏标签)无较强关联关系。
本文进一步的实操内容,更有相关的数据集提供给大家练习,详细的数据可以到星球进行下载学习:
另外关于本文中所提到的SAS相关的内容,更全面的系统知识可关注:
第一期的《SAS数据分析训练营》。
最后,感谢所有童鞋过去一年对番茄风控的关注~
祝大家元旦节快乐!
-
多变量相关性分析(一个因变量与多个自变量)
2020-11-29 01:04:551、 样本相关系数矩阵、相关系数检验2、 复相关分析3、 决定系数 (RMSE的介绍)小结一、前言:继上一篇文章,继续探讨相关性分析,这次不再是两个变量,而是3个或者以上的变量之间的相关关系分析。没读过上篇文章请...目录:前言
偏相关或复相关
意义与用途
分析方法:
1、 样本相关系数矩阵、相关系数检验
2、 复相关分析
3、 决定系数
(RMSE的介绍)
小结
一、前言:
继上一篇文章,继续探讨相关性分析,这次不再是两个变量,而是3个或者以上的变量之间的相关关系分析。
没读过上篇文章请先仔细阅读再过来,因为多变量本质上是基于双变量的TzeSing Kong:相关性分析(两变量)zhuanlan.zhihu.com
二、偏相关或复相关
简单相关:研究两变量之间的关系
偏相关或复相关:研究三个或者以上变量与的关系
在这里仍然是选择最简单的线性相关来解释:
三、意义与用途:
有些情况下,我们只想了解两个变量之间是否有线性相关关系,并不想拟合建立它们的回归模型,也不需要区分自变量和因变量,这时可用相关性分析。
四、分析方法:
1、样本相关阵
设
来自正态总体
容量为
的样本,其中每个样本
有
个观测
分别计算两两样本之间的简单相关系数
,它们构成的矩阵就是:
由于每个变量跟自己的相关系数就是
,即:
其中,
就是两个变量的简单相关系数。
例子:
> X <- read.table("clipboard", header = T)
> cor(X) # 相关系数矩阵
y x1 x2 x3 x4
y 1.0000000 0.9871498 0.9994718 0.9912053 0.6956619
x1 0.9871498 1.0000000 0.9907018 0.9867664 0.7818066
x2 0.9994718 0.9907018 1.0000000 0.9917094 0.7154297
x3 0.9912053 0.9867664 0.9917094 1.0000000 0.7073820
x4 0.6956619 0.7818066 0.7154297 0.7073820 1.0000000
再看看矩阵散点图:
> pairs(X, ...) # 多元数据散点图
相关系数检验:
> install.package('psych') # 先安装一个'psych'的包
> library(psych)
> corr.test(X)
Call:corr.test(x = yX)
Correlation matrix
y x1 x2 x3 x4
y 1.00 0.99 1.00 0.99 0.70
x1 0.99 1.00 0.99 0.99 0.78
x2 1.00 0.99 1.00 0.99 0.72
x3 0.99 0.99 0.99 1.00 0.71
x4 0.70 0.78 0.72 0.71 1.00
Sample Size
[1] 31
Probability values (Entries above the diagonal are adjusted for multiple tests.)
y x1 x2 x3 x4
y 0 0 0 0 0
x1 0 0 0 0 0
x2 0 0 0 0 0
x3 0 0 0 0 0
x4 0 0 0 0 0
To see confidence intervals of the correlations, print with the short=FALSE option
上面矩阵是相关系数的
值矩阵,下面矩阵是
值矩阵
可以看出
与
的关系都十分密切
相关系数
且置信度
2、复相关分析
实际分析中,一个变量(
)往往要受到多种变量(
)的综合影响,
所谓复相关,就是研究多个变量同时与某个变量的相关关系,
度量复相关程度的指标是复相关系数
多个变量同时与某个变量的相关关系不能直接测算,只能通过间接测算
复相关系数的计算:
设因变量
,自变量为
,构造一个线性模型为:
对
与
作相关分析,就是对
与
做简单相关分析
记:
为
与
的复相关系数,
为
与
的简单相关系数
的计算公式:
复相关系数常用于多元线性回归分析中,我们希望知道因变量与一组自变量之间的相关程度,即复相关,复相关系数反映了一个变量与另一组变量的密切程度。
假设检验:
与多元回归的方差分析一样,所以我留在下篇文章阐述回归分析与方差分析的时候会继续详细说明
综上:
至于
和
还有
是什么?
就由下篇文章阐述回归分析的时候会详细说明。TzeSing Kong:线性回归——描述变量间预测关系最简单的回归模型zhuanlan.zhihu.com
3、决定系数
(coefficient of determination)
在复相关系数中,根号里面的比值
,
其实说明了回归平方和与总离差平方和的比值,反应了回归贡献的百分比
把复相关系数两边平方一下就能得到决定系数
决定系数用于评价多元回归方程、变量选择、曲线回归方程拟合的好坏程度中,常常用到。
【注意】
是相关性的度量,并不是准确性的度量!!!
依赖于
的波动程度(样本方差),这会使得我们看待模型的好坏有着巨大影响,例如,假设测试集
的方差是
,如果一个模型的
,
大致为
,但是另一个测试集
的方差是
(分母小了,
小了),
则变为
。变成了模型好坏取决于测试集的波动程度,所以这个十分不靠谱
不明白上面的话,可以再看一个例子,如果我们建立了一个模型预测广州房价,如果测试集中广州房屋售价的波动范围较大——方差较大(40万-几千万),因为方差大,所以很可能导致
也比较大(假设
),但
可能十万,这对于广州房价预测来说是一个很糟糕的预测范围。
具体用法,留在回归分析中详细阐述。TzeSing Kong:线性回归——描述变量间预测关系最简单的回归模型zhuanlan.zhihu.com
在 线性回归 中的 3.4 决定系数
# 先建立多元线性回归模型
> fm = lm(y~x1+x2+x3+x4,data = X)
计算多元线性回归模型决定系数
> R2 = summary(fm)$r.sq
> R2
[1] 0.9997162
计算复相关系数
> R = sqrt(R2)
> R
[1] 0.9998581
【补】
什么是RMSE?
RMSE是回归问题的性能指标,衡量的是 预测值
与 真实值
间的差距
是测量预测误差的标准差
举例子:RMSE 等于 50000,根据【
准则】意味着:
大约 68% 的预测值位于真实值的 50000元(
)以内,
大约 95% 的预测值位于真实值的 100000元 (
)以内,
大约 99.7% 的预测值位于真实值的 150000元内 (
)以内
五、小结:
可以看出多变量相关分析跟回归分析的关系很密切,多变量相关分析能为回归分析服务,因为要具有相关性才有做线性回归拟合的价值
-
变量之间的相关性研究
2021-08-17 21:07:29相关性不等于因果性,也不是简单的个性化,相关性所涵盖的范围和领域几乎覆盖了我们所见到的方方面面,相关性在不同的学科里面的定义也有很大的差异。目录
1 什么是相关性?
相关性不等于因果性,也不是简单的个性化,相关性所涵盖的范围和领域几乎覆盖了我们所见到的方方面面,相关性在不同的学科里面的定义也有很大的差异。1
相关性分析(Analysis of Correlation)是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。1
相关分析与回归分析之间的区别2:
- 回归分析侧重于研究随机变量间的依赖关系,以便用一个变量去预测另一个变量;
- 相关分析侧重于发现随机变量间的种种相关特性。相关分析在工农业、水文、气象、社会经济和生物学等方面都有应用。
利用双坐标轴折线图可以发现费用成本和广告曝光量两组数据的变化和趋势大致相同3。从整体的大趋势来看,费用成本和广告曝光量两组数据都呈现增长趋势。从规律性来看费用成本和广告曝光量数据每次的最低点都出现在同一天。从细节来看,两组数据的短期趋势的变化也基本一致。
经过以上这些对比,我们可以说广告曝光量和费用成本之间有一些相关关系,但这种方法在整个分析过程和解释上过于复杂,如果换成复杂一点的数据或者相关度较低的数据就会出现很多问题。比折线图更直观的是散点图3。散点图去除了时间维度的影响,只关注广告曝光量和费用成本这里两组数据间的关系。在绘制散点图之前,我们将费用成本标识为X,也就是自变量,将广告曝光量标识为y,也就是因变量。下面是一张根据每一天中广告曝光量和费用成本数据绘制的散点图,X轴是自变量费用成本数据,Y轴是因变量广告曝光量数据。从数据点的分布情况可以发现,自变量x和因变量y有着相同的变化趋势,当费用成本的增加后,广告曝光量也随之增加。
折线图和散点图都清晰的表示了广告曝光量和费用成本两组数据间的相关关系,优点是对相关关系的展现清晰,缺点是无法对相关关系进行准确的度量,缺乏说服力。并且当数据超过两组时也无法完成各组数据间的相关分析。若要通过具体数字来度量两组或两组以上数据间的相关关系,就需要使用协方差来完成计算。协方差及协方差矩阵
协方差用来衡量两个变量的总体误差:
如果两个变量的变化趋势一致,协方差就是正值,说明两个变量正相关
。
如果两个变量的变化趋势相反,协方差就是负值,说明两个变量负相关
。
如果两个变量相互独立,那么协方差就是0,说明两个变量不相关
。
cov ( X , Y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 \operatorname{cov}(X, Y)=\frac{\sum_{i=1}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{n-1} cov(X,Y)=n−1∑i=1n(Xi−Xˉ)(Yi−Yˉ)
协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。下面是三组数据x,y,z,的协方差矩阵计算公式:
C = ( cov ( x , x ) cov ( x , y ) cov ( x , z ) cov ( y , x ) cov ( y , y ) cov ( y , z ) cov ( z , x ) cov ( z , y ) cov ( z , z ) ) C=\left(\begin{array}{lll} \operatorname{cov}(x, x) & \operatorname{cov}(x, y) & \operatorname{cov}(x, z) \\ \operatorname{cov}(y, x) & \operatorname{cov}(y, y) & \operatorname{cov}(y, z) \\ \operatorname{cov}(z, x) & \operatorname{cov}(z, y) & \operatorname{cov}(z, z) \end{array}\right) C=⎝⎛cov(x,x)cov(y,x)cov(z,x)cov(x,y)cov(y,y)cov(z,y)cov(x,z)cov(y,z)cov(z,z)⎠⎞
协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。
但无法对相关的密切程度进行度量,当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高,所以需要相关系数。相关系数
相关系数(Correlation coefficient)又称皮尔逊相关系数,衡量了两个变量的线性相关程度。定义变量 X X X与 Y Y Y的协方差 C o v ( X , Y ) Cov(X,Y) Cov(X,Y):
C o v ( X , Y ) = E [ X − E ( x ) ] [ Y − E ( Y ) ] Cov(X,Y) = E{[X - E(x)][Y - E(Y)]} Cov(X,Y)=E[X−E(x)][Y−E(Y)]
随机变量与的相关系数 ρ X Y ρ_{XY} ρXY:
ρ X Y = Cov ( X , Y ) D ( x ) D ( y ) \rho_{X Y}=\frac{\operatorname{Cov}(X, Y)}{\sqrt{D(x)} \sqrt{D(y)}} ρXY=D(x)D(y)Cov(X,Y)
相关系数有如下的性质:
1. ∣ ρ X Y ∣ ≤ 1 ∣ρ_{XY}∣ ≤ 1 ∣ρXY∣≤1的 ∣ ρ X Y ∣ ∣ρ_{XY}| ∣ρXY∣越大,表明线性相关程度越高,当 ∣ ρ X Y ∣ = 0 ∣ρ_{XY}∣ =0 ∣ρXY∣=0表示为不相关。
2. ∣ ρ X Y ∣ = 1 ∣ρ_{XY}∣ =1 ∣ρXY∣=1的充要条件是存在常数 a , b a,b a,b使得 P { Y = a + b X } = 1 P\{Y=a+bX\}=1 P{Y=a+bX}=1,即 X X X和 Y Y Y一定存在线性关系。
3.线性相关和独立的关系:- 当 X X X和 Y Y Y相互独立时, C o v ( X , Y ) = 0 Cov(X,Y)=0 Cov(X,Y)=0。因此 ∣ ρ X Y ∣ = 0 ∣ρ_{XY}∣ =0 ∣ρXY∣=0,此时 X X X和 Y Y Y一定不相关。
- 当 X X X和 Y Y Y不相关, X X X和 Y Y Y不一定相互独立。因为不相关针对线性关系来说的,相关独立是就一般关系来说的。
(1)简单相关分析
简单相关分析,就是分析两个变量之间的线性相关程度。
适用范围:线性相关分析,两个变量之间的线性相关程度
常用相关系数:Pearson 相关系数,Spearman相关系数,Kendall相关系数
方法简述:根据定义计算相关系数,从而判定相关关系。
(2)偏相关分析
适用范围:当两个变量同时与第三个变量相关时,控制其他变量的线性影响的条件下分析两变量间的线性相关性
常用相关系数:偏相关系数
方法简述:将第三个变量的影响剔除,只分析另外两个变量之间相关关系,进行简单相关分析得到偏相关系数,然后判定指标相关系数的R值。
(3)复相关分析
适用范围:一个变量与另一组变量的相关关系
常用相关系数:复相关系数
方法简述:测定一个变量和一组变量之间的相关系数,即复相关系数时,先将一组变量进行线性组合,通过计算一个变量与该线性组合之间的简单相关系数作为复相关系数,然后判定指标相关系数的R值。
(4)典型相关分析
适用范围:多个随机变量和多个随机变量之间的相关关系
方法简述:利用主成分分析的思想,相当于对每组变量进行线性组合,求组合后的两个典型变量之间的相关性,然后使用用p检验方法,将显著性最大的那组作为最后的线性组合的系数,从而得到相关关系。
2 对已有数据的预分析
根据已有的数据表,可以找到以下
英文名 中文名 示例数据 time 数据时间 43476.9993055556 velocity 车速 km/h 0 SoC SOC(荷电状态) 70 voltage 总电压 V 573.6 current 总电流 A -203.5 maximum voltage 最高电池值 3.42 minimum voltage 最低电池值 3.39 max. temperature 最高温度值 27 min. tem. 最低温度值 22 voltage of ES 可充电储能装置电压 573.6 current of ES 可充电储能装置电流 -203.5 cell num. 电池总数 336 cell vol. 单体电池电压列表 {3.410/3.400/3.410…} tem. 可充电储能装置温度探针个数 64 tem. of ES 可充电储能装置温度值 {25/26/26…} 2.1 绘制变量相关的热力图
我们对各变量之间的相关性进行分析:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns csv_name = 'velocity_SOC(1).csv' # header参数将表头设置为1,而不是默认的0 csv_data = pd.read_csv(csv_name, encoding='gbk', header=1) # index_col参数默认为False,即自动分配行index # csv_data.head(10) corrit = csv_data.corr() # 丢失掉缺失项的行列 corrit.dropna(axis=1, how="all", inplace=True) corrit.dropna(axis=0, how="all", inplace=True) # print(corrit) # 解决中文乱码 sns.set_style('whitegrid',{'font.sans-serif':['simhei','Arial']}) # 解决保存图像是负号'-'显示为方块的问题 plt.rcParams['axes.unicode_minus']=False # 设置大小 plt.figure(figsize=(8, 8)) plt.rcParams['savefig.dpi'] = 50 #图片像素 plt.rcParams['figure.dpi'] = 50 #分辨率 # 绘制图像 ax = sns.heatmap(corrit, linewidths = 0.01,vmin=-1, vmax=1.0, square=True, annot=True) ax.set_title("相关性热力图")
从上面的热力图我们可以分析:- 相关性为1的其实就是一样的数值,也就是除了一样的变量外,可充电储能装置的电压和总电压V、可充电储能装置的电流和总电流A数值是一样的,具体原因有待分析,可能是电车就一种电池装置所以数值一致。
- 然后就是根据此表绘制可能相关的变量表(|相关性|<0.4的舍弃):
2.2 对热力图进行分析
变量1 变量2 相关系数 分析与备注 车速 km/h 最低电池值 -0.55 车速快,功率大,电压低 车速 km/h 总电压 V -0.42 车速快,功率大,电压低 SOC 最高电池值 0.71 均是电池参数,会随用电改变 SOC 最低电池值 0.67 均是电池参数,会随用电改变 SOC 总电压 V 0.69 均是电池参数,会随用电改变 SOC 总电流 A -0.63 均是电池参数,会随用电改变 总电压 V 总电流 A -0.96 电流和电压负相关 总电压 V 最高电池值 0.97 都是电压肯定相关 总电压 V 最低电池值 0.97 都是电压肯定相关 总电压 V 最高温度值 0.56 发热引起温度改变 总电压 V 最低温度值 0.58 发热引起温度改变 总电流 A 最高电池值 -0.91 电流和电压负相关 总电流 A 最低电池值 -0.89 电流和电压负相关 总电流 A 最高温度值 -0.62 发热引起温度改变 总电流 A 最低温度值 -0.63 发热引起温度改变 最高电池值 最低电池值 0.92 同属性变化趋势一样 最高电池值 最高温度值 0.59 发热引起温度改变 最高电池值 最低温度值 0.61 发热引起温度改变 最低电池值 最高温度值 0.52 发热引起温度改变 最低电池值 最低温度值 0.54 发热引起温度改变 最高温度值 最低温度值 0.99 同属性变化趋势一样 根据分析判断,选择以下几种变量可以开展研究:
序号 变量1 变量2 相关系数 分析与备注 ① 车速 km/h 最低电池值 -0.55 车速快,功率大,电压低 ② SOC 总电压 V 0.69 均是电池参数,会随用电改变 ③ 总电压 V 总电流 A -0.96 电流和电压负相关 ④ 总电压 V 最高温度值 0.56 发热引起温度改变 ⑤ 总电流 A 最高温度值 -0.62 发热引起温度改变 根据实验③和物理知识,可以得知电压电流与最高温度值的关系应该差不多,所以方便起见可以只考虑总电压与最高温度值的关系。
那么就可以把研究变成三个大方面:
- 实验①通过车速研究最低电池值(电压),以达到对车速上限的合理控制;
- 实验②通过电池剩余电量SOC与总电压的关系,可以预测车辆剩余电量,以再通过车辆行驶状态预测剩余续航里程;
- 实验④通过总电压与最高温度值的关系,可以做到限制最高功率输出,来降低电池温度,以达到保护电池的作用。
3 具体研究的展开
3.1 车速 km/h与最低电池值(电压)的研究
我们通过对按照数据时间分组,然后车速和最低电池值取平均值,然后先绘制时间序列相关的图:
import pandas as pd import numpy as np import matplotlib.pyplot as plt csv_name = 'velocity_SOC(1).csv' # header参数将表头设置为1,而不是默认的0 csv_data = pd.read_csv(csv_name, encoding='gbk', header=1) # 实验①需要的数据 # 对数据按照数据时间分组,然后车速和最低电池值取平均值 exper_1= csv_data.groupby("数据时间")[["车速 km/h", "最低电池值"]].mean() plt.figure(figsize=(20, 8)) #exper_1 plt.subplot(121) plt.plot(np.arange(1,exper_1.shape[0]+1),exper_1['车速 km/h'].values) plt.title("车速km/h随时间序列的变化") plt.ylabel("车速km/h") plt.subplot(122) plt.plot(np.arange(1,exper_1.shape[0]+1),exper_1['最低电池值'].values) plt.title("最低电池值随时间序列的变化") plt.ylabel("最低电池值")
从每个图中,对其变化的趋势并没有发现很明显的规律,结合两个图可以看出来,在车速上升的时候最低电池值会随之下降(凹陷),但是车速在025和80170时间段中对应的最低电池值起始不太一样,难道是中间在125时刻电池进行了充电?所以根据预处理图的关系,我认为将时间序列缩短到25~80时刻进行研究,我们再绘制图:
# 把数据圈定在25~80时刻 exper_1_final = exper_1.iloc[25:81] fig, ax1 = plt.subplots() ax2 = ax1.twinx() ax1.plot(np.arange(1,exper_1_final.shape[0]+1),exper_1_final['车速 km/h'].values, 'b-') ax2.plot(np.arange(1,exper_1_final.shape[0]+1),exper_1_final['最低电池值'].values,'g-') ax1.set_ylabel("车速km/h",color='b') ax2.set_ylabel("最低电池值",color='g')
从上图就可以看出来非常具有可以进一步分析的地步,接下来我们就找出来对应关系并且找到最低得安全临界电池值就可以找到最高限速在什么地方。3.2 SOC(电池剩余电量)与总电压V的研究
同理的我们也可以计算出实验二对应的图:
import pandas as pd import numpy as np import matplotlib.pyplot as plt csv_name = 'velocity_SOC(1).csv' # header参数将表头设置为1,而不是默认的0 csv_data = pd.read_csv(csv_name, encoding='gbk', header=1) # 实验②需要的数据 # 对数据按照数据时间分组,然后SOC和总电压V取平均值 exper_2= csv_data.groupby("数据时间")[["SOC", "总电压 V"]].mean() plt.figure(figsize=(15, 7)) #exper_2 plt.subplot(221) plt.plot(np.arange(1,exper_2.shape[0]+1),exper_2['SOC'].values) plt.title("SOC随时间序列的变化") plt.ylabel("SOC") plt.subplot(222) plt.plot(np.arange(1,exper_1.shape[0]+1),exper_2['总电压 V'].values) plt.title("总电压V值随时间序列的变化") plt.ylabel("总电压V") ax1 = plt.subplot(212) #fig, ax1 = plt.subplots() ax2 = plt.twinx() ax1.plot(np.arange(1,exper_2.shape[0]+1),exper_2['总电压 V'].values, 'b-') ax2.plot(np.arange(1,exper_2.shape[0]+1),exper_2['SOC'].values,'g-') ax1.set_ylabel("总电压V",color='b') ax2.set_ylabel("SOC",color='g')
3.3 总电压V与最高温度值的研究
同样我们也进行绘制:
import pandas as pd import numpy as np import matplotlib.pyplot as plt csv_name = 'velocity_SOC(1).csv' # header参数将表头设置为1,而不是默认的0 csv_data = pd.read_csv(csv_name, encoding='gbk', header=1) # 实验③需要的数据 # 对数据按照数据时间分组,然后最高温度值和总电压 V取平均值 exper_3= csv_data.groupby("数据时间")[["最高温度值", "总电压 V"]].mean() plt.figure(figsize=(15, 7)) #exper_3 plt.subplot(221) plt.plot(np.arange(1,exper_2.shape[0]+1),exper_3['最高温度值'].values) plt.title("最高温度值随时间序列的变化") plt.ylabel("最高温度值") plt.subplot(222) plt.plot(np.arange(1,exper_1.shape[0]+1),exper_3['总电压 V'].values) plt.title("总电压V值随时间序列的变化") plt.ylabel("总电压V") ax1 = plt.subplot(212) #fig, ax1 = plt.subplots() ax2 = plt.twinx() ax1.plot(np.arange(1,exper_3.shape[0]+1),exper_3['总电压 V'].values, 'b-') ax2.plot(np.arange(1,exper_3.shape[0]+1),exper_3['最高温度值'].values,'r-') ax1.set_ylabel("总电压V",color='b') ax2.set_ylabel("最高温度值",color='r')
4 总结
上述探究还远没有完成,还需要进一步探究和总结,通过对数据相关性的探究,不仅可以提高numpy、pandas、matplotlib以及拓展库的使用熟练度,甚至于利用sklearn、pytorch进行进一步的机器学习和深度学习研究,还可以提高对数据模型的直观认识。可是我由于对此领域的知识欠缺,和分析的局限性,往往不知道下一步工作该如何开展,我会坚持不断得继续探究和分析,进一步完成分析工作。
-
R 计算变量之间的相关性
2022-01-03 11:14:11本文介绍相关性,以及如何在R中计算多个变量之间的相关性。 相关性 相关性是统计学中术语,它使用协方差法来衡量向量之间的相关性程度。 数学上公式为: x 表示数据向量x y 表示数据向量y x 拔 表示x的均值 y 拔 ... -
关于多个变量之间来两两相关的可视化作图 R语言
2021-04-10 17:41:00install.packages("GGally") library("GGally") df<-read.csv("dataset1.csv",header = T) head(df) cols<-c("steelblue","violetred1") df$SEX<-factor(df$SEX) #如果某列为文本形式(0.1,0.2,需改为因子... -
多变量线性相关分析_如何测量多个变量之间的“非线性相关性”?
2020-08-22 08:13:17多变量线性相关分析 现实世界中的数据科学 (Data Science in the Real World) This article aims to present two ways of calculating non linear correlation between any number of discrete variables. The ... -
R多变量相关性分析及相关性可视化
2021-07-12 08:43:26R多变量相关性分析及相关性可视化 目录 R多变量相关性分析及相关性可视化 多变量相关性计算 所有变量之间的相关性 计算数值变量的相关性 相关系数可视化 量化两个变量之间关系的一种方法是使用皮尔逊... -
两个变量的相关性- - - 协方差与皮尔逊基相关系数
2018-10-18 11:09:25应用场景:在实际应用中,我们常常会想了解两个变量之间的关系 这里举一个简单的例子:一个商店的经理想确定,周末电视广告播放的次数与下周商店销售额之间的关系 我们使用:协方差和相关系数,作为衡量两个变量关系... -
没有第三个变量的前提下交换两个变量_多变量相关性分析(一个因变量与多个自变量)...
2020-11-21 15:25:491、 样本相关系数矩阵、相关系数检验2、 复相关分析3、 决定系数 (RMSE的介绍)小结一、前言:继上一篇文章,继续探讨相关性分析,这次不再是两个变量,而是3个或者以上的变量之间的相关关系分析。没读过上篇文章请... -
使用 Python 查找分类变量和连续变量之间的相关性
2020-11-25 14:43:43这可以通过测量两个变量之间的相关性来实现。在 python 中, pandas 提供了一个函数 dataframe.corr() ,仅用于查找数字变量之间的相关性。在本文中, 我们将了解如何找到分类变量和连续变量之间的相关性。案例 1: 当... -
如何度量变量之间的相关性
2021-08-04 04:18:01在百度中搜索 “如何度量两个实数变量之间的相关性?” 可得到如下链接: https://jingyan.baidu.com/article/fd8044facdc8d25030137a44.html. 可见相关性分析已经有一些成熟的方法. 本贴不考虑这些方法, 而是从我的已... -
变量相关性分析
2021-12-02 10:46:21变量相关性分析 接下来,我们尝试对变量和标签进行相关性分析。从严格的统计学意义讲,不同类型变量的 相关性需要采用不同的分析方法,例如连续变量之间相关性可以使用皮尔逊相关系数进行计算, 而连续变量和... -
连续型变量和离散型变量的相关性检验方法(仅供自己参考)
2022-04-06 14:05:32之前一直很疑惑一般的相关性检验都是用pearson做两个连续型变量之间的(线性)相关关系,两个离散型的呢也可以用卡方检验,但是连续型和离散型的用什么呢?那天查资料看到一些答案,如果有不对请指正一下,谢谢。 ... -
用python计算变量间相关性
2019-10-06 14:18:09本文从连续性数据和分类数据来分别展开计算相关性 依据连续性数据求相关系数 import pandas as pd import numpy as np import scipy.stats as ss import matplotlib.pyplot as plt import seaborn as sns #导入相应... -
[办公] Excel 数据分析两个变量的相关性分析
2019-04-04 14:12:00准备数据 拓展Excel数据分析功能 选择excel加载项: 勾上分析工具库: 分析相关系数 数据分析 - 相关系数 - 选择输入范围 - 输出范围 ...ps: 会使用python的同学可以直接用pandas的矩阵相关系数... -
二值变量间的相关性分析
2020-12-04 21:44:18二值类别变量相关性分析目前,在相关性分析领域,主要使用的技术指标有pearson相关系数、spearman相关系数、kendall相关系数。三者有一个共同的特点,它们都是通过两组数据的元素大小来刻画相关性,也即同增同减的... -
教你如何使用spss计算变量的相关性
2021-01-31 17:40:131.打开spss后,将你想要计算的数据导入进来。...导入后,出现如下页面,点确定。...双变量。 3.将想要分析的变量全部选中,点击中间箭头按钮后,变量进入右侧方框,点击确认。 4.结果就呈现出来啦。 ... -
SPSS-两变量相关性分析
2020-12-28 21:14:06两个变量之间存在确定性:关系和不确定关系(会存在一定的波动范围),就好比你的亲生母亲绝对只有一个,而你的亲叔叔可能有好几个(可以在1叔—4叔之间波动)相关性一般分为 1:强正相关关系 (一个值会随着另一个值的... -
拓端tecdat|R语言逻辑回归分析连续变量和分类变量之间的“相关性
2020-04-12 13:35:02原文链接:http://tecdat.cn/?p=18169 比如说分类变量为是否幸存、是因变量,连续变量为年龄、是自变量,这两者可以做相关分析吗?两者又是否可以做回归分析? 我们考虑泰坦尼克号数据集, -
两个有序分类变量相关性的卡方检验-SPSS教程
2021-01-11 21:25:58一、问题与数据研究者想探索类风湿关节炎躯体感觉的症状数量与疼痛等级之间的关系,从一家...研究对象自报的类风湿关节炎躯体感觉症状数量在1-6个之间,为有序分类变量,变量名为symptoms。医生将研究对象的疼痛分... -
学校焦虑水平与学校儿童个性变量的相关性
2021-06-29 17:45:59学校焦虑水平与学校儿童个性变量的相关性 学校焦虑水平与学校儿童个性变量的相关性 EDWARD EARL GOTTS 印第安纳大学 焦虑是人格理论无可争议的重要结构。 然而,它被用来表示很多事情。 意义的范围从作为普遍驱动... -
python相关专业-使用 Python 查找分类变量和连续变量之间的相关性
2020-11-11 14:05:37这可以通过测量两个变量之间的相关性来实现。在 python 中, pandas 提供了一个函数 dataframe.corr() ,仅用于查找数字变量之间的相关性。在本文中, 我们将了解如何找到分类变量和连续变量之间的相关性。案例 1: 当... -
如何在Excel中计算两个变量之间的相关系数?
2020-12-30 07:13:05如何在Excel中计算两个变量之间的相关系数?我们通常使用相关系数(介于-1和1之间的值)来显示两个变量之间的相关程度。 在Excel中,我们还可以使用CORREL函数来查找两个变量之间的相关系数。请注意:相关系数+1表示... -
分类变量、有序变量与数值变量相关性分析方法总结及 R 语言应用
2020-03-15 11:47:34一、数值变量相关性分析 Pearson相关系数 Pearson相关系数度量了两个连续变量之间的线性相关程度 「R语言」-> cor( x1,x2,method=‘pearson’) Spearman相关系数 Spearman等级相关系数可以衡量非线性关系变量... -
变量相关性的探索与 数据处理
2020-05-13 20:02:26y依赖于x的弱相关性,对于变量y来说,在其广泛的值域范围内,变量x在很大范围内的变化只是引起y的很小变化,我们说y依赖于x成弱相关性。反过来说,对于变量x,在变量y广泛的值域范围内,变量y在很小范围内的变化就... -
风控建模六:变量相关性分析及筛选方法
2020-05-27 15:16:47风控建模六:变量相关性分析及筛选方法 不论是开发逻辑回归评分卡,还是GBM机器学习模型 import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn.preprocessing import ... -
R变量相关性检验(Correlation Test)
2021-07-10 22:36:15量化两个变量之间相关性的一种方法是使用皮尔逊相关系数(Pearson correlation coefficient),这是两个变量之间线性相关性的度量。 它的值始终在-1和1之间,其中: -1表示两个变量之间完全负线性相关 0表示两个... -
2.3变量间的相关关系(三).doc
2021-09-08 20:01:482.3变量间的相关关系(三).doc