简单相关性分析(两个连续型变量)

您所在的位置:网站首页 双变量相关性分析方法r语言 简单相关性分析(两个连续型变量)

简单相关性分析(两个连续型变量)

2023-11-09 00:52| 来源: 网络整理| 查看: 265

目录:【把握大方向】变量间的关系分析函数关系相关关系平行关系——相关分析依存关系——回归分析【概念定义】简单相关分析计算两个连续变量之间的线性相关系数协方差定义、柯西-施瓦尔兹不等式——为什么 \rho 的值域是[-1, 1]?计算 Pearson 相关系数(R语言/Python)相关系数的假设检验(R语言)\rho = 0 的检验显著性检验的解读—— P-value 代表什么?容易被忽略的假象——显著性与样本量 n 有关系?【深度探讨】纯探讨向—— \rho=0 是什么情况【实战经验】我工作中的相关性分析案例经验:常用于分析指标间的相关性

ps. 均附上 R语言 / Python 的双版本代码和示例

一、变量间的关系分析

变量之间的关系可分为两类:

存在完全确定的关系——称为函数关系不存在完全确定的关系——虽然变量间有着十分密切的关系,但是不能由一个或多各变量值精确地求出另一个变量的值,称为相关关系,存在相关关系的变量称为相关变量

相关变量的关系也可分为两种:

两个及以上变量间相互影响——平行关系一个变量变化受另一个变量的影响——依存关系

它们对应的分析方法:

相关分析是研究呈平行关系的相关变量之间的关系回归分析是研究呈依存关系的相关变量之间的关系

回归分析和相关分析都是研究变量之间关系的统计学课题,两种分析方法相互结合和渗透

《多元统计分析及R语言》第四版王斌会 P46二、简单相关分析相关分析:就是通过对大量数字资料的观察,消除偶然因素的影响,探求现象之间相关关系的密切程度和表现形式

主要研究内容:现象之间是否相关、相关的方向、密切程度等,不区分自变量与因变量,也不关心各变量的构成形式

主要分析方法:绘制相关图、计算相关系数、检验相关系数

这里挑最常用的Pearson相关系数来讲解

1、 计算两变量之间的线性相关系数

所有相关分析中最简单的就是两个变量间的线性相关,一变量数值发生变动,另一变量数值会随之发生大致均等的变动,各点的分布在平面图上大概表现为一直线。

二元总体X与Y散点图

线性相关分析,就是用线性相关系数来衡量两变量的相关关系和密切程度

给定二元总体 (X,Y)

总体相关系数用 ρ 来表示:

ρ_{X,Y}=\frac{cov(X,Y)}{\sqrt{var(X)var(Y)}}=\frac{E[(X-\mu_X)(Y-\mu_Y)]}{\sqrt{\sigma_{X}^{2}\sigma_{Y}^{2}}}

\sigma_x^2 X 的总体方差,

\sigma_y^2Y 的总体方差,

cov(X,Y)xy 的协方差。

【补充知识】什么是协方差?

(X,Y) 是二维随机变量,若 E[(X-E(X))(Y-E(Y))] 存在,

则称 cov(X,Y)=E[(X-E(X))(Y-E(Y))] ,叫 XY 的协方差,也叫 XY 的相关(中心)矩

X 的偏差 [X-E(X)]Y 的偏差 [Y-E(Y)] 乘积的期望。

解读

Cov(X,Y)0X 的偏差 [X-E(X)]Y 的偏差 [Y-E(Y)]有同时增加或同时减少的倾向,又由于 E(X)E(Y) 都是常数,所以就能够等价于 XY 有同时增加或者减少的倾向,称 XY 正相关Cov(X,Y)0X 的偏差 [X-E(X)]Y 的偏差 [Y-E(Y)] X 增加 Y 减少的倾向 Y 增加 X 减少的倾向,称 XY 负相关Cov(X,Y)=0 ,称 XY 不相关,这时可能是“ XY 取值毫无关联”,也可能是“有某种特殊的非线性关系

根据柯西-施瓦尔兹不等式(Cauchy–Schwarz inequality):

[Cov(X,Y)]^2\leq \sigma_X^2 \sigma_Y^2

变形得 \rho_{X,Y} 在区间 [-1,1]

ρ_{X,Y} 是没有单位的,因为分子协方差的量纲除以了分母的与分子相同的量纲

两变量线性相关性越密切,  \left| ρ_{X,Y} \right| 接近于 1 两变量线性相关性越低,  \left| ρ_{X,Y} \right| 接近于 0  \left| ρ_{X,Y} \right|=0 的情况跟上面 Cov(X,Y)=0 情况一样

协方差与相关系数的关系,就像绝对数与相对数的关系。

Pearson 相关系数(样本线性相关系数)

但是,学过统计的都知道,我们一般用样本线性相关系数来估计总体线性相关系数

(X,Y) 是二元总体,简单随机抽样 (x_1,y_1)(x_2,y_2),......,(x_n,y_n)

样本均值 \bar{x}\bar{y}\bar{x}=\frac{1}{n}\sum_{i=1}^n x_i\bar{y}=\frac{1}{n}\sum_{i=1}^n y_i

样本方差 s_{xx}s_{yy}s_{xx}=\frac{1}{n-1}\sum_{i=1}^n(x_i-\bar{x})^2s_{yy}=\frac{1}{n-1}\sum_{i=1}^n(y_i-\bar{y})^2

样本协方差 s_{xy}s_{xy}=\frac{1}{n-1}\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})

样本相关系数:

r=\frac{s_{xy}}{\sqrt{s_{xx}s_{yy}}}=\frac{l_{xy}}{l_{xx}l_{yy}}=\frac{\sum_{i=1}^{n}{(x-\bar{x})(y-\bar{y})}}{\sqrt{\sum_{i=1}^n{(x-\bar{x})^2\sum_{i=1}^n{(y-\bar{y})^2}}}}

l_{xx}x 的离差平方和, l_{yy}y 的离差平方和, l_{xy}xy 离差乘积之和(可正可负)

实际计算可按下面简化:

l_{xx} = \sum_{i=1}^n{(x-\bar{x})^2} = \sum_{i=1}^n{x}^2-\frac{(\sum_{i=1}^n x)^2}{n}

l_{yy} = \sum_{i=1}^n(y-\bar{y})^2 = \sum_{i=1}^n{y}^2-\frac{(\sum_{i=1}^ny)^2}{n}

l_{xy} = \sum_{i=1}^n(x-\bar{x})(y-\bar{y}) =\sum_{i=1}^nxy-\frac{(\sum_{i=1}^nx)(\sum_{i=1}^ny)}{n}

例子:研究身高与体重的关系(R语言)

> x y plot(x,y) > lxy lxy(x,x) [1] 556.9167 > lxy(y,y) [1] 813 > lxy(x,y) [1] 645.5 > r r [1] 0.9593031 # 也能直接用cor() > cor(x,y) [1] 0.9593031

这里的 r0 ,说明身高和体重是正的线性相关关系

至于 r 是否显著,就要看下面的显著性检验了。

Python版本的代码如下:

>>> import numpy as np >>> import matplotlib.pyplot as plt >>> x = np.array([171,175,159,155,152,158,154,164,168,166,159,164]) >>> y = np.array([57,64,41,38,35,44,41,51,57,49,47,46]) >>> np.corrcoef(x, y) array([[1. , 0.95930314], [0.95930314, 1. ]]) >>> plt.scatter(x, y) >>> plt.show()2、相关系数的假设检验

引入假设检验的原因: r 与其他统计指标一样,也会有抽样误差。从同一总体内抽取若干大小相同的样本,各样本的样本相关系数总会有波动。即根据样本数据是否有足够的证据得出总体相关系数不为0的结论

要判断不等于 0r 值是来自总体相关系数 ρ=0 的总体,还是来自 \rho\ne0 的总体,必须进行显著性检验

显著性检验是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断这个假设(备择假设)是否合理,即判断总体的真实情况与原假设是否有显著性差异

由于来自 \rho=0 的总体呈白噪声或者其他特殊分布

(为什么?看图第一行中间、第三行)

因为样本间没有线性相关性,可能会杂乱无章(即什么关系也没有),也可能呈现出一些非线性关系(更高阶的关系Pearson相关系数并不能表示出来)

图片来自Wiki

关于 \rho=0 会在第 3 章继续探讨

但是来自 \rho=0 的总体的所有样本相关系数 r 是呈对称分布(好好思考一下为什么)

所以 r 的显著性检验可以用双侧 t 检验来进行

(1)建立检验假设: H_{0}:\rho=0,H_{1}:\rho\ne0,\alpha=0.05

零假设:样本都是从 \rho=0 的总体中抽取的样本

备择假设:样本都是从 \rho \neq 0 的总体中抽取的样本

检验分为两种:

一种是总体近似服从二维正态分布一种是总体严格服从二维正态分布

(2)构造 t 统计量,计算相关系数 rt 值: t=\frac{|r-\rho| \sqrt{n-2}}{\sqrt{1-r^2}}=\frac{|r-0|}{\sqrt{\frac{1-r^2}{n-2}}}

若数据近似服从二维正态分布,且样本容量 n 不是特别小,此 t近似服从 t(n-2) 分布

如果数据严格服从二维正态分布

样本相关系数 r 的密度函数为:

\Gamma 是 gamma 函数, F_1(a,b;c;d) 是高斯超几何函数。

特殊情况下,当总体相关系数 \rho=0 时(假定两个随机变量是正态无相关的

样本相关系数 r 的密度函数为: f(r)=\frac{(1-r^2)^{\frac{n-4}{2}}}{B(\frac{1}{2},\frac{n-2}{2})}

B 是 beta 函数,此密度函数碰巧就是统计量 t 就是自由度为 n-2t 分布,即 t(n-2)

(3)计算 t 值和 P 值,做结论

在 R语言 中有 cor.test() 函数

# r的显著性检验, # 参数alternative默认是"two.side"即双侧t检验 # 参数method默认"pearson" > cor.test(x1, x2) Pearson's product-moment correlation data: x1 and x2 t = 10.743, df = 10, p-value = 8.21e-07 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.8574875 0.9888163 sample estimates: cor 0.9593031

R 的 cor.test() 在这里给出的结果还是比较丰富的。

这段检验该如何解读?

t 值为 \frac{0.9593\sqrt{12-2}}{\sqrt{1-0.9593^2}} = 10.743 df 自由度是 10 P-value =8.21\times10^{-7}0.05 ,在显著性水平 \alpha=0.05 上拒绝 H_{0} ,接受 H_{1} 认为该人群身高和体重成正线性关系置信度为 95\% 的区间估计是 [0.8574875,0.9888163] ,意思是总体线性相关系数 \rho 取值在 [0.8574875,0.9888163] 上的概率是 95\% \rho 的点估计为 0.9593031

这段代码检验了身高和体重的Pearson相关系数为 0 的原假设 H_0

即假设总体相关度为 0 ,则预计在一百万次中只会有少于一次的机会见到 0.9593031 这样大的相关度 \rho (即 P-value=8.21\times10^{-7} 0.05 ),远小于显著性水平 0.05

但其实这种情况几乎不可能发生,所以可以拒绝掉原假设,即身高和体重的总体相关度不为 0

容易被忽略的假象:

相关系数的显著性是与自由度 (n-2) 有关也即与样本数量 n 有关(这也是相关系数很明显的缺点)。

样本量小,相关系数绝对值容易接近于 1 ,样本量大,相关系数绝对值容易偏小,容易给人一种假象

在样本量很小 n=3 ,自由度 n-2=1 时,虽然 r=-0.907 却是不显著

在样本量很大 n=400 时,即使 r=-0.1 ,也是显著的

所以不能只看 r 值就下结论,还要看样本量大小

所以,我们要拿到充分大的样本,就能把样本相关系数 r 近似总体相关系数 \rho ,这样就不必太关心显著性检验的结果了

三、 \rho=0 与无法度量非线性关系的强度

举《Statisitcal Inference第二版》里面的例子4.5.9

X \sim U(-1,1)Z\sim U(0,0.1)

Y=X^2+Z ,其中 EX=EX^3=0XZ 独立即 EXZ=(EX)(EZ)

但是 Cov(X, Y)=EXY-EXEY=EX(X^2+Z)-(EX)(E(X^2+Z))

=EX^3+EXZ-0E(X^2+Z)=0+(EX)(EZ)

=0(EZ)=0

进而 \rho_{X,Y}=\frac{Cov(X,Y)}{\rho_X\rho_Y}=0

但明明是类似于二阶抛物线的关系,Pearson相关系数却为 0 ?!!

这就明显说明了Pearson相关系数无法度量非线性关系的强度

四、我的相关性分析经验:常用于分析指标间的相关性

在互联网在直播电商场景中,我们的北极星指标肯定是总成交额GMV,伴随指标是点击率CTR和转化率CVR。GMV不能直接优化,所以着力点就在CTR和CVR上面使劲。

在项目初期的时候,我们会首先着手优化点击率,发现点击率上去了,但是转化率、GMV纹丝不动,或者甚至还下降了。

我们就很意外,首先做的数据分析就是点击率CTR与转化率CVR是否有相关关系

使用前记得先剔除异常值:

异常的指标,不管是极大值,还是极小值,都会显著影响相关性的计算,严重影响相关性结果。所以一般情况下,需要先通过描述性统计找出异常值,将异常值剔除后再进行相关性分析。

拿的是一个月的平台整体的CTR与CVR数据进行相关性分析,最后计算相关系数 \rho 得出只有0.003,几乎没有相关性。当然CTR与GMV、CVR与GMV也做了相关性分析,得出结论是CVR与GMV的相关性更强,达到0.48

所以我们就明白方向错了,立刻改变方向去优化CVR,最终获得了GMV的提升

下次会继续深入探讨多变量相关性分析

ZeeSing:多变量相关性分析(一个因变量与多自变量)

参考书籍:(京东图书)

《多元统计分析及R语言》第四版——王斌会《概率论与数理统计教程》第二版——茆诗松 / 程依鸣 / 濮晓龙《R语言实战》第2版——Robert I. Kabacoff《Statistical Inference》——George Casella / Roger L. Berger皮尔逊积矩相关系数https://zh.wikipedia.org/wiki/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0相关系数检验 Using the exact distribution https://en.wikipedia.org/wiki/Pearson_correlation_coefficient


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3