1. 들어가며
일반적으로 두 변수의 상관관계는 인과관계를 의미하지 않는다. 따라서 논리적으로 인과관계가 없는 변수들 간에도 기계적으로 상관계수를 구하면 높은 상관계수가 나올 수 있다.
예를 들면 통계학 교과서에 가끔 인용되는 교회수와 범죄자수의 상관관계가 그렇다. 도시의 교회수와 범죄자수의 관계에서는 두 변수 사이에 숨어 있는 제3의 변수 "인구수"가 있다. 교회수가 많으면 당연히 인구가 많을 것이고 인구가 많으면 당연히 범죄자수도 많을 수 있는 것이다. 이런 경우 제 3의 변수를 통제하고 순수한 변수간의 상관관계를 구할 수 있는데 이를 편상관계수라고 한다.
2. 편상관계수 예제 데이터 생성
다음과 같은 개념으로 예제 데이터를 만들어 보자. 시력과 혈압의 상관계수를 구하는데 이 둘 사이에는 제3의 변수인 나이가 있다고 가정하자.
part_cor = data.frame( #데이터 프레임 생성
시력 = c(2.5, 2.4, 2.1, 1.5, 1.3, 1.2, 1.1, 0.9, 0.8,1.0), #10개
나이 = c(33,35,33,38,40,40,41,39,45,44),
혈압 = c(110,121,122,125,121,130,132,133,132,140))
먼저 시력과 혈압의 상관계수를 구해보자. 코드를 실행하면 -0.846이라는 아주 높은 음의 상관관계가 나온다.
cor(part_cor$시력,part_cor$혈압)
3. 편상관계수 구하기
다음 그림과 같은 개념으로 제3의 변수인 "나이"를 통제하고 "시력"과 "혈압"의 순수한 상관관계를 분석해보자.
library(psych) #필요 패키지
# partial.r(데이터프레임, 상관계수 구하는 변수, 통제변수) 수
partial.r(part_cor,c(1,3),2) # 1번째 변수 시력, 3번째 변수 혈압, 2번째 변수 나이
코드를 실행하면 아래와 같은 결과를 출력한다.
시력 혈압
## 시력 1.00 -0.45
## 혈압 -0.45 1.00
제3의 변수인 "나이" 효과를 제거하고 순수한 "시력"과 "혈압"의의 상관 계수는 - 0.846에서 - 0.45로 대폭 줄어들었다는 사실을 알 수 있다.
관련글
'R_데이터 분석 기술' 카테고리의 다른 글
정말 쉬운 연관규칙 실습 (1) | 2024.05.21 |
---|---|
리커트(likert) 척도 데이터 분석 (0) | 2022.06.11 |
R 확인적 요인분석(CFA) (0) | 2022.05.13 |
R 크론바흐 알파 값 계산 (0) | 2022.05.13 |
R을 이용한 t-test와 효과 크기 계산 (0) | 2022.05.04 |
R 랜덤포레스트(randomforest) (0) | 2022.05.03 |
R_의사결정나무 분석(rpart) (0) | 2022.05.02 |
댓글