《Discovering Statistics Using R》笔记7-Pearson相关系数

笔记说明

读《Discovering Statistics Using R》第六章 Correlation中的6.3-6.5.4.2节做的笔记。另外涉及第四章散点图的内容。主要是介绍Pearson相关系数。

示例数据

有个心理学家对考试焦虑对考试成绩的影响比较感兴趣。她设计了一个量表评估考试焦虑程度。考试前用量表测量学生的焦虑程度(变量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" ...

散点图

进行两个定量变量的相关性分析的第一步应当是做两个变量的散点图:

#散点图
library(ggplot2)
scatter <- ggplot(examData, aes(Anxiety, Exam)) + geom_point()

从散点图可以看出一些趋势。低水平的焦虑与好成绩相关联,而高水平的焦虑对应成绩的方差很大。

协方差与Pearson相关系数

协方差(covariance)可以衡量成对出现的两变量间线性关系的强度。
cov(x,y)=\frac{\Sigma(x_i-\overline{x}) (y_i-\overline{y}) }{N-1}
计算两个变量的协方差可以评估两个变量间的线性相关关系。
协方差为正表示当x偏离\overline{x}时,(平均来说)y以同样的方向偏离\overline{y}
协方差为负表示当x偏离\overline{x}时,(平均来说)y以相反的方向偏离\overline{y}
可以用cov()计算协方差:

> cov(examData$Anxiety,examData$Exam)
[1] -196.554

协方差受到量纲影响且不容易直接解读,对协方差进行标准化后得到线性相关系数:
r=cor(X,Y)=\frac{cov(X,Y) }{sd(X)sd(Y)}
线性相关系数消除了量纲的影响。取值范围为[-1, 1],相关系数绝对值越接近1表示线性相关的程度越强,相关系数为0表示无线性相关关系。
由上式定义的r称为皮尔森相关系数(pearson correlation coefficient)。有时也用R来表示。一般来说在回归的语境下使用大写的R代表复相关系数(multiple correlation coefficient);另外,当我们使用r^2时也经常使用大写的R。样本person相关系数用r表示,总体person相关系数用ρ表示。

Pearson相关系数的假设检验与区间估计

对Pearson相关系数的假设检验的无效假设为总体相关系数ρ=0,备择假设为总体相关系数ρ≠0。有两种方法进行假设检验。实际应用的时候通常使用t检验来进行假设检验,利用Fisher-Z变换来进行区间估计:
1、Z检验。
如果抽样分布符合正态分布,可以利用Z值进行假设检验。应用到pearson相关系数时有一个问题:r的抽样分布不符合正态分布。根据Fisher大神,对r进行Fisher-Z变换后得到统计量z_r近似服从正态分布:
z_r=\frac{1}{2} ln(\frac{1+r}{1-r})z_r=tanh^{-1}r
其中tanh^{-1}为反双曲正切函数
变换后的z_r近似服从均值为\frac{1}{2} ln(\frac{1+ρ}{1-ρ}),标准差为\frac{1} {\sqrt{N-3}}的正态分布。
进而可以对z_r进行Z检验:
z=\frac{z_r}{SE_{z_r}}=z_r\sqrt{N-3}
利用Fisher-Z变换得到的z_r我们可以对相关系数的进行区间估计。
z_r的95%置信区间的上下限可以由z_r±1.96SE_{z_r}求得。
r=tanhz_r
双曲正切函数是单调的,因此r的95%置信区间的上下限可以由z_r的95%置信区间的上下限通过双曲正切函数求出。

2、t检验
实际上Pearson相关系数的假设检验通常不使用上述方法,而是用t检验完成。
检验统计量t_r服从自由度为N-2的t分布:
t_r=\frac{r-0}{S_r}
其中S_r=\sqrt{\frac {1-r^2}{N-2}}

Pearson相关系数的假设

如果只要Pearson相关系数能够准确衡量两个变量之间的线性相关关系,那么只要求数据满足定距变量即可。(定距变量的数据可以进行分类、排序、加减运算,不要求乘除运算。定距变量值之间的差值有实际意义)
如果要说明Pearson相关系数有统计学意义。则需要满足更多的假设:需要变量满足定距变量,并且服从正态分布(我学过的教材中讲相关系数检验假设两个变量满足二元正态分布。二元正态分布的数据在散点图上显示出椭圆形的轮廓形状)。
如果不符合这两条,则应该考虑使用其他相关系数或者使用bootstrapping.

用R计算相关系数

R中常用的可以计算相关系数的函数有:cor()cor.test()rcorr()
前两个函数是R自带的,rcorr()Hmisc包中的函数,使用前需先加载包。
这三个函数能够实现的相关功能见下图:


表中的Spearman,Kendall是另外两种相关系数,会在之后介绍。
本次笔记省略rcorr()的介绍。
cor()用法:
cor(x, y, use = "string", method = "correlation type")

  • x 为数值型变量或一个由数值型变量构成的dataframe
  • y 为数值型变量(若x为dataframe则y可不指定)
  • use:指定缺失数据如何处理:
    (1)"everything" :如果分析涉及的变量有缺失值,则函数返回NA。默认如此处理。
    (2)"all.obs":使用所有样本,若有缺失值则会报错。
    (3)"complete.obs":使用所有变量均未缺失的样本进行相关系数计算。
    (4)"pairwise.complete.obs":计算某2个变量相关系数时使用这2个变量均未缺失的样本计算。
  • method:指定计算哪种相关系数 "pearson" "spearman" "kendall"。默认为pearson。若想计算多种可以用c()如:c("pearson","spearman")
    例:使用cor()计算各数值型变量之间的Pearson相关系数。
    由于变量Gender不是数值型变量,需舍弃。
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

可以使用R自带的pairs()生成散点图矩阵:

pairs(examData[,c("Exam","Anxiety","Revise")])

cor.test()用法:
cor.test(x, y, alternative = "string", method = "correlation type", conf.level = 0.95)

  • x为数值型变量
  • y为数值型变量 x y长度需相同。
  • alternative:指定备择假设类型:
    (1)"two.sided"指定双侧检验,默认为此
    (2)"less"指定单侧检验,预计相关系数为负
    (3)”greater“指定单侧检验,预计相关系数为正
  • method:指定计算哪种相关系数 "pearson" "spearman" "kendall"。默认为pearson。若想计算多种可以用c()如:c("pearson","spearman")
  • conf.level:指定相关系数置信区间长度默认为0.95 只计算pearson相关系数的置信区间且需要至少4对数据。
    例:
cor.test(examData$Anxiety,examData$Exam)
##  Pearson's product-moment correlation
## 
## data:  examData$Anxiety and examData$Exam
## t = -4.938, df = 101, p-value = 3.128e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.5846244 -0.2705591
## sample estimates:
##        cor 
## -0.4409934 

cor.test()对pearson相关系数的假设检验使用的方法为上面介绍的t检验,计算置信区间使用的方法是上面介绍的Fisher-Z变换。

警惕对相关系数进行因果关系解读

解读相关系数时需要注意相关并不意味着因果关系(causality)。原因有二:
1、混杂变量问题。在相关分析中,可能存在其他变量影响结果。
2、因果关系的方向问题。相关分析中无法分辨两个变量哪个是因哪个是果。

决定系数

Pearson相关系数的平方R^2称为决定系数(coefficient of determination).决定系数表示一个变量的总变异中与另一个变量共享的部分占比(the amount of variability in one variable that is shared by the other)。
举例来说:在刚才考试焦虑程度和考试表现的分析中,考试表现在不同人之间存在变异。可以用离均差平方和来代表考试表现的总变异程度。R^2表示了考试表现得总变异中与考试焦虑共享的比例。在本例中R^2=0.194.
当解释R^2时很多人会解读为因果关系,“考试焦虑能解释考试表现19.4%的变异”(the variance in y accounted for by x或the variation in one variable explained by the other)。虽然决定系数是效应实际重要性的很有用的测量,但注意它并不能用来推导因果关系。
计算决定系数:

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