结合R语言学习多元统计分析1——相关系数及其检验 简单相关系数的计算 相关系数的假设检验 多元相关系数实验 总结 参考文献 简单相关系数的计算
数理相关知识 对于连续无序变量x、y,计算其相关性通常采用皮尔森相关系数,其表达式为 ρ=cov(x,y)var(x)var(y)=σxyσx2σy2\rho=\frac{cov(x, y)}{\sqrt{var(x)var(y)}}=\frac{\sigma_{xy}}{\sqrt{\sigma_x^{2}\sigma_y^{2}}} ρ = v a r ( x ) v a r ( y )
c o v ( x , y ) = σ x 2 σ y 2
σ x y 在实际操作中,总体的方差标准差、两个变量间的协方差并不是已知,而是未知,所以通常利用样本的Pearson相关系数: r=sxysx2sy2=∑(x−x‾)(y−y‾)∑(x−x‾)2(y−y‾)2r=\frac{s_{xy}}{\sqrt{s_x^{2}s_y^{2}}}=\frac{\sum{(x-\overline x)(y-\overline y)}}{\sqrt{\sum{(x-\overline x)^{2}(y-\overline y)^{2}}}} r = s x 2 s y 2
s x y = ∑ ( x − x ) 2 ( y − y ) 2
∑ ( x − x ) ( y − y ) 其中sxys_{xy} s x y 是变量xx x 与变量yy y 的样本协方差,sx2s_x^{2} s x 2 是变量xx x 的样本方差,sy2s_y^{2} s y 2 是变量yy y 的样本协方差。 在多元统计中(假设有n个系数、p个变量),由于不同变量之间的对比有更多的可能,相关系数就成了一个n∗pn*p n ∗ p 的相关系数矩阵,其具体形式如下: r=(1ρ12…ρ1pρ211…⋮⋮⋮⋱⋮ρn1ρn2…1)=D−12SD−12r=\begin{pmatrix} 1&\rho_{12}&\dots&\rho_{1p}\\ \rho_{21}&1&\dots& \vdots\\ \vdots&\vdots&\ddots&\vdots\\ \rho_{n1}&\rho_{n2}&\dots&1 \end{pmatrix} =D^{-{1\over2}}SD^{-{1\over2}} r = ⎝ ⎜ ⎜ ⎜ ⎜ ⎛ 1 ρ 2 1 ⋮ ρ n 1 ρ 1 2 1 ⋮ ρ n 2 … … ⋱ … ρ 1 p ⋮ ⋮ 1 ⎠ ⎟ ⎟ ⎟ ⎟ ⎞ = D − 2 1 S D − 2 1 其中D为变量的标准差: D=(σ120…00σ22…00…⋱00……σn2)D=\begin{pmatrix} \sigma_1^{2}&0&\dots&0\\ 0&\sigma_2^{2}&\dots&0\\ 0&\dots&\ddots&0\\ 0&\dots&\dots&\sigma_n^{2} \end{pmatrix} D = ⎝ ⎜ ⎜ ⎛ σ 1 2 0 0 0 0 σ 2 2 … … … … ⋱ … 0 0 0 σ n 2 ⎠ ⎟ ⎟ ⎞
代码实现 在利用R语言求相关系数时,通常使用cor函数:
cor(x,y=NULL,method=c(“pearson”, “kendall”, “spearman”)|
其中x为数值向量、矩阵或数据框;y为空或数值向量、矩阵或数据框 method表示三种相关系数的计算方法,从左到右依次是:皮尔森相关系数、kendall秩相关系数、斯皮尔曼相关系数。R语言默认为pearson相关系数,即本文介绍的相关系数。
相关系数的假设检验
数理基础 相关系数与其它统计指标一样,有抽样误差,从同一总体抽取的大小相同的样本,其相关系数也不一定一致,要判断不等于0的r值来自ρ=0\rho=0 ρ = 0 的总体样本还是ρ≠0\rho\ne0 ρ = 0 的总体,必须进行显著性检验。对样本相关系数r进行t检验的步骤为:
建立检验假设,H0:ρ=0H_0:\rho=0 H 0 : ρ = 0 ,H1:ρ≠0H_1:\rho\ne0 H 1 : ρ = 0 计算相关系数r的t值: tr=r−01−r2n−2t_r=\frac{r-0}{ \sqrt{\frac{1-r^{2}}{n-2}} } t r = n − 2 1 − r 2
r − 0 3.计算t值和p值,解释结果并作出结论。 代码实现 t统计量的计算:
n=length(x1) #计算向量的长度 tr=r/sqrt(1-r^2)/(n-2)) #相关系数假设检验t统计量
cor.test(x,y,alternative=c(“two.sided”,“less”,"greater), method=c(“pearson”,“kendall”,“spearman”),…)
其中,x、y时长度相同的数据向量,alternative时备择假设,“two.sided”是双侧检验,“greater”是右侧检验,“less”是左侧检验。 method是计算方法。
多元相关系数实验
使用的数据 一家保险公司十分关心其总公司营业部加班的程度,决定认真调查以下现状。经过10周的时间,手机了该公司每周加班工作时间y(小时)的数据何签发的新保单数目x(张),数据见下表:
周 1 2 3 4 5 6 7 8 9 10 x 825 215 1070 550 480 920 1350 325 670 1215 y 3.5 1 4 2 1 3 4.5 1.5 3 5
(1)绘制散点图,并以此判断x与y之间是否大致呈线性关系。 (2)计算x与y的相关系数并检验
代码实现 data=read.table("clipboard",header = T) plot(data) #生成的图表示x与y大致呈线性关系 #但是数据太少了,并不可以十分武断 r=cor(data$x,data$y) #计算x与y的相关系数矩阵 n=length(data$x) #计算样本的个数 tr=(r-0)/sqrt((1-r^2)/(n-2)) cor.test(data$x,data$y) #从结果来看,其中p值是小于0.05的,由此拒绝原假设,即总体相关系数并不为0
总结
事实上,样本相关系数的假设检验并不常用。因为大部分的数据值之间的相关系数都难以等于零。
参考文献
[1]王斌会, 多元统计分析及R语言建模[M], 广东:暨南大学出版社, 2019. [2]hhhhhliu, markdown编辑希腊字母[OB], CSDN, 不想按格式来了你点这个超链接吧.