Let me think... 咱们何时学过相关系数(Correlation)一个词语。对了,就是验证模型好坏的R方里面的R。在R语言里调用也很简单:网络
cor(x, y)
可是,该如何理解相关系数呢?是否相关系数能够验证OLS模型的好坏呢?这是本篇博文所要探讨的事。spa
咱们定义相关系数R为:.net
$$R = \frac{E(XY)-E(X)E(Y)}{\sqrt{[E(X^2) - E^2(X)][E(Y^2) - E^2(Y)]}}$$3d
咱们看,这个相关系数到底表明着什么。code
显然,咱们能够转化以上的相关系数为:blog
$$R = \frac{\frac{(x - \bar{x})}{N}}{\sigma^2_x}·\frac{\frac{(y - \bar{y})}{N}}{\sigma^2_y}$$图片
这种方式理解的相关系数,实际上是全部点与
$$(\bar{x}, \bar{y})$$
之间的距离标准化后的值。换句话说,R方式衡量到数据中心点的距离的一个标准。ip
咱们首先回到协方差(Covariance)的定义中来。协方差的定义为,ci
$$cov(x, y) = E[(x - \bar{x})(y - \bar{y})]$$get
这个定义是从方差(Variance,试比较二者英文间的差距)的概念来的
$$var(x) = E[(x - \bar{x})(x - \bar{x})]$$
方差是描述一维数据的疏散程度,所以,协方差则是描述二维数据的疏散程度。这是理解协方差的一种手段。
另外一种手段是以白数据(数据只是在各个方向上符合高斯分布)的线性变换:
图片引用自会敲键盘的猩猩的博客
然后,显然,
$$R = \frac{cov(x, y)}{\sigma^2_x\sigma^2_y}$$
显然,这就是将协方差矩阵作了一次调整,使得对角线(不是反对角线)上的数据为1。这也就说明取消了协方差在自身变异上影响,此外,数值也被严格限定在了-1~1之间。
用一样地方法,咱们也能够作出变异系数(coefficient of variation,cv)的概念:
$$cv(x) = \frac{\sigma}{\mu}$$
这个概念相似。是标准差去量纲的结果,经过这种处理,使得咱们很容易两组数据的疏散程度,而不用考虑到自己数据的影响,由于cv自己是去量纲并严格限制在-1 ~ 1之间的度量。
提示:试经过协方差引伸到PCA方法。
这里直接使用的理解方式就是咱们通常意义上的R方。
$$R^2 = 1 - \frac{\sum{(Y - \hat{Y})^2}}{\sum{(Y - \bar{Y})^2}}= 1 - \frac{SSE}{SSTO}$$
咱们把上式中的SSTO称为整体方差,SSE称为模型偏差。
所以咱们看出
$$SSTO - SSE$$
是衡量模型好坏的方式:若是这个值很大,说明模型偏差对整体方差的贡献较低;相反,贡献较高。而为了归一化这个值,最简单地方法就是除以SSTO使得度量值在0~1之间。
另外一个准确地描述是,R方描述的是因变量的方差有多少比例经过自变量模型所解释。
这就是相关系数的平方为何能衡量模型好坏的缘由。
高的R方不必定表明模型的预测能力强。R方没法考虑过拟合。
R方并不能保证拟合效果。缘由是咱们能够看出,R方基于的假设实际上是一个二维的高斯分布,或者说,R方只能预测某种线性趋势。若是遇到明显的非线性关系,显然R方是无效的。
咱们称以前描述的相关系数为Pearson相关系数。咱们看到了Pearson相关系数的种种局限,所以,为了不相关系数没法解释非线性关系这个问题,其余种的相关系数也被发明出来。在此介绍两种常见的替代方案:Kendall Tau相关系数和Spearman相关系数。这两种系数的特色是,其实都是基于顺序的相关系数。
Kendall Tau相关系数的原理至关简单,假设就是:
i) 若是x和y有同增的关系,则对于任何$$(x_i, y_i), (x_j, y_i)$$,若是$$x_i < x_j$$,则$$y_i < y_j$$
ii) 相反,若是x和y有同减的关系,则若是$$x_i < x_j$$,则$$y_i > y_j$$
所以咱们能够检查全部点对(Point Pairs,即两个二维点),计算二维数据里面符合条件i)的点对(一致点对,concordant point pairs)对数目和ii)的点对(不一致点对,discordant point pairs)数目,若是这两个值的差值来描述关系。显然若是两种状况的点数目大体至关,说明两个维度关系至关“混乱”。
此外,咱们要讲这个值归一化,简单地,除以点对的总数目便可,显然点对个数为,
$${n \choose 2} = \frac{(n-1)n}{2}$$
所以,最后计算的kendall tau相关系数为:
$$\tau = \frac{\#concordant - \#discordant}{n(n - 1)/2}$$
固然,咱们基于这个假设,能够很容易看出,
kendall tau相关系数的使用场景比较多,由于kendall tau不依赖于线性假说。
kendall tau相关系数描述的两组数的单调性特征,任何一种单调的关系均可以采用kendall tau来实现。
Spearman相关系数与Pearson相关系数很相似,只是最后计算的是两个变量转化为序数(Rank)的操做。能够参考下面的转换:
咱们用rg(x)表示x的序数变换,d为序数之差,所以:
$$cor_{spearman}(x, y) = \frac{cov(rg(x), rg(y))}{\sigma^2_{rg(x)}\sigma^2_{rg(y)}} = 1 - \frac{6d_i^2}{n(n^2 - 1)}$$
Spearman相关系数的优势是显然的:
当数据具备非线性相关时,Spearman相关系数敏感度比Pearson要好
当没有outliers时,Spearman和Pearson结果相似
当有outliers时,Spearman比较稳健
咱们在此讨论相关系数的其余应用。
相关系数描述的是因变量与自变量的关系这个直接能够做为筛选特征的一个标准。
自变量与自变量的Pearson相关系数很强也每每意味着共线性,这提示PCA降维的效果会很是好。
咱们回到相关系数的性质,相关系数描述的是两个自变量之间的关系是否紧密,其实必定程度就是描述类似性,即两个向量的类似性。
这提示,相关系数能够做为类似度(Similarity)用来建构协同过滤的推荐系统。这种方案也被叫作Pearson类似度。咱们能够以此来比较Pearson类似度和余弦类似度是相似模式,Pearson类似度是去中心化的余弦类似度:
$$Sim_{cosine} = \frac{\lt x, y\gt}{||x||·||y||}$$
$$Sim_{pearson} = \frac{\lt (x - \bar{x}), (y - \bar{y})\gt}{||(x - \bar{x})||·||y - \bar{y})||}$$
首先,咱们要有一个敏感度,任何类似度均可以做为距离的度量。而事实上,咱们常常用(1 - 归一化后的类似度)来表示距离。
而,距离对咱们来讲意味着什么?距离意味着全部依赖距离的方法均可以运用到相关系数。
KMeans聚类是一个常见地基于距离假设的模型。能够构想的例子是,在作用户分类的时候,能够把他们购买某一些商品(每每具备一类特征的商品)的矩阵转化为一个相关系数的特征,从而得到具备解释性的模型。
网络分析是另外一个典型的基于距离的门类,所以,基于全部用户之间的距离(值得注意的是,相关系数造成的网络颇有多是个全链接的网络)能够完成全部网络分析技术(节点的中心特征,社群特征等)。