Python学习笔记-3群18组-杜杜狼-2017.8.10

Review Lesson 14 自动摘要

review的代码及注释

Lesson 15 相关分析

相关性系数(correlation coefficient)

相关系数是变量间关联程度的最基本测量度之一

相关分析(correlation analysis)

是研究现象之间是否存在某种依存关系,并对具体有依存关系的现象探讨其相关方向以及相关程度,是研究随机变量之间的相关关系的一种统计方法

相关系数基本特征

方向(direction)
正相关(positive correlation):两个变量变化方向相同
负相关(negative correlation):两个变量变化方向相反

量级(magnitude)
低度相关 0 <= |r| < 0.3
中度相关 0.3 <= |r| < 0.8
高度相关 0.8 <= |r| <= 1

计算相关系数公式

协方差的公式为
S_{xy}=\sum_i^N \frac{(x_i-\mu_x)(y_i - \mu_y)}{N-1}

相关系数的公式为
r = \frac{S_{xy}}{S_x S_y}

,其中Sx,Sy分别表示x和y的标准差。

如果用之前学过的z分数表示,则为:

r-coefficient.png

r: 相关系数
Zx: 变量x的Z分数
Zy: 变量y的Z分数
N: X和Y取值的配对个数

代码实现相关系数的计算

#均值
XMean = numpy.mean(X);
YMean = numpy.mean(Y);

#标准差
XSD = numpy.std(X);
YSD = numpy.std(Y);

#z分数
ZX = (X-XMean)/XSD;
ZY = (Y-YMean)/YSD;

#相关系数,套用第三个公式
r = numpy.sum(ZX*ZY)/(len(X));
r
#直接调用Python的内置的方法计算,返回的是相关系数2D Array
numpy.corrcoef(X, Y)

#使用pandas包的DF内置方法计算,返回相关系数矩阵
import pandas;

data = pandas.DataFrame({
    'X': X, 
    'Y': Y
})
data.corr()

安斯库姆四重奏(anscombe’s quartet)

这是个相关性分析的陷阱
数据可视化里最经典的案例:四组不同的数据做线性相关,得到相关系数一样(0.816)但实际作图可以看出很大差异。

在四幅图中,由第一组数据绘制的图表(左上图)是看起来最“正常”的,可以看出两个随机变量之间的相关性。从第二组数据的图表(右上图)则可以明显地看出两个随机变量间的关系是非线性的。第三组中(左下图),虽然存在着线性关系,但由于一个离群值的存在,改变了线性回归线,也使得相关系数从1降至0.81。最后,在第四个例子中(右下图),尽管两个随机变量间没有线性关系,但仅仅由于一个离群值的存在就使得相关系数变得很高。

Python学习笔记-3群18组-杜杜狼-2017.8.10_第1张图片

你可能感兴趣的:(Python学习笔记-3群18组-杜杜狼-2017.8.10)