상관 계수 검정
cor.test( )를 사용해 상관 계수 검정Correlation Test을 수행하여 상관 계수의 통계적 유의성을 판단할 수 있다. 이때 귀무가설은 ‘H0: 상관 계수가 0이다’이며, 대립가설은 ‘H1: 상관 계수가 0이 아니다’이다.
통계적으로 유의하다는 말은 관찰된 현상이 전적으로 우연에 의해 벌어졌을 가능성이 낮다는 의미다. 상관 계수의 통계적 유의성을 보려면 귀무가설을 ‘상관 계수가 0이다’로, 대립가설을 ‘상관 계수가 0이 아니다’로 놓은 뒤 p-value를 구한다. 만약 p-value가 0.05보다 작다면 귀무가설이 참이라고 가정했을 때 데이터로부터 구한 상관 계수를 볼 확률이 낮다는 의미며, 그런 상관 계수는 귀무가설 하에서는 우연히 발생하기 어렵다. 따라서 통계적으로 유의미한 상관 계수다. 위키피디아의 통계적 유의성에 대한 페이지[18]를 참고하기 바란다.
cor.test : 상관 계수에 대한 가설 검정을 수행한다. |
cor.test( x, # 숫자 벡터 y, # 숫자 벡터 alternative=c("two.sided", "less", "greater"), # 대립가설. 기본값은 양측 검정(two.sided) method=c("pearson", "kendall", "spearman") # 상관 계수의 종류. 기본값은 피어슨 ) |
c(1, 2, 3, 4, 5)와 c(1, 0, 3, 4, 5) 간의 피어슨 상관 계수, 스피어만 상관 계수, 켄달의 상관 계수에 대해 상관 계수 검정을 수행해보자.
> cor.test(c(1, 2, 3, 4, 5), c(1, 0, 3, 4, 5), method="pearson") Pearson's product-moment correlation data: c(1, 2, 3, 4, 5) and c(1, 0, 3, 4, 5) t = 3.9279, df = 3, p-value = 0.02937 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.1697938 0.9944622 sample estimates: cor 0.9149914 > cor.test(c(1, 2, 3, 4, 5), c(1, 0, 3, 4, 5), method="spearman") Spearman's rank correlation rho data: c(1, 2, 3, 4, 5) and c(1, 0, 3, 4, 5) S = 2, p-value = 0.08333 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.9 > cor.test(c(1, 2, 3, 4, 5), c(1, 0, 3, 4, 5), method="kendall") Kendall's rank correlation tau data: c(1, 2, 3, 4, 5) and c(1, 0, 3, 4, 5) T = 9, p-value = 0.08333 alternative hypothesis: true tau is not equal to 0 sample estimates: tau 0.8
코드 수행 결과 피어슨 상관 계수에서만 p-value가 0.05보다 작아 상관관계가 유의한 것으로 나타났다. 이처럼 세 가지 상관 계수의 값은 서로 다른 값이 될 수 있다. 이런 경우 더 작은 숫자를 사용하는 것이 바람직하다. 위의 경우라면 켄달의 상관 계수 0.8이 가장 작은 값이므로 이 값을 사용한다. 또는 세 가지 값이 계산하는 것이 무엇인지 알고 데이터의 성격에 비추어 올바른 상관 계수를 찾아 사용해야 한다.