数据特征分析(6)-相关性分析

1.相关性分析

分析连续变量之间的线性相关程度的强弱

图示初判 / Pearson相关系数(皮尔逊相关系数) / Sperman秩相关系数(斯皮尔曼相关系数)

# 图示初判
# (1)变量之间的线性相关性

data1 = pd.Series(np.random.rand(50)*100).sort_values()
data2 = pd.Series(np.random.rand(50)*50).sort_values()
data3 = pd.Series(np.random.rand(50)*500).sort_values(ascending = False)
# 创建三个数据:data1为0-100的随机数并从小到大排列,data2为0-50的随机数并从小到大排列,data3为0-500的随机数并从大到小排列,

fig = plt.figure(figsize = (10,4))
ax1 = fig.add_subplot(1,2,1)
ax1.scatter(data1, data2)
plt.grid()
# 正线性相关

ax2 = fig.add_subplot(1,2,2)
ax2.scatter(data1, data3)
plt.grid()
# 负线性相关
# 图示初判
# (2)散点图矩阵初判多变量间关系

data = pd.DataFrame(np.random.randn(200,4)*100, columns = [‘A‘,‘B‘,‘C‘,‘D‘])
pd.scatter_matrix(data,figsize=(8,8),
                  c = ‘k‘,
                 marker = ‘+‘,
                 diagonal=‘hist‘,
                 alpha = 0.8,
                 range_padding=0.1)
data.head()

2.Pearson相关系数

# Pearson相关系数

data1 = pd.Series(np.random.rand(100)*100).sort_values()
data2 = pd.Series(np.random.rand(100)*50).sort_values()
data = pd.DataFrame({‘value1‘:data1.values,
                     ‘value2‘:data2.values})
print(data.head())
print(‘------‘)
# 创建样本数据

u1,u2 = data[‘value1‘].mean(),data[‘value2‘].mean()  # 计算均值
std1,std2 = data[‘value1‘].std(),data[‘value2‘].std()  # 计算标准差
print(‘value1正态性检验:\n‘,stats.kstest(data[‘value1‘], ‘norm‘, (u1, std1)))
print(‘value2正态性检验:\n‘,stats.kstest(data[‘value2‘], ‘norm‘, (u2, std2)))
print(‘------‘)
# 正态性检验 → pvalue >0.05

data[‘(x-u1)*(y-u2)‘] = (data[‘value1‘] - u1) * (data[‘value2‘] - u2)
data[‘(x-u1)**2‘] = (data[‘value1‘] - u1)**2
data[‘(y-u2)**2‘] = (data[‘value2‘] - u2)**2
print(data.head())
print(‘------‘)
# 制作Pearson相关系数求值表

r = data[‘(x-u1)*(y-u2)‘].sum() / (np.sqrt(data[‘(x-u1)**2‘].sum() * data[‘(y-u2)**2‘].sum()))
print(‘Pearson相关系数为:%.4f‘ % r)
# 求出r
# |r| > 0.8 → 高度线性相关
# Pearson相关系数 - 算法

data1 = pd.Series(np.random.rand(100)*100).sort_values()
data2 = pd.Series(np.random.rand(100)*50).sort_values()
data = pd.DataFrame({‘value1‘:data1.values,
                     ‘value2‘:data2.values})
print(data.head())
print(‘------‘)
# 创建样本数据

data.corr()
# pandas相关性方法:data.corr(method=‘pearson‘, min_periods=1) → 直接给出数据字段的相关系数矩阵
# method默认pearson

3.Sperman秩相关系数

# Sperman秩相关系数

data = pd.DataFrame({‘智商‘:[106,86,100,101,99,103,97,113,112,110],
                    ‘每周看电视小时数‘:[7,0,27,50,28,29,20,12,6,17]})
print(data)
print(‘------‘)
# 创建样本数据

data.sort_values(‘智商‘, inplace=True)
data[‘range1‘] = np.arange(1,len(data)+1)
data.sort_values(‘每周看电视小时数‘, inplace=True)
data[‘range2‘] = np.arange(1,len(data)+1)
print(data)
print(‘------‘)
# “智商”、“每周看电视小时数”重新按照从小到大排序,并设定秩次index

data[‘d‘] = data[‘range1‘] - data[‘range2‘]
data[‘d2‘] = data[‘d‘]**2
print(data)
print(‘------‘)
# 求出di,di2

n = len(data)
rs = 1 - 6 * (data[‘d2‘].sum()) / (n * (n**2 - 1))
print(‘Pearson相关系数为:%.4f‘ % rs)
# 求出rs
# Pearson相关系数 - 算法

data = pd.DataFrame({‘智商‘:[106,86,100,101,99,103,97,113,112,110],
                    ‘每周看电视小时数‘:[7,0,27,50,28,29,20,12,6,17]})
print(data)
print(‘------‘)
# 创建样本数据

data.corr(method=‘spearman‘)
# pandas相关性方法:data.corr(method=‘pearson‘, min_periods=1) → 直接给出数据字段的相关系数矩阵
# method默认pearson

原文地址:https://www.cnblogs.com/Iceredtea/p/12229837.html

时间: 2024-10-09 20:15:09

数据特征分析(6)-相关性分析的相关文章

机器学习之数据探索——数据特征分析(分布分析)

数据特征分析与数据质量分析一道构成数据探索的两方面工作,在前文中介绍过关于数据质量分析的概况,本文将对数据特征分析作简介,并着重于分布分析的角度,相比于数据质量分析,数据特征分析更注重于找寻数据间的关系. 数据特征分析包括以下几个分析角度: 1.分布分析 2.对比分析 3.统计量分析 4.帕累托分析 5.正态性检验 6.相关性分析 其上每一个分析角度都有丰富的内容. 分布分析 顾名思义,分布分析研究数据的分布特征和分布类型.对于定量数据,需要了解分布形式,发现某些特大特小的异常值,通常用到散点图

数据特征分析:5.相关性分析

相关性分析 三点图矩阵初判多变量间关系,两两数据之间的,比如说4个数据ABCD,就有12个比较,第一个参数和第二个参数,第一个参数和第三个参数,.......这个图就是正态分布的接个参数,就没有任何的相关性 相关性分析 分析连续变量之间的线性相关程度的强弱 图示初判 / Pearson相关系数(皮尔逊相关系数) / Sperman秩相关系数(斯皮尔曼相关系数) import numpy as np import pandas as pd import matplotlib.pyplot as p

数据分析之数据质量分析和数据特征分析

1.数据质量分析 数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础,没有可信的数据,数据挖掘构建的模型将是空中楼阁. 数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据.在常见的数据挖掘工作中,脏数据包括: (1)缺失值:     (2)异常值:     (3)不一致的值:     (4)重复数据及含有特殊符号(如#.¥.*)的数据. 1.1缺失值分析        数据的缺失

matalb相关分法,案例:餐饮销量数据相关性分析

%% 餐饮销量数据相关性分析 clear; % 初始化参数 catering_sale = '../data/catering_sale_all.xls'; % 餐饮数据,含有其他属性 index = 1; % 销量数据所在列 %% 读入数据 [num,txt] = xlsread(catering_sale);%读取num %% 相关性分析 corr_ = corr(num);%corr_=线性相关(num) %% 打印结果 rows = size(corr_,1);%行数=取长度(corr_

数据特征分析:1.分布分析

几个基础分析思路: 分布分析.对比分析.统计分析.帕累托分析.正态性检测.相关性分析 分布分析 分布分析是研究数据的分布特征和分布类型,分定量数据.定性数据区分基本统计量. import numpy as np import pandas as pd import matplotlib.pyplot as plt % matplotlib inline #读取数据 data = pd.read_csv(r'C:\Users\Administrator\Desktop\python数据分析\深圳罗

「数据挖掘入门系列」数据探索之数据特征分析

对数据质量进行简单的分析后,我们就可以开始来分析数据的特征分析了.数据的特征分析可以从以下几个方面开展: 分布分析 对比分析 统计量分析 周期性分析 相关性分析 通过以上5种方式,可以找到数据中存在的某种特征. 分布分析 分布分析很容易理解,就是理解数据的分布情况.例如:在0-100区间有多少数据.100-1000有多少数据等等.我们一般可以使用直方图.饼图来展示数据的分布情况. 分布分析可以分为两种类型: 定量数据分布分析 定性数据分布分析 定量数据分布分析就是把数据分成一个个固定的区间,然后

运维监控大数据的提取与分析

本文内容整理来自[敏捷运维大讲堂]蒋君伟老师的线上直播分享.分别从以下3个维度来分享:1.云时代监控分析的窘境:2.使用标签标记监控数据的维度:3.监控数据应用场景. 云时代监控分析的窘境 在虚拟化与容器技术广泛应用的情况下,运维对象大规模地增长,监控平台每天存储的指标都以亿计,所以监控数据如今已经成了大数据.传统的监控工具在这种场景下,对于数据的提取分析,已经力不从心,反而成为了运维的负担. 我们用一个典型的互联网档案分析应用举例说明: 这个应用支持容灾与负载均衡,它部署在三个数据中心,并同时

相关性分析方法(Pearson、Spearman)

有时候我们根据需要要研究数据集中某些属性和指定属性的相关性,显然我们可以使用一般的统计学方法解决这个问题,下面简单介绍两种相关性分析方法,不细说具体的方法的过程和原理,只是简单的做个介绍,由于理解可能不是很深刻,望大家谅解. 1.Pearson相关系数  最常用的相关系数,又称积差相关系数,取值-1到1,绝对值越大,说明相关性越强.该系数的计算和检验为参数方法,适用条件如下: (适合做连续变量的相关性分析) (1)两变量呈直线相关关系,如果是曲线相关可能不准确. (2)极端值会对结果造成较大的影

【地理空间数据挖掘】相关性分析

主要从普通的相关性和空间的自相关性分析.普通的相关性如变量之间的相关性,特别是目标变量与因子变量之间的相关性分析,本身也是预处理中特征选择的重要方法:而空间的相关性分析则分析则相关性,其中空间关联是其显著的特点:时间序列之间也存在空间相关性,对其进行探索性分析可考察空间数据(栅格)的时间联动性. 1普通相关性分析 就是分析变量之间的相关性,包括以下5个方面 1. Pearson相关系数探索连续变量相关性 Pearson相关性系数是最基本的相关系数,它考查两个事物之间的关联程度,也就是说,当一个变