数学建模常用算法汇总及python,MATLAB实现(四)—— pandas和MATLAB实现相关性分析

相关性分析

文章目录

  • 相关性分析
    • 1. 四种不同类型的变量
    • 2. 变量相关性的指标
      • (1) Pearson相关系数(定距/比)
      • (2) Spearman 等级相关系数(定序和定序之间)
      • (3) kendall tua-b 等级相关系数(定序和定序之间)
    • 3. SPSS实现
    • 4. python实现
        • 依赖的包
        • 读入数据
        • 函数原型
          • 用法1
          • 用法2
          • 用法3



1. 四种不同类型的变量


定类, 定序, 定距, 定比


性质依次增多:

变量类型\性质 可以比较是否相等(= !=) 可以比较大小(> <) 可以做加减 可以做乘除(数值为0有"没有"的意义) 举例
定类 O X X X 性别
定序 O O X X 文化程度
定距 O O O X 摄氏度
定比 O O O O 收入

定类相比于定序不能做什么: 比如性别, 不能说男性比女性大, 或者女性比男性大, 只能说男!=女

定序相比于定距不能做什么:比如文化程度, 不知道中等文化程度比低等文化程度高多少, 也就是没有一个具体的指标, 不能做加减

定距相对于定比不能做什么: 比如摄氏度, 0摄氏度不代表没有温度, 所以摄氏度乘除是没有意义的(经典问题), 开尔文温度是可以乘除的


不能比较大小
可以比较大小
不能做加减
不能做乘除
啥都可以
数据类型
定类
定量
定序
定距
定比




2. 变量相关性的指标

定类 定序 定距
定类 卡方类检测 卡方类检测 Eta系数
定序 Spearman Spearman
定距 Pearson(定比也可)

(1) Pearson相关系数(定距/比)

适用于定距, 定比变量

(2) Spearman 等级相关系数(定序和定序之间)

(3) kendall tua-b 等级相关系数(定序和定序之间)




3. SPSS实现

分析->相关->双变量/偏相关(距离不用管)

一般是双尾检测

⼀、检验⽬的不同
1、双尾检验:检验⽬的是检验抽样的样本统计量与假设参数的差是否过⼤(⽆论正⽅向,还是负⽅向),把风险分摊到左右两侧。⽐如显
著性⽔平为5%,则概率曲线的左右两侧各占2.5%,也就是95%的置信区间。
2、单尾检验:检验⽬的只是注重验证是否偏⾼,或者偏低,也就是说只注重验证单⼀⽅向,就⽤单侧检验。⽐如显著性⽔平为5%,概率曲
线只需要关注某⼀侧占5%即可,即90%的置信区间。
⼆、⽤法不同
1、研究⽬的是想判断两个数据的均值是否不同, 需要⽤双尾检验。

  1. 研究⽬的是仅仅想知道⼀个数据的均值是不是⾼于(或低于)另⼀个数据, 则可以采⽤单尾检验



4. python实现

依赖的包

利用pandas包

import pandas as pd



读入数据

data = pd.read_csv('你要读取的数据集的路径')

抠两列出来

s1 = data['属性1']
s2 = data['属性2']



函数原型

s1, s2是上面写的, 是数据data的其中两列(也就是两个属性的数据)

用法1
s1.corr(s2, method='什么斯皮尔曼 皮尔逊...')
用法2
pd.DataFrame(np.array([s1, s2]).T).corr()
用法3

用法1, 2都是要看两个属性的相关性, 如果一次性要看所有连续属性之间的相关系数用下面这种

data.corr()

返回一个DataFrame, 里面是相关系数矩阵



你可能感兴趣的:(零基础数学建模,python,算法,matlab,数据挖掘)