(공지) 본 자료는 유쾌한 R 통계학 Chapter 6장을 요약 정리한 내용입니다.

1 이번장에서 배우는 내용

  • 양의 상관
  • 무상관
  • 음의 상관
  • 공분산
  • 상관계수


2 관계를 측정하는 방법

2.1 안개 자욱한 공분산 세상으로의 우회

  • 교차곱 편차 (cross-product deviation): 한 변수의 편차를 다른 변수의 해당 편차와 곱한 것.
  • 공분산(covariance): 평균 교차곱
    아래 예시를 보자



2.1.1 공분산 해석

공분산이 양수라는 것은 한 변수가 평균에서 이탈하면 다른 변수도 같은 방향으로 이탈함을 뜻한다. 반대로 공분산이 음수라는 것은 한 변수가 평균에서 이탈하면 다른 변수는 그와 반대 방향으로 이탈함을 뜻한다. 예를 들면, 한 변수가 평균보다 크면, 다른 변수는 평균보다 작다.

2.1.2 공분산의 문제점

공분산은 측정의 축척에 의존한다는 것이다. 공분산은 표준화된 측도는 아니다. (단위값에 따라 공분산의 값이 달라질 수 있다.)

2.2 표준화와 상관계수

측정 척도 의존성 문제를 극복하려면 표준단위로 변환해야 하며, 이러한 변환 과정으로 표준화(standardization)이라고 부른다. 표준화 측정 단위로 쓰이는 것이 표준편차이며, 표준화된 공분산으로 상관계수라고 부르며 이러한 상관계수를 계산하는 공식이 피어슨의 상관계수라고 부른다. 이렇게 공분산을 표준화하면 -1에서 +1까지의 값이 된다.

2.3 상관계수의 유의성과 신뢰구간

2.4 해석에 관한 경고 한마디: 인과관계

상관계수는 인과관계의 방향을 말해주지는 않는다. - 제 3 변수 문제: 결과에 영향을 미치는 다른 어떤 변수가 있을 수 있으므로 두 변수 사이의 인과관계를 가정할 수 없다.

3 이변량 상관

상관은 두 종류가 있다. - 이변량 상관: 두 변수의 상관관계 + 피어슨, 스피어만, 로켄달의 타우도 이변량 상관계수 - 편상관: 하나 이상의 다른 변수들의 효과를 ’제어’할 때의 두 변수의 상관관계를 말함.

3.1 이번 장에서 사용하는 패키지

#If you don't have Hmisc installed then use:
# install.packages("Hmisc")
# install.packages("polycor")
# install.packages("ggm")
library(Hmisc)
library(ggplot2)
library(boot)
library(polycor)
library(ggm)


3.2 R로 상관분석을 수행하는 일반적인 절차

R에서 기본적인 상관계수를 계산할 때 주로 사용하는 함수는 cor(), cor.test(), rcorr() 세가지이다.

3.2.1 결측값 처리 방식 지정 (use 사용)

  • everything: 변수에 결측값 존재 시, 상관계산 하지 않고 NA 출력
  • all.obs: 모든 관측값을 사용하려 하며, 만일 자료에 결측값이 존재 시, 오류 메시지를 냄
  • complete.obs: 모든 변수가 완전히 갖추어진 사례들로만 상관계수 계산함. 이런 방식을 목록별 결측값 제외(excluding cases listwise)
  • pairwise.complete.obs: 모든 변수 쌍에서 두 변수 모두 관측값이 존재하는 사례들에 대해 두 변수의 상관계수 계산.

3.2.1.1 목력별 결측값 제거와 쌍별 결측값 제거의 선택

  • 목록별 제거: 어떤 한 사례에 한 변수라도 결측값이 있으면 그 사례를 통째로 분석에서 제외하는 것을 말함.
  • 쌍별 제거: 어떤 한 사례에 특정 변수에서 결측값 존재 시, 해당 부분만 분석에서 제외

3.2.2 R 코드

3.2.2.1 google drive interface using googledrive package

library(googledrive)
drive_df <- drive_find("Exam Anxiety")

drive_download(file = as_id(drive_df$id[1]), path = "../data/Exam Anxiety.dat", overwrite = TRUE)


3.2.2.2 Import Exam Data

examData <- read.delim("../data/Exam Anxiety.dat",  header = TRUE)
DT::datatable(examData)

데이터는 위와 같이 구성되어 있다.

3.2.2.3 R을 이용한 피어슨 r 계산

examData <- examData[, c("Exam", "Anxiety", "Revise")]
cor(examData, use = "complete.obs", method = "pearson")
##               Exam    Anxiety     Revise
## Exam     1.0000000 -0.4409934  0.3967207
## Anxiety -0.4409934  1.0000000 -0.7092493
## Revise   0.3967207 -0.7092493  1.0000000
cor(examData, use = "pairwise.complete.obs", method = "kendall")
##               Exam    Anxiety     Revise
## Exam     1.0000000 -0.2847919  0.2633259
## Anxiety -0.2847919  1.0000000 -0.4885600
## Revise   0.2633259 -0.4885600  1.0000000
examMatrix <- as.matrix(examData[, c("Exam", "Anxiety", "Revise")])
Hmisc::rcorr(examMatrix)
##          Exam Anxiety Revise
## Exam     1.00   -0.44   0.40
## Anxiety -0.44    1.00  -0.71
## Revise   0.40   -0.71   1.00
## 
## n= 103 
## 
## 
## P
##         Exam Anxiety Revise
## Exam          0       0    
## Anxiety  0            0    
## Revise   0    0

시험 성적(Exam)과 시험 불안(Anxiety)의 상관을 분석해 보자. 상관계수와 함께 신뢰구간까지 계산해 주는 함수는 cor.test()임

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

3.2.2.4 \(R^{2}\)에 기초한 해석

How to interpret?

  • 상관계수 -0.4409934
  • 95% 신뢰구간 [-0.5846244, -0.2705591]: 0이 없으며 이는 항상 음의 상관임을 확신 시켜줌
  • 유의수준
  • 상관계수를 제곱한 값 \(R^{2}\)는 결정계수라고 부르며, 변이성 또는 변동을 다른 변수가 어느 정도나 공유하는지 말해주는 척도임.
  • \(R^{2}\) = \((-0.4410)^2\) = 0.194, 즉 시험불안이 시험 성적 변동의 19.4% 공유함. 이 뜻은 81.6%는 다른 변수들과 연관이 있다는 뜻임.
cor(examData)^2 * 100
##              Exam   Anxiety    Revise
## Exam    100.00000  19.44752  15.73873
## Anxiety  19.44752 100.00000  50.30345
## Revise   15.73873  50.30345 100.00000

4 스피어만 상관계수

5 켄달의 타우(비모수적 상관계수)

6 부트스트랩 방법을 적용한 상관분석

7 점이연 상관과 이연 상관

7.1 점이연 상관

상관계수들은 두 변수 중 하나가 이분적 변수일 때, 즉 범주가 단 두 개인 범주형 변수일 때 쓰인다. 이분적 변수의 예(임신여부)

  • 약간 임신했다와 같은 상태는 없다.
  • 마찬가지로, 사망여부와 같이, 조금 죽은 상태는 없다.
  • 위와 같은 범주 사이에는 연속체가 존재하지 않는다.

아래와 같은 코드를 실행하여 pbcorr.csv 파일을 다운로드 받는다.

library(googledrive)
drive_df <- drive_find("pbcorr", type = "csv")

drive_download(file = as_id(drive_df$id[1]), path = "../data/pbcorr.csv", overwrite = TRUE)
catData <- read.csv("../data/pbcorr.csv", header = TRUE)
DT::datatable(catData)

변수는 다음 세가지이다. - time은 한 주(week)에서 고양이가 집을 떠나서 보낸 시간으로, 단위는 시(hour)이다. - gender는 고양이의 성별을 나타낸다. 수컷은 1, 암컷은 0으로 부호화한다. - recode는 성별을 반대로 부호화 한 것인데, 일단 무시하자.

이제 피어슨 상관 분석을 해보자.

cor.test(catData$time, catData$gender)
## 
##  Pearson's product-moment correlation
## 
## data:  catData$time and catData$gender
## t = 3.1138, df = 58, p-value = 0.002868
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.137769 0.576936
## sample estimates:
##       cor 
## 0.3784542

어떻게 해석해야 할까? - 우선, 점이연 상관계수(\(r_{pb}\))는 0.378이고, 유의확률은 0.003이다. - 양의 상관 또는 음의 상관은 순전히 gender와 연관이 있다. + 양의 상관이면 gender 1을 따르는 것이고, 음의 상관이면 gender 0을 따르는 것이다. + 그 외의 모든 정보는 그냥 무시해야 한다.

7.2 점이연 상관계수에서 이연 상관계수로

점이연 상관계수는 이해가 되었다. 그런데, 이연상관계수는 무엇인가? 이연상관계수는 두개의 범주 사이에 연속성이 있는 경우다. 구체적으로 예를 들면, 점수의 총합과 합격과 불합격의 점수 구분이다. 합격과 불합격의 점수 구분이 고정된 것이 아니기 때문에, 연속성이 있다고 가정하는 경우다.

이연상관계수(\(r_{b}\))를 구하도록 해보자. 구체적인 계산과정은 교재 295페이지를 확인해보자.

library(polycor)
polyserial(catData$time, catData$gender)
## [1] 0.4749256

동일한 데이터를 기준으로 하는 것은 적절한 예시는 아니다. 그러나, 우선 일부 수고양이가 중성화 수술을 받아서 성별 변수의 연속성이 있다고 가정을 해보자.

다시 코드의 결과값으로 돌아와서 0.4749가 의미하는 것은 점이연 상관변수보다 크다는 뜻이다. 즉, 변수에 연속성이 있느냐 가정하느냐 아니냐에 따라 효과의 크기가 크게 달라지는 것을 볼 수가 있다.

이연 상관계수의 유의성을 판정하려면 표준오차를 구해야 하며, 풀이 과정은 Page 296를 확인하기를 바란다. 이연 상관계수는 p < .01로 유의하다.

8 편상관

8.1 부분상관과 편상관에 깔린 이론

  1. 시험 성적과 (2) 시험 불안의 관계는 음의 상관
  2. 시험 성적과 (3) 복습 시간의 관계는 양의 상관
  3. 시험 불안과 (3) 복습 시간의 관계는 음의 상관

개념: 시험 성적 변동 중 시험 불안으로 설명되는 일부는 고유(unique; 또는 유일)하지 않으며, 시험 불안보다는 복습 시간에 의한 것일 수도 있음. 즉, 다른 변수의 효과를 고정한 상태에서 두 변수의 상관을 편상관(partial correlation)이라고 함.

8.2 R을 이용한 편상관분석

library(ggm)
pc <- pcor(c("Exam", "Anxiety", "Revise"), var(examData))
pc
## [1] -0.2466658
pc^2
## [1] 0.06084403

유의성 판정 위한 pcor.test()

pcor.test(pc, 1, 103)
## $tval
## [1] -2.545307
## 
## $df
## [1] 100
## 
## $pvalue
## [1] 0.01244581

How to interpret? - Revision 변수의 효과를 제어한 상태 + 시험 불안과 시험 성적의 편상관계수 -.247 (기존 r = -0.441) 크기가 훨씬 작아짐. 즉, 두 변수의 관계를 줄어듬. + 분산의 관점에서 보면, 편상관계수의 \(R^{2}\)은 0.06, 즉 6%만 공유. (시험불안 ~ 시험성적 변동)

이것의 의미는? 1. 시험 성적에 대한 시험 불안이 공유하는 변동이 크게 줄어듬 2. 시험 불안과 복습 시간, 시험 성적 사이에 복잡한 관계가 존재한다는 점 재 인식

9 준편상관

제 3의 변수가 두 변수 중 한 변수에만 미치는 효과를 제어한 상태에서 두 변수의 관계를 수량화 함

9.1 편상관 VS 준편상관

  • 편상관: 두 변수의 편상관을 분석할 때는 제 3의 변수의 효과를 제어한다. 두 변수의 편상관을 분석할 때는 제3의 변수의 효과를 제어함
  • 준편상관: 제3의 변수가 상관관계가 있는 두 변수중 하나에 미치는 영향만 제어. # 상관계수의 비교 같은 표본에서 얻은 종속적인 두 상관계수의 차이가 유의한지는 t통계량으로 판단함.

9.2 독립적인 r들의 비교

종종 한 상관계수가 다른 어떤 상관계수보다 큰지 알고 싶을 때가 있음, 예를 들어 시험 성적에 대한 시험 불안의 효과를 파악할 때, 남성의 해당 상관계수와 여성의 상관계수가 다른지 알고 싶음.

이때, 두 상관계수의 차이가 진자 유의한지 평가하려면 어떻게 해야할까?

9.2.1 자가진단 소스 코드

examData <- read.delim("../data/Exam Anxiety.dat",  header = TRUE)
maleExam <- subset(examData, Gender == "Male", select= c("Exam", "Anxiety"))
femaleExam <- subset(examData, Gender == "Female", select= c("Exam", "Anxiety"))
cor(maleExam)
##               Exam    Anxiety
## Exam     1.0000000 -0.5056874
## Anxiety -0.5056874  1.0000000
cor(femaleExam)
##               Exam    Anxiety
## Exam     1.0000000 -0.3813845
## Anxiety -0.3813845  1.0000000
examData2 <- examData[, c("Exam", "Anxiety", "Revise")]
pc <- pcor(c("Exam", "Anxiety", "Revise"), var(examData2))
pc
## [1] -0.2466658
pc^2
## [1] 0.06084403
pcor.test(pc, 1, 103)
## $tval
## [1] -2.545307
## 
## $df
## [1] 100
## 
## $pvalue
## [1] 0.01244581

자가진단 수행결과 - \(r_{남}\) = -.506 - \(r_{여}\) = -.381

두개의 표본은 독립이며 서로 다른 개체들로 이루어져 있음. 위 계수들을 \(z_{r}\)로 변환함.

zdifference(-0.506, -0.381, 52, 51)
## [1] "Z Difference:  -0.768709306290097"
## [1] "One-Tailed P-Value:  0.221032949510287"

z값(0.768; 음의 부호는 무시함)을 부록 A의 정규분포표에서 찾아서 ’작은 부분’열의 한쪽 꼬리 확률 .221이며, 양쪽 꼬리 확률은 .442이다. 즉, 남성과 여성의 시험 불안과 시험 성적의 상관이 유의하게 다르지 않다는 결론을 내릴 수 있음.

9.3 종속적인 r들의 비교

같은 표본에서 얻은 종속적인 두 상관계수의 차이가 유의한지는 t통계량으로 판단함. 예) 시험 불안(x)과 시험 성적(y)의 관계가 복습 시간(z)과 시험 성적(y)의 관계보다 강한지 알고 싶다고 가정. 3가지 상관계수 구하기 - 시험 불안(x) ~ 시험 성적(y) = \(r_{xy}\) - 복습 시간(z) ~ 시험 성적(y) = \(r_{zy}\) - 시험 불안(x) ~ 복습 시간(y) = \(r_{xz}\)

examData <- examData[, c("Exam", "Anxiety", "Revise")]
cor(examData, use = "complete.obs", method = "pearson")
##               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_{xy}\) = -.441 \(r_{zy}\) = .397 \(r_{xz}\) = -.709

tdifference(-0.441, -0.709, 0.397, 103)
## [1] "t Difference:  -5.09576822523987"
## [1] "One-Tailed P-Value:  8.21913727738007e-07"

t 분포 임계값 표에서 자유도가 N-3일 때, 양쪽꼬리 임계값들은 1.98과 2.63이다. 따라서, 시험 불안과 시험 성적의 상관이 복습 시간과 시험 성적의 상관보다 유의하게 높다.

10 효과크기의 계산

상관계수의 차이가 효과 크기임.

11 상관분석의 보고

상관분석 보고서 작성 시, Page 306을 참고하자.

12 더 읽을거리

  • Chen, P. Y., & Popovich, P. M. (2002). Correlation: Parametric and nonparametric measures. Thousand Oaks, CA: Sage.
  • Howell, D. C. (2006). Statistical methods for psychology (6th ed.). Belmont, CA: Duxbury. (Or you might prefer his Fundamental Statistics for the Behavioral Sciences, also in its 6th edition, 2007. Both are excellent texts that are a bit more technical than this book, so they are a useful next step.)
  • Miles, J. N. V., & Banyard, P. (2007). Understanding and using statistics in psychology: A practical introduction. London: Sage. (A fantastic and amusing introduction to statistical theory.)
  • Wright, D. B.,& London, K. (2009). First steps in statistics (2nd ed.). London: Sage. (This book is a very gentle introduction to statistical theory.)

13 Interesting Real Research

  • Chamorro-Premuzic, T., Furnham, A., Christopher, A. N., Garwood, J., & Martin, N. (2008). Birds of a feather: Students’ preferences for lecturers’ personalities as predicted by their own personal- ity and learning approaches. Personality and Individual Differences, 44, 965–976.