《Discovering Statistics Using R》笔记11-不同Pearson相关系数的差异性检验

笔记说明

读《Discovering Statistics Using R》第六章 Correlation中的6.7节 Comparing correlations做的笔记。

示例数据

有个心理学家对考试焦虑对考试成绩的影响比较感兴趣。她设计了一个量表评估考试焦虑程度。考试前用量表测量学生的焦虑程度(变量Anxiety),用成绩百分位数反映考试表现(变量Exam)。数据在这里:Exam Anxiety
Revise变量表示修改所花的小时数。

#数据导入
library(rio)
examData <- import("data/Exam Anxiety.dat")
str(examData)
## 'data.frame':    103 obs. of  5 variables:
##  $ Code   : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Revise : int  4 11 27 53 4 22 16 21 25 18 ...
##  $ Exam   : int  40 65 80 80 40 70 20 55 50 40 ...
##  $ Anxiety: num  86.3 88.7 70.2 61.3 89.5 ...
##  $ Gender : chr  "Male" "Female" "Male" "Male" ...

Gender变量表示学生性别。为后续处理方便将其变为factor类型:

examData$Gender <- factor(examData$Gender)
str(examData)
## 'data.frame':    103 obs. of  5 variables:
##  $ Code   : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Revise : int  4 11 27 53 4 22 16 21 25 18 ...
##  $ Exam   : int  40 65 80 80 40 70 20 55 50 40 ...
##  $ Anxiety: num  86.3 88.7 70.2 61.3 89.5 ...
##  $ Gender : Factor w/ 2 levels "Female","Male": 2 1 2 2 2 1 1 1 1 1 ...

看一下男女各有多少人:

table(examData$Gender)
## Female   Male 
##     51     52 

两组独立样本Pearson相关系数的差异性检验

假设我们想考察焦虑程度和考试表现之间的相关性关系(用Pearson相关系数表示)在男性女性之间是否有差异。
先在男性、女性人群中分别画出散点图并计算样本Pearson相关系数:

library(ggplot2)
scatter <- ggplot(examData, aes(Anxiety, Exam)) + geom_point() + facet_grid(.~ Gender)
scatter
by(examData[,c("Exam","Anxiety")], examData$Gender, cor)
## examData$Gender: Female
##               Exam    Anxiety
## Exam     1.0000000 -0.3813845
## Anxiety -0.3813845  1.0000000
## ------------------------------------------------------------------------------ 
## examData$Gender: Male
##               Exam    Anxiety
## Exam     1.0000000 -0.5056874
## Anxiety -0.5056874  1.0000000

r_{Male}=-0.506,r_{Femal}=-0.381
对两独立样本相关系数进行差异性检验,我们利用《Discovering Statistics Using R》笔记7-Pearson相关系数中提到的Fisher-Z变换:

z_r=\frac{1}{2} ln(\frac{1+r}{1-r})z_r=tanh^{-1}r
(其中tanh^{-1}为反双曲正切函数)
变换后得到的统计量z_r近似服从均值为tanh^{-1}r,标准差为\frac{1} {\sqrt{N-3}}的正态分布。

将两独立样本的Pearson相关系数都进行Z变换得到z_{r_1}z_{r_2}。这两个统计量都服从正态分布,且相互独立,则二者差值统计量z_{r_1}-z_{r_2}也服从正态分布。差值统计量的均值为z_{r_1}-z_{r_2}。差值统计量的方差为z_{r_1}z_{r_2}的方差之和,即\frac{1} {N_1-3}+\frac{1} {N_2-3}。对差值统计量进行标准化得到:
z_{Difference}=\frac{z_{r_1}-z_{r_2}}{\sqrt{\frac{1}{N_1-3}+\frac{1}{N_2-3}}}
在无效假设ρ_1=ρ_2下,z_{difference}服从标准正态分布。由此可计算P值。
R中没有现成的函数进行两独立样本Pearson相关系数的差异性检验,但我们可以根据上述原理自己写一个实现此功能的函数:

zdifference<-function(r1, r2, n1, n2){
  zd <- (atanh(r1) - atanh(r2)) / sqrt(1/(n1 - 3) + 1/(n2 - 3)) 
  p <- 1 - pnorm(abs(zd))  
  print(paste("Z Difference: ", zd))  
  print(paste("One-Tailed P-Value: ", p))
}
zdifference(-0.506, -0.381, 52, 51)
## [1] "Z Difference:  -0.768709306290097"
## [1] "One-Tailed P-Value:  0.221032949510287"

Z检验下,双侧检验的P值即为单侧检验P值的两倍,本例中即为0.442.此检验结果表示不同性别人群间,考试焦虑程度和考试成绩间的Pearson相关系数的差异无统计学意义。

同组样本的不同Pearson相关系数的差异性检验

具体的检验场景是这样的:同一组样本有三个定量变量x,y,z,比较x,y间的Pearson相关系数和z,y间的Pearson相关系数是否有差异。
示例数据中,假设我们想考察考试焦虑和考试成绩之间的Pearson相关系数与修改时间和考试成绩之间的Pearson相关系数是否有差异。
首先看一下散点图和各自相关系数:

pairs(examData[,c("Exam","Anxiety","Revise")])
cor(examData[,c("Exam","Anxiety","Revise")])
##               Exam    Anxiety     Revise
## Exam     1.0000000 -0.4409934  0.3967207
## Anxiety -0.4409934  1.0000000 -0.7092493
## Revise   0.3967207 -0.7092493  1.0000000

我们可以用t检验来检验同组样本的两不同pearson相关系数是否不同:
t_{Difference}=(r_{xy}-r_{zy})\sqrt{\frac{(N-3)(1+r_{xz})}{2(1-r^2_{xy}-r^2_{xz}-r^2_{yz}+2r_{xy}r_{xz}r_{yz})}}
对应自由度为N-3
式子看起来比较复杂,实际上只需要以下数字:xyz三个变量两两间的相关系数和样本量N。
R中没有现成的函数进行同组样本不同Pearson相关系数的差异性检验,但我们可以根据上述原理自己写一个实现此功能的函数:(注意比较的是rxy和rzy)

tdifference <- function(rxy, rxz, rzy, n){
  df <- n - 3  
  td <- (rxy - rzy) * sqrt((df * (1 + rxz))/(2*(1  -rxy^2- rxz^2- rzy^2 + (2*rxy*rxz*rzy))))  
  p <-pt(td, df)  
  print(paste("t Difference: ", td)) 
  print(paste("One-Tailed P-Value: ", p))  
}
tdifference(-0.441, -0.709, 0.397, 103)
## [1] "t Difference:  -5.09576822523987"
## [1] "One-Tailed P-Value:  8.21913727738007e-07"

P值很小,考试焦虑和考试成绩之间的Pearson相关系数与修改时间和考试成绩之间的Pearson相关系数的差异有统计学意义。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270