对于二元数据
可以计算样本的相关系数Rxy,假设样本来自总体(X,Y),那么总体的相关系数为:
那么样本的相关系数与总体的相关系数有什么关系呢?
当样本的个数n充分大,Rxy可以作为p(X,Y)的估计,也就是说:当样本个数较大时,样本相关,总体也相关。但当样本个数较小时,就无法得到相应的结论。现在的问题是:当样本个数n至少取到多少时,样本相关才能保证总体也相关呢?
Ruben(鲁宾)给出了总体相关系数的区间估计的近似逼近函数,设n是样本个数,r是样本相关系数,μ是标准正态分布的上α/2分位点,即μ=Zα/2,则计算:
求方程ay^2-2by c=0的根
按照公式编写出"ruben.R"的脚本程序:
ruben.test<-function(n,r,alpha=0.05){
u<-qnorm(1-alpha/2)
r_start<-r/sqrt(1-r^2)
a<-2*n-3-u^2
b<-r_start*sqrt((2*n-3)*(2*n-5))
c<-(2*n-5-u^2)*r_start^2-2*u^2
y1<-(b-sqrt(b^2-a*c))/a
y2<-(b sqrt(b^2-a*c))/a
data.frame(n=n,r=r,conf=1-alpha,L=y1/sqrt(1 y1^2),U=y2/sqrt(1 y2^2))
}
当n=6,r=0.8时,调入已编写好的ruben.R的函数,并计算得到:
> source("ruben.R")
> ruben.test(6,0.8)
n r conf L U
1 6 0.8 0.95 -0.09503772 0.9727884
置信区间为(-0.095,0.97),去置信下界是负数,即是r=0.8,也不能说明总体I相关的。
当n=25,r=0.7时,计算并得到:
> ruben.test(25,0.7)
n r conf L U
1 25 0.7 0.95 0.4108176 0.8535657
置信区间为(0.41,0.85),此时,基本上能说总体是相关的。
关于置信区间的近似逼近方法还有David(大卫)提出 的图表方法,Kendall(肯德尔)和Stuart(斯图亚特)提出的Fisher逼近方法。
确认总司是否相关最有效的方法是作总体(X,Y)^T的相关性检验。当(X,Y)^T是二元正态总体,且p(X,Y)=0,则统计量
服从自由度为n=2的t分布。
利用统计量t服从自由度为n=2的t分布的性质,可以对数据X和Y的相关性进行检验,由于相关系数Rxy被称为Pearson(皮尔森)相关系数,因此,此检验方法也被称为Pearson相关性检验。对于相关性检验,还有Spearman秩检验和Kendall秩检验。R语言中国,cor.test()函数提供了上述三种检验方法,其使用方法为:
其中x,y是数据长度相同的向量,alternative是备择假设(《每天一点统计学——假设检验概论》),缺省值为”two.sided“,method是选择的检验方法,缺省值为Pearson检验。conf.level是置信区间水平,缺省值为0.95。
cor.test()函数还有另一种使用格式:
其中formula是公式,data是数据框,subset是可选择向量,表示观察值的子集。
> x<-c(67,54,72,64,39,22,58,43,46,34)
> y<-c(24,15,23,19,16,11,20,16,17,13)
> ore<-data.frame(x,y)
> attach(ore)
> cor.test(x,y)
Pearson's product-moment correlation
data: x and y
t = 6.6518, df = 8, p-value = 0.0001605
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.6910290 0.9813009
sample estimates:
cor
0.9202595
其中p值为0.0001605<0.05,拒绝原假设,认为X与Y相关。计算得出的置信区间为(0.69,0.98),从这点上也可以看出X与Y是相关的。
另外还可用下面两种方法检验相关性。
> cor.test(x,y,method = "spearman")
> cor.test(x,y,method = "kendall")
,