7.1.1线性相关系数的计算
线性相关分析是用相关系数来表示两个变量间相互的线性关系,并判断其密切程度的统计方法。
为了下面编程方便起见,我们令X=身高,Y=体重。
> x=ug$height
> y=ug$weight
> par(mfrow=c(1,2))
> plot(x,y)
> plot(y,x)
下面编写一个离均差积和函数来计算相关系数。
> lxy<-function(x,y){
+ n=length(x)
+ l=sum(x*y)-sum(x)*sum(y)/n
+ l}
> lxy(x,x)
[1] 4923.917
> lxy(y,y)
[1] 4363.917
> lxy(x,y)
[1] 4096.417
> r=lxy(x,y)/sqrt(lxy(x,x)*lxy(y,y))
> r
[1] 0.8837116
在R中求相关系数的函数是cor()
> cor(x,y)
[1] 0.8837116
> cor(y,x)
[1] 0.8837116
虽然身高和体重的散点图与体重和身高的散点图不一样,但其相关系数是一样的,都为0.8837,说明这两个变量具有较高的线性相关程度。
至于相关系数r是否显著,尚需进行假设检验
7.1.2 相关系数的假设检验
r与其他统计指标一样,也有抽样误差。从同一总体内抽取若干大小相同的样本,各样本的相关系数总有波动。要判断不等于0的r值是来自总体相关系数p=0的总体还是来自p不等于0的总体,必须进行显著性检验
(1)建立假设检验:H0:p=0,H1:p不等于0,α=0.05
(2)计算相关系数r的t值:
> n=length(x)
> tr=r/sqrt((1-r^2)/(n-2))
> tr
[1] 12.80602
(3)计算t值和p值,做结论
可直接用R语言中检验相关系数的函数cor.test()
> cor.test(x,y)
Pearson's product-moment correlation
data: x and y
t = 12.806, df = 46, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8006027 0.9334607
sample estimates:
cor
0.8837116
由于p<0.05,因此拒绝原假设,可认为该学生人群身高与体重呈现正的线性关系。
下面简要说明相关分析的主要事项:
(1)零相关不一定意味着独立性
(2)相关系数的显著性与自由度相关。
(3)相关系数不能用于描述非线性关系
(4)做相关分析时,必须剔除异常点
(5)相关分析要有实际意义,两变量相关并不代表两变量间一定存在内在联系
7.1.3 分组数据的相关分析
下面我们来研究基于性别分组的学生身高和体重之间的线性相关分析。这里我们将性别作为分组变量
一、绘制分组散点图
> library(lattice, lib.loc = "C:/Program Files/data app/R-3.6.1/library")
> xyplot(weight~height|sex,data=ug)