Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

project:eve

R을 이용한 데이터 분석 : 상관분석 본문

R

R을 이용한 데이터 분석 : 상관분석

eveee 2022. 12. 30. 19:05

오늘은 R을 이용해 상관분석을 하는 과정을 소개해드리려고 해요.

상관분석이란? 두 연속형의 변수 그룹 간 선형 관계를 측정하는 방법입니다.

결과값이 +1이면 그룹1의 값이 증가하면 그룹2의 값도 증가하고, -1이면 반대로 감소합니다. 그리고 값이 0이면 선형관계는 존재하지 않고 각 그룹이 독립성을 가집니다.

 


분석에 필요한 자료를 가져와 살펴볼게요. 자료는 헬스클럽에서 운동하는 사람들에 대한 자료를 대상으로 했습니다.

혹여 같은 데이터로 실습해보고자 하시는 분들은 아래의 첨부 파일을 다운로드 해주세요!

health.csv
0.00MB

healthcsv<-read.csv('/Users/eve/Downloads/rpy/health.csv')
head(healthcsv)

 

이 자료는 weight, pulse, muscle, quarter 데이터가 time 데이터에 영향을 미치는 구조로 되어 있어요. 즉 앞의 4개 데이터가 독립변수, time 데이터가 종속변수가 됩니다. 운동을 많이 할수록 심박수나 근육량은 더 높아지거나 많아지고 그에 따라 시간이 많이 소요되겠죠?

 

데이터 내에서 두 변수를 뽑아서 그래프로 관계를 알아볼게요.

pch 속성은 그래프에서 표현되는 점 기호의 종류를 지정할 수 있어요. 1은 흰색 동그라미, 19는 아래 그림처럼 검은 동그라미에요.

plot(healthcsv$weight, healthcsv$time, pch=19)

점의 분포가 대체적으로 선형을 이루고 있어요. 얼마인지는 모르겠지만 무게의 값이 올라갈수록 들인 시간도 높아지는 것 같아요.

 

이번에는 모든 변수에 대해 서로 각각의 선형관계에 대해 그래프로 그려볼게요. 데이터에 [, -1]을 넣은 이유는 1항이 id항으로 사실 index항이나 다름없기 때문에 제외했습니다.

pairs(health[, -1], pch=19)

가운데 쓰여진 필드명이 각각 위치에 따라 x축, y축 역할을 하면서 서로간의 선형 관계를 표현합니다. 이것을 상관관계 행렬이라고 해요.

 

위 그림으로만 봤을 때, 가장 선형적인 관계는 quarter와 time 같고, 그렇지 않은 관계는 muscle과 quarter인 것 같아요.

여기에서 우리는 상관관계 함수를 사용해서 변수 간 관계를 수치로 명확하게 표현할 수 있습니다.

cor(health[, -1]

상관관계 그래프를 그대로 수치로 표현한 것으로, 그래프로 보았던 것과 같이 quarter와 time의 상관계수 값이 제일 크네요.

 

 

이번에는 맨 처음에 말했던 time이라는 종속변수와 나머지 독립변수 간의 상관관계를 수치로 나타내 볼게요.

x<-health[, c(2:5)]

cor(x, health$time)

상관관계가 제일 높은 변수는 quarter입니다.

 

마지막으로 상관관계 측정을 위한 함수로 cor.test()가 있는데요. output은 cor와 같지만 값의 타당성(p-value), 신뢰구간, 자유도 등 부가적인 데이터도 같이 표시해 줍니다. 한번 사용해 볼게요. 여기에서 출력된 상관계수 값은 피어슨 상관계수로 불립니다.

참고로 cor 함수와 달리 x데이터에는 하나의 데이터만 입력할 수 있어요.

cor.test(health$quarter, health$time)

출력된 내용을 살펴보면 t통계량은 8.4691, 자유도는 28, p-value의 값으로 보았을 때 귀무가설이 기각되었다는 것을 알 수 있습니다.

즉, 아랫줄의 alternative hypothesis(대립가설)이 채택되었다는 걸 알 수 있고 대립가설이란 'true correlation is not equal to 0'으로 해당 변수 간 상관계수가 0이 아님을 알 수 있습니다. 

 

상관계수 값이 95% 신뢰구간에서 0.7024195에서 0.9255545 안에 있다는 것을 알 수 있고 결과값은 0.8480748으로 두 변수 간에 강한 양의 상관관계를 가지는 것으로 결론을 내릴 수 있습니다.

 

'R' 카테고리의 다른 글

R을 이용한 데이터 분석 : 회귀분석  (0) 2022.12.31
R을 이용한 통계자료 분석 : 분산분석  (0) 2022.12.24