精华内容
下载资源
问答
  • R多变量相关性分析及相关性可视化 目录 R多变量相关性分析及相关性可视化 变量相关性计算 所有变量之间的相关性 计算数值变量的相关性 相关系数可视化 量化两个变量之间关系的一种方法是使用皮尔逊...

    R多变量相关性分析及相关性可视化

    目录

    R多变量相关性分析及相关性可视化

    多变量相关性计算

    所有变量之间的相关性

    计算数值变量的相关性

    相关系数可视化


    量化两个变量之间关系的一种方法是使用皮尔逊相关系数(Pearson correlation coefficient),皮尔逊相关系数(Pearson correlation coefficient)是两个变量之间线性关联程度的的一种度量。它的取值始终在-1和1之间,其中:

    -1表示两个变量之间完全负线性相关

    0表示两个变量之间没有线性相关性

    1表示两个变量之间完全正线性相关

    数据为dataframe格式,计算R中多个变量之间的相关性。

    # 仿真数据如下:

    #create data frame
    df <- data.frame(a <- c(2, 3, 3, 5, 6, 9, 14, 15, 19, 21, 22, 23),
                     b <- c(23, 24, 24, 23, 17, 28, 38, 34, 35, 39, 41, 43),
                     c <- c(13, 14, 14, 14, 15, 17, 18, 19, 22, 20, 24, 26),
                     d <- c(6, 6, 7, 8, 8, 8, 7, 6, 5, 3, 3, 2))

    两个变量的相关性计算

    # 计算dataframe中两个变量之间的相关性

    cor(df$a, df$b)
    
    [1] 0.9279869

    多变量相关性计算

    # 计算dataframe中三个变量之间的相关性

    cor(df[, c('a', 'b', 'c')])
    
              a         b         c
    a 1.0000000 0.9279869 0.9604329
    b 0.9279869 1.0000000 0.8942139
    c 0.9604329 0.8942139 1.0000000

    结果的解读如下:

    a与b的相关系数为0.9279869。

    a与c的相关系数为0.9604329。

    b与c的相关系数为0.8942139。

    所有变量之间的相关性

    # 计算dataframe中所有变量之间的相关性。

    cor(df)
    
               a          b          c          d
    a  1.0000000  0.9279869  0.9604329 -0.7915488
    b  0.9279869  1.0000000  0.8942139 -0.7917973
    c  0.9604329  0.8942139  1.0000000 -0.8063549
    d -0.7915488 -0.7917973 -0.8063549  1.0000000

    计算数值变量的相关性

    下面的代码显示了如何计算数据帧中仅数值变量之间的相关性

    cor(df[,unlist(lapply(df, is.numeric))])
    
               a          b          c          d
    a  1.0000000  0.9279869  0.9604329 -0.7915488
    b  0.9279869  1.0000000  0.8942139 -0.7917973
    c  0.9604329  0.8942139  1.0000000 -0.8063549
    d -0.7915488 -0.7917973 -0.8063549  1.0000000

    相关系数可视化

    可视化变量成对相关性系数

    install.packages('psych')
    
    #load psych package
    library(psych)
    
    #create pairs plot
    pairs.panels(df)

    参考:R

    参考:How to Calculate Correlation Between Multiple Variables in R

    展开全文
  • 相互独立的两个变量可以分开优化,各自优化的结果不会相互影响,相互关联的变量因为他们之间的相关性,整体优化的结果与他们分开优化的结果不同,所以不能相互关联的变量不能分开进行优化,设有目标优化问题,如果...

    相互独立的两个变量可以分开优化,各自优化的结果不会相互影响,相互关联的变量因为他们之间的相关性,整体优化的结果与他们分开优化的结果不同,所以不能相互关联的变量不能分开进行优化,设有多目标优化问题 min f(x) = (f_{1}(x),f_{2}(x),...,f_{n}(x)),如果存在决策向量 x ,实数{a_{1}},{a_{2}},{b_{1}},{b_{2}},至少一个目标函数{f_{k},1\leqslant k\leqslant n},使得{f_{k}(x)|{_{x{_{i}}=a{_{2}},x{_{j}=b{_{1}}}}}}< f_{k}(x)|{_{x{_{i}}=a{_{1}},x_{j}=b_{1}}},{f_{k}(x)|{_{x{_{i}}=a{_{2}},x{_{j}=b{_{2}}}}}}> <f_{k}(x)|{_{x{_{i}}=a{_{1}},x_{j}=b_{2}}},那么变量x{_{i}}x{_{j}}相关。

    展开全文
  • 一、数值变量相关性分析 Pearson相关系数 Pearson相关系数度量了两连续变量之间的线性相关程度 「R语言」-> cor( x1,x2,method=‘pearson’) Spearman相关系数 Spearman等级相关系数可以衡量非线性关系变量...

    一、分类 & 分类·相关性分析

    分类变量分析方法的选取与数据状态有较大相关性,计数据样本量为n,两变量交叉单元格数据为T。

    1. 卡方检验
      卡方检验科用于对二维列联表的行变量和列变量的相关性检验,只能反应相关统计学意义,无法分析相关性强度
      · 当所有T≥5并且总样本量n≥40,用Pearson卡方进行检验
      · 当T<5但T≥1,并且n≥40,用连续性校正的卡方进行检验
      「R语言」>chisq.test(x1,x2)
    2. Fisher精确检验
      可以用于检验任何 R×CR\times C 数据之间的相关关系(也可用于分析2*2数据)。与卡方检验只能拟合近似分布不同的是,Fisher精确检验可以分析精确分布,更适合分析小样本数据。
      · T<1或n<40,则用Fisher’s检验
      「R语言」> fisher.test(x1,x2)
      · R 中fisher.test()可以在任意行列数大于等于2的二维列联表中使用,但不能用于2×2的列联表
    3. Cochran-Mantel-Haenszel检验
      Cochran-Mantel-Haenszel检验的原假设为:两个名义变量(x1,x2)在第三个变量(x3)的每一层中都是条件独立的
      「R语言」> mantelaen.test(x1,x2,x3)

    二、有序 & 有序·相关性分析

    (一)当有序分类不能认为是定距时(比如三等奖和二等奖的差异与二等奖和一等奖的差异一般不同):

    1. Spearman相关
      Spearman相关又称Spearman秩相关,用于检验至少有一个有序分类变量的关联强度和方向。
    2. Kendall’s tau-b相关系数
      Kendall’s tau-b 相关系数是用于检验至少有一个有序分类变量关联强度和方向的非参数分析方法。该检验与Spearman相关的应用范围基本一致,但更适用于存在多种关联的数据(如列联表)。

    (二)当可以认为是定距时:

    1. Mantel-Haenszel 趋势检验
      该检验也被称为Mantel-Haenszel 卡方检验、Mantel-Haenszel 趋势卡方检验。该检验根据研究者对有序分类变量类别的赋值,判断两个有序分类变量之间的线性趋势

    三、数值 & 数值·相关性分析

    1. Pearson相关系数
      Pearson相关系数度量了两个连续变量之间的线性相关程度
      「R语言」> cor( x1,x2,method=‘pearson’)

    2. Spearman相关系数
      Spearman等级相关系数可以衡量非线性关系变量间的相关系数,是一种非参数的统计方法,可以用于定序变量或不满足正态分布假设的等间隔数据;
      「R语言」> cor( x1,x2,method=‘spearman’)

    3. KKendall秩相关系数
      Kendall秩相关系数也是一种非参数的等级相关度量,类似于Spearman等级相关系数。
      「R语言」> cor( x1,x2,method=‘kendall’)

    • 「R」stata包:chisq.test() , fisher.test(), mantelhaen.test() , cor()
      -cor() 函数最重要的参数为 X,use,method。
      ---- X即指定分析的变量;
      ---- use指定缺失值处理的方法:all.obs则假设不存在缺失数据,遇到缺失数据时将会报错;everything遇到缺失数据时,结果将返回missing;complete.obs进行行删除;pairwise.complete.obs则成对删除
      ---- method指明计算相关系数的方法:pearson、spearman、kendall

    四、分类 & 有序·相关性分析

    (一)有序变量 X1X_1 & 二分类变量X2X_2

    1. 无因果关系:
      1.1 Biserial秩相关:
      Biserial秩相关可以用于分析二分类变量和有序分类变量之间的相关性。在用二分类变量预测有序分类变量时,该检验又称为Somers’ d检验。此外,Mann-Whitney U检验也可以输出Biserial秩相关结果。

    2. 有序变量为因变量:
      2.1 有序Logistic回归
      有序Logistic回归在本质上并不是为了分析二分类变量和有序分类变量之间的相关性。但我们仍可以用有序logistic回归及其对应的OR值判断这两类变量之间的统计学关联。

    3. 二分变量为因变量:
      3.1 Cochran-Armitage 检验
      Cochran-Armitage 检验又称Cochran-Armitage 趋势检验,常用于分析有序分类自变量和二分类因变量之间的线性趋势。该检验可以判断随着有序分类变量的增加,二分类因变量比例的变化趋势,是对其线性趋势的统计学分析。
      3.2 Mantel-Haenszel卡方检验:
      Mantel-Haenszel卡方检验也称线性趋势检验(Test for Linear Trend)或定序检验(Linear by Linear Test)。要求一个变量是有序的,另一个变量可为二分类也可为多分类。
      3.3 Cochran-Armitage趋势检验:
      Cochran-Armitage 趋势检验要求一个变量是有序分类变量,另一个变量是二分类变量。

    (二)有序变量 X1X_1 & 多分类变量X2X_2

    1. Mantel-Haenszel卡方检验:
      Mantel-Haenszel卡方检验也称线性趋势检验(Test for Linear Trend)或定序检验(Linear by Linear Test)。要求一个变量是有序的,另一个变量可为二分类也可为多分类。

    五、分类 & 数值·相关性分析

    (一)数值变量 X1X_1 & 二分类变量X2X_2tt 检验等

    1. Point-biserial 相关性分析
      Point-biserial相关是Pearson相关的一种特殊形式,适用于分析二分类变量和连续变量之间的相关性
    2. tt 检验 :
      相当于检验不同X2X_2对应的X1X_1是否有差异,有显著差异则相关,无显著差异则无法说明其相关(运用假设检验的原因不能直接说不相关)。注意这里的 p 值代表检验结果显著程度,与相关程度无直接关系。

    (二)数值变量 X1X_1 & 多分类变量X2X_2:单因素方差分析等

    1. ANOVA:
      跟 t 检验一个原理,就是分类变量的类别超过2类后也适用。p 值小于显著水平则两变量具有一定的相关性,若 p 值大于显著性水平则无法证明两变量具有相关性(运用假设检验的原因不能直接说不相关),同样 p 值代表检验结果显著程度,与相关程度无直接关系。

    六、有序 & 数值·相关性分析

    没有专门针对有序变量和数值变量相关性分析的方法,一般将连续变量视为有序变量,按照有序 & 有序的方法进行分析

    展开全文
  • 1.各数值变量相关性分析,绘制相关性矩阵的热力图,矩阵只是数值型 import seaborn as sns corrmat = data_train.corr() ##corrmat是相关性矩阵 f, ax = plt.subplots(figsize=(20, 9))##绘制画布 sns.heatmap...

    1.各数值变量的相关性分析,绘制相关性矩阵的热力图,矩阵只是数值型

    import seaborn as sns
    corrmat = data_train.corr() ##corrmat是相关性矩阵
    f, ax = plt.subplots(figsize=(20, 9))##绘制画布
    sns.heatmap(corrmat, vmax=0.8, square=True) ##得到各特征图的热力图

    像素块越红表示两者之间相关性越强,也可以查看corrmat变量查询具体数值。我们可以很清楚地看到与“SalePrice”相关性很强的有:

    • OverallQual:总评价
    • YearBuilt:建造年份
    • ToatlBsmtSF:地下室面积
    • 1stFlrSF:一楼面积
    • GrLiveArea:生活区面积?
    • FullBath:浴室?what。。。到底什么意思,知道的麻烦说一下
    • TotRmsAbvGrd:总房间数(不包括浴室)
    • GarageCars:车库可容纳车辆数
    • GarageArea:车库面积

    2.对非数值型变量预处理之后进行相关性分析

    上面的矩阵只是数值型的,像Neighborhood这种离散型数据则没有参与计算,所以下面尝试着使用sklearn来对这些特征进行处理。

    from sklearn import preprocessing
    import matplotlib.pyplot as plt
    import seaborn as sns
    f_names = ['CentralAir', 'Neighborhood'] #'CentralAir', 'Neighborhood'这两列数据都不是数值型数据
    ##进行数值化之后进行处理
    for x in f_names:
        label = preprocessing.LabelEncoder()
        data_train[x] = label.fit_transform(data_train[x])
    corrmat = data_train.corr()
    f, ax = plt.subplots(figsize=(20, 9)) ##绘制画布
    sns.heatmap(corrmat, vmax=0.8, square=True)##绘制相关矩阵的热力图

     

    3.显示和主变量相近的十个变量的关系矩阵

    • annot: 默认为False,为True的话,会在格子上显示数字
    • vmax, vmin: 热力图颜色取值的最大值,最小值,默认会从data中推导
    import matplotlib.pyplot as plt
    import seaborn as sns
    k  = 10 # 关系矩阵中将显示10个特征
    cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index ##显示和saleprice相近的十个关系变量矩阵
    cm = np.corrcoef(data_train[cols].values.T)
    sns.set(font_scale=1.25)
    hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
    plt.show()

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 风控建模六:变量相关性分析及筛选方法 不论是开发逻辑回归评分卡,还是GBM机器学习模型 import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn.preprocessing import ...
  • [小结] 二元变量相关性分析

    千次阅读 2017-10-30 10:41:59
    1、服从正态分布的两连续变量,若有一份随机样本...3、对两反映属性的分类变量,若有一份随机样本,可做交叉分类的频数表,利用独立性卡方检验和列联表系数来描述关联性。 4、相关系数和列联系数的计算都是基于一份
  • 个变量之间存在确定性:关系和不确定关系(会存在一定的波动范围),就好比你的亲生母亲绝对只有一个,而你的亲叔叔可能有好几个(可以在1叔—4叔之间波动) 相关性一般分为 1:强正相关关系 (一个值会随着另一...
  • SPSS-两变量相关性分析(转)

    千次阅读 2019-09-28 01:38:08
    个变量之间存在确定性:关系和不确定关系(会存在一定的波动范围),就好比你的亲生母亲绝对只有一个,而你的亲叔叔可能有好几个(可以在1叔—4叔之间波动) 相关性一般分为 1:强正相关关系 (一个值会随着另一...
  • 文章目录一、简单相关性分析1、变量间的关系分析(1)函数关系(2)相关关系i、平行关系ii、依存关系iii、两者关系2、简单相关分析(1)计算两变量之间的线性相关系数i、协方差定义、柯西-施瓦尔兹不等式a、协方差...
  • 拓展Excel数据分析功能 选择excel加载项: 勾上分析工具库: 分析相关系数 数据分析 - 相关系数 - 选择输入范围 - 输出范围 点击确认计算出相关R值 :R值0.4~0.6属于弱相关 计算R方:插入散点图 ...
  • 变量相关性热力图

    千次阅读 2019-04-13 10:41:36
    衡量变量相关性我们一般都是计算变量两两之间的皮尔逊相关系数( Pearson correlation coefficient)。为了能够更好的展现变量之间的相关性,下面为大家介绍如何利用热力图来表示变量之间的相关性。 def corr_map...
  • 二值变量间的相关性分析

    千次阅读 2018-12-10 14:32:00
    二值类别变量相关性分析 目前,在相关性分析领域,主要使用的技术指标有pearson相关系数、spearman相关系数、kendall相关系数。三者有一共同的特点,它们都是通过两组数据的元素大小来刻画相关性,也即同增同减的...
  • matplotlib绘制两个变量相关性图详解

    千次阅读 2020-02-23 22:13:54
    ''' fig, axs = plt.subplots(2, 1) ''' #单条线: plot([x], y, [fmt], data=None, **kwargs) #条线一起画 plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) ''' # 两条曲线 # axs[0]表示第一图 axs[0]....
  • 随机变量相关性

    千次阅读 2020-07-13 00:43:41
    研究两个变量之间的相关性是相关性分析最常用的地方。相关性是指两个变量之间的关联程度。其数学定义可以描述为: 其中 为x与y之间的协方差; 为x的方差; 为y的方差。 为x,y相关性的取值范围。 协方差的取值...
  • Python 数据相关性分析

    万次阅读 多人点赞 2018-04-25 15:09:49
    会有一这样的场景,有若干数据罗列在我们的面前,这组数据相互之间可能会存在一些联系,可能是此增彼涨,或者是负相关,也可能是没有关联,那么我们就需要一种能把这种关联性定量的工具来对数据进行分析,从而给...
  • 基于相关性分析和主成分分析的变量筛选方法 https://www.zybuluo.com/notmylove/note/1508052 主成分分析法指标筛选 既然在课程专题四中讲到主成分分析法,那么这里再进一步介绍主成分分析法,概括起来说,...
  • 相关性分析

    2019-08-23 15:27:33
    当需要同时考察多个变量间的相关关系时,一一绘制他们间的简单散点图是比较麻烦的。此时可以利用散点矩阵图同时绘制各变量间的散点图,从而快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要。 ...
  • y依赖于x的弱相关性,对于变量y来说,在其广泛的值域范围内,变量x在很大范围内的变化只是引起y的很小变化,我们说y依赖于x成弱相关性。反过来说,对于变量x,在变量y广泛的值域范围内,变量y在很小范围内的变化就...
  • 多变量线性相关分析 现实世界中的数据科学 (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语言20-变量相关性

    2020-02-10 10:18:21
    cor.test查看变量间的相关性 相关性 cor.test(pf$age,pf$friend_count,method='pearson') with(pf, cor.test(age,friend_count,method = 'pearson')) 求解子集的相关性 with(subset(pf,age <= 70), cor....
  • 再说相关性分析

    2020-06-25 16:36:16
    或者多个变量,或者变量与变量之间吧的关联程度,都可以,就是说A和B之间肯定存在着某种关系,确定的关系我们用函数就可以描述出来了,而这种不稳定、不确定、不精确变化的关系我们就称之为相关关系。 比如不久前的...
  • 【数据相关性分析】数据相关性分析理论基础

    万次阅读 多人点赞 2018-07-18 17:24:38
    思考如何进行相关性分析相关性分析的方法有哪些?说出你的想法 相关分析的方法很,初级的方法可以快速发现数据之间的关系,如正相关,负相关或不相关。中级的方法可以对数据间关系的强弱进行度量,如完全...
  • % 数据可视化——变量相关性 % 读取数据 clc clear all load('Data.mat') % 绘制变量间相关性强度图 covmat = corrcoef(Data); figure(1) x3str={'z1','z2','z3','z4','z5','z6','z7','z8','z9','z10','z11','z12'...
  • 数据相关性分析

    千次阅读 2019-03-19 22:02:16
    相关性分析主要用来描述变量之间的线性相关程度。 在二元变量相关性分析过程中,常用的有Pearson相关系数,Spearman秩相关系数以及判定系数。 Pearson积矩相关系数 Pearson 相关评估两连续变量之间的线性关系...
  • numpy相关性分析

    万次阅读 2016-06-09 11:36:29
    相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。下面我们将使用两个股票的收盘价分析他们股票的相关性。 首先给出两个股票30天的收盘价数据,分别创建两个数组: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,386
精华内容 15,354
关键字:

多个变量的相关性分析