相关分析是分析两个变量间相互关系的分析方法,一般用在数据分析比较靠前的探索性数据分析阶段。
相关关系根据其分析方法和处理对象不同,可以分为简单相关分析、偏相关分析和非参数相关分析等。本文小编只讨论简单相关分析。
简单相关关系主要分析两个变量之间的相互依存的关系,可以通过主观观测和客观测度指标来衡量。主观观测指标之间的相关关系,主要是通过两个变量之间散点图的手段进行。客观测度主要是通过统计分析的方法,计算相关系数,利用相关关系数值的符号和大小来判定相关关系的方向和强弱。
在进行相关分析之前我们一般会用散点图的形式,观察两个变量是否存在着相关关系,也就是看散点图中点的分布是否趋近于某条直线。
本节我们讨论下人们的衣着与文教娱乐之间是否存在着相关关系。
理论
相关系数介绍
pearson correlation coefficient(皮尔逊相关性系数)
常用的相关系数求法,采用协方差cov(X,Y)/标准差的乘积(σX, σY)。
数据要求: 适用连续型数据。线性数据、连续且符合正态分布;数据间差异不能太大;变量准差不能为0,即两变量中任何一个值不能都是相同。
spearman correlation coefficient(斯皮尔曼秩相关性系数)
根据原始数据的排序位置进行计算。
数据要求:适用分析顺序型数据。用于解决称名数据和顺序数据相关的问题,适用于两列变量,而且具有等级变量性质具有线性关系的数据,能够很好处理序列中相同值和异常值。
kendall correlation coefficient(肯德尔相关性系数)
等级相关系数,适用于两个变量均为有序分类的情况
数据要求:适用类别型数据。肯德尔相关性系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。
所以针对【连续、正态分布、线性】数据,采用pearson相关系数;针对【非线性的、非正态】数据,采用spearman相关系数;针对【分类变量、无序】数据,采用Kendall相关系数。一般来讲,线性数据采用pearson,否则选择spearman,如果是分类的则用kendall。
相关系数计算
其中r ∈ [ − 1 , 1 ]。为1则说明完全正相关,为-1则说明完全负相关,为0则说明完全不相关。
预分析
一般在进行相关分析之前使用散点图来进行主观观测。
sns.scatterplot(data_pca['衣着'], data_pca['文教娱乐'])
从图中我们可以知道衣着和文教娱乐存在着比较显著的正相关关系,那接下来我们分别使用SPASS工具和Python编程的两种方进行探讨。
Spass实战
- 依次分析 -> 相关 -> 双变量
- 依次将分析的两个变量”衣着“和“文教娱乐"两个变量选进变量框中,选择皮尔逊系数,选择双尾显著性检验
- 得到最终表,显著性主要看Sig值,查看皮尔逊系数查看相关关系。
如果sig值小于0.05我们拒绝原假设(两个变量不相关),认为两个变量相关。
进一步的查看皮尔逊系数,月接近1,说明相关性程度越大。
Python实战
注意:相关性系数在统计学中相当重要,不同的工具如Pandas, Scipy, numpy都对其进行了实现。
# 三种方式的显著性检验pearsonr,spearmanr,kendalltau。
# 显著性小于0.05.说明两个变量相关具有统计学支持基础。
# 返回的值是correlation, p_value
print(scipy.stats.pearsonr(data_pca['衣着'],data_pca['文教娱乐']))
# 方差齐性检验,如果不满足方差齐则不能使用皮尔逊系数。小于0.05,满足方差齐性。
print(scipy.stats.levene(data_pca['衣着'],data_pca['文教娱乐']))
# 计算两变量的相关系数
print(np.corrcoef(data_pca['衣着'],data_pca['文教娱乐']))