筆記說明
讀《Discovering Statistics Using R》第六章 Correlation中的6.3-6.5.4.2節(jié)做的筆記虎韵。另外涉及第四章散點圖的內(nèi)容社痛。主要是介紹Pearson相關(guān)系數(shù)馒索。
示例數(shù)據(jù)
有個心理學(xué)家對考試焦慮對考試成績的影響比較感興趣下翎。她設(shè)計了一個量表評估考試焦慮程度顽冶。考試前用量表測量學(xué)生的焦慮程度(變量Anxiety)岩喷,用成績百分位數(shù)反映考試表現(xiàn)(變量Exam)。數(shù)據(jù)在這里:Exam Anxiety
Revise變量表示修改所花的時間
#數(shù)據(jù)導(dǎo)入
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" ...
散點圖
進行兩個定量變量的相關(guān)性分析的第一步應(yīng)當(dāng)是做兩個變量的散點圖:
#散點圖
library(ggplot2)
scatter <- ggplot(examData, aes(Anxiety, Exam)) + geom_point()
從散點圖可以看出一些趨勢监憎。低水平的焦慮與好成績相關(guān)聯(lián)纱意,而高水平的焦慮對應(yīng)成績的方差很大。
協(xié)方差與Pearson相關(guān)系數(shù)
協(xié)方差(covariance)可以衡量成對出現(xiàn)的兩變量間線性關(guān)系的強度鲸阔。
計算兩個變量的協(xié)方差可以評估兩個變量間的線性相關(guān)關(guān)系偷霉。
協(xié)方差為正表示當(dāng)x偏離時,(平均來說)y以同樣的方向偏離褐筛。
協(xié)方差為負表示當(dāng)x偏離時类少,(平均來說)y以相反的方向偏離。
可以用cov()
計算協(xié)方差:
> cov(examData$Anxiety,examData$Exam)
[1] -196.554
協(xié)方差受到量綱影響且不容易直接解讀渔扎,對協(xié)方差進行標準化后得到線性相關(guān)系數(shù):
線性相關(guān)系數(shù)消除了量綱的影響硫狞。取值范圍為[-1, 1],相關(guān)系數(shù)絕對值越接近1表示線性相關(guān)的程度越強晃痴,相關(guān)系數(shù)為0表示無線性相關(guān)關(guān)系残吩。
由上式定義的r稱為皮爾森相關(guān)系數(shù)(pearson correlation coefficient)。有時也用R來表示倘核。一般來說在回歸的語境下使用大寫的R代表復(fù)相關(guān)系數(shù)(multiple correlation coefficient)泣侮;另外,當(dāng)我們使用時也經(jīng)常使用大寫的R紧唱。樣本person相關(guān)系數(shù)用r表示活尊,總體person相關(guān)系數(shù)用ρ表示隶校。
Pearson相關(guān)系數(shù)的假設(shè)檢驗與區(qū)間估計
對Pearson相關(guān)系數(shù)的假設(shè)檢驗的無效假設(shè)為總體相關(guān)系數(shù)ρ=0,備擇假設(shè)為總體相關(guān)系數(shù)ρ≠0蛹锰。有兩種方法進行假設(shè)檢驗深胳。實際應(yīng)用的時候通常使用t檢驗來進行假設(shè)檢驗,利用Fisher-Z變換來進行區(qū)間估計:
1宁仔、Z檢驗稠屠。
如果抽樣分布符合正態(tài)分布,可以利用Z值進行假設(shè)檢驗翎苫。應(yīng)用到pearson相關(guān)系數(shù)時有一個問題:r的抽樣分布不符合正態(tài)分布权埠。根據(jù)Fisher大神,對r進行Fisher-Z變換后得到統(tǒng)計量近似服從正態(tài)分布:
或
其中為反雙曲正切函數(shù)
變換后的近似服從均值為煎谍,標準差為的正態(tài)分布攘蔽。
進而可以對進行Z檢驗:
利用Fisher-Z變換得到的我們可以對相關(guān)系數(shù)的進行區(qū)間估計。
的95%置信區(qū)間的上下限可以由求得呐粘。
雙曲正切函數(shù)是單調(diào)的满俗,因此r的95%置信區(qū)間的上下限可以由的95%置信區(qū)間的上下限通過雙曲正切函數(shù)求出。
2作岖、t檢驗
實際上Pearson相關(guān)系數(shù)的假設(shè)檢驗通常不使用上述方法唆垃,而是用t檢驗完成。
檢驗統(tǒng)計量服從自由度為N-2的t分布:
其中
Pearson相關(guān)系數(shù)的假設(shè)
如果只要Pearson相關(guān)系數(shù)能夠準確衡量兩個變量之間的線性相關(guān)關(guān)系痘儡,那么只要求數(shù)據(jù)滿足定距變量即可辕万。(定距變量的數(shù)據(jù)可以進行分類、排序沉删、加減運算渐尿,不要求乘除運算。定距變量值之間的差值有實際意義)
如果要說明Pearson相關(guān)系數(shù)有統(tǒng)計學(xué)意義矾瑰。則需要滿足更多的假設(shè):需要變量滿足定距變量砖茸,并且服從正態(tài)分布(我學(xué)過的教材中講相關(guān)系數(shù)檢驗假設(shè)兩個變量滿足二元正態(tài)分布。二元正態(tài)分布的數(shù)據(jù)在散點圖上顯示出橢圓形的輪廓形狀)殴穴。
如果不符合這兩條凉夯,則應(yīng)該考慮使用其他相關(guān)系數(shù)或者使用bootstrapping.
用R計算相關(guān)系數(shù)
R中常用的可以計算相關(guān)系數(shù)的函數(shù)有:cor()
, cor.test()
采幌, rcorr()
恍涂。
前兩個函數(shù)是R自帶的,rcorr()
是Hmisc
包中的函數(shù)植榕,使用前需先加載包再沧。
這三個函數(shù)能夠?qū)崿F(xiàn)的相關(guān)功能見下圖:
表中的Spearman,Kendall是另外兩種相關(guān)系數(shù),會在之后介紹尊残。
本次筆記省略
rcorr()
的介紹炒瘸。cor()
用法:cor(x, y, use = "string", method = "correlation type")
- x 為數(shù)值型變量或一個由數(shù)值型變量構(gòu)成的dataframe
- y 為數(shù)值型變量(若x為dataframe則y可不指定)
- use:指定缺失數(shù)據(jù)如何處理:
(1)"everything" :如果分析涉及的變量有缺失值淤堵,則函數(shù)返回NA
。默認如此處理顷扩。
(2)"all.obs":使用所有樣本拐邪,若有缺失值則會報錯。
(3)"complete.obs":使用所有變量均未缺失的樣本進行相關(guān)系數(shù)計算隘截。
(4)"pairwise.complete.obs":計算某2個變量相關(guān)系數(shù)時使用這2個變量均未缺失的樣本計算扎阶。 - method:指定計算哪種相關(guān)系數(shù) "pearson" "spearman" "kendall"。默認為pearson婶芭。若想計算多種可以用
c()
如:c("pearson","spearman")
例:使用cor()
計算各數(shù)值型變量之間的Pearson相關(guān)系數(shù)东臀。
由于變量Gender
不是數(shù)值型變量,需舍棄犀农。
cor(examData[,c("Exam","Anxiety","Revise")])
生成各數(shù)值變量之間的相關(guān)系數(shù)矩陣
## 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為數(shù)值型變量
- y為數(shù)值型變量 x y長度需相同惰赋。
- alternative:指定備擇假設(shè)類型:
(1)"two.sided"指定雙側(cè)檢驗,默認為此
(2)"less"指定單側(cè)檢驗呵哨,預(yù)計相關(guān)系數(shù)為負
(3)”greater“指定單側(cè)檢驗赁濒,預(yù)計相關(guān)系數(shù)為正 - method:指定計算哪種相關(guān)系數(shù) "pearson" "spearman" "kendall"。默認為pearson孟害。若想計算多種可以用
c()
如:c("pearson","spearman")
- conf.level:指定相關(guān)系數(shù)置信區(qū)間長度默認為0.95 只計算pearson相關(guān)系數(shù)的置信區(qū)間且需要至少4對數(shù)據(jù)拒炎。
例:
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相關(guān)系數(shù)的假設(shè)檢驗使用的方法為上面介紹的t檢驗,計算置信區(qū)間使用的方法是上面介紹的Fisher-Z變換挨务。
警惕對相關(guān)系數(shù)進行因果關(guān)系解讀
解讀相關(guān)系數(shù)時需要注意相關(guān)并不意味著因果關(guān)系(causality)击你。原因有二:
1、混雜變量問題耘子。在相關(guān)分析中,可能存在其他變量影響結(jié)果球切。
2谷誓、因果關(guān)系的方向問題。相關(guān)分析中無法分辨兩個變量哪個是因哪個是果吨凑。
決定系數(shù)
Pearson相關(guān)系數(shù)的平方稱為決定系數(shù)(coefficient of determination).決定系數(shù)表示一個變量的總變異中與另一個變量共享的部分占比(the amount of variability in one variable that is shared by the other)捍歪。
舉例來說:在剛才考試焦慮程度和考試表現(xiàn)的分析中,考試表現(xiàn)在不同人之間存在變異鸵钝〔诰剩可以用離均差平方和來代表考試表現(xiàn)的總變異程度。表示了考試表現(xiàn)得總變異中與考試焦慮共享的比例恩商。在本例中=0.194.
當(dāng)解釋時很多人會解讀為因果關(guān)系变逃,“考試焦慮能解釋考試表現(xiàn)19.4%的變異”(the variance in y accounted for by x或the variation in one variable explained by the other)。雖然決定系數(shù)是效應(yīng)實際重要性的很有用的測量怠堪,但注意它并不能用來推導(dǎo)因果關(guān)系揽乱。
計算決定系數(shù):
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