20.통계데이터분석 - 상관분석 - 편상관관계.Rmd
0.01MB
20.통계데이터분석---상관분석---편상관관계.html
1.26MB
20.통계데이터분석 - 상관분석 - 편상관관계
2022-08-08
https://www.youtube.com/watch?v=LKK9PaSu9zU&list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&index=21
1. 편상관계수(partial correlation coefficient)
- 다른 변수가 두 변수 간 관계에 미치는 영향력 확인의 필요성: 상관분석으로 두 변수 간 관계를 분석할 때, 다른 변수가 그 관계에 영향을 미치는지 살펴볼 필요가 있음
- 편상관관계: 두 변수 간의 순수한 상관관계를 의미함
- 예) 직장인의 연봉과 혈압 간 대개 정의 상관관계가 관찰됨
- 그런데 원인은 이 두 변수가 모두 제3의 변수인 나이와 상관관계를 갖고 있기 때문임
- 일반적으로 나이가 많은 직장인은 젊은 직장인에 비해 연봉도 많고 혈압도 높기 때문에 마치 혈압이 높은 직장인의 연봉도 많이 받는 것처럼 보이게 됨
- 따라서 연봉과 혈압간 순수한 관계를 분석하고자 하면 나이의 영향을 배제해야 함
- 이를 통계학 용어로 “나이 변수를 통제한다” 라고 얘기함
- 나이의 영향을 일정하게 유지한 체 연봉과 혈압 간 관계를 분석해야 두 변수 간 진정한 상관관계를 알 수 있음
- 편상관계수: 하나 이상의 다른 변수 영향을 통제한 상태에서, 관심의 대상인 두 변수 간 선형적 관련성을 측정한 지표임
- 편상관계수의 특징
- 편상관계수를 통해 두 변수 간 순수한 상관관계를 파악할 수 있음
- 편상관계수는 두 변수 간 상관이 존재하는 듯 보이나 사실 상관관계가 없는 가짜 상관을 찾아내는 데 유용하게 활용될 수 있음
- 두 변수 간 상관이 사실 두 변수가 진짜 상관을 갖는 제3의 다른 변수와 상관관계를 갖기 때문에 발생한다면 두 변수 간에는 가짜 상관이 관찰될 수 있음
- 위의 예에서 연봉과 혈압 간 관계는 가짜 상관임. 나이를 통제하면 두 변수 간 상관관계는 사라지게 되기 때문임
- 편상관계수로 숨겨진 관계를 찾을 수 있음
- 어떤 두 변수 간 충분히 예상할 수 있는 기대되는 상관을 발견할 수 없다면 다른 변수들이 이 관계를 억제하고 있을 가능성이 있음
- 변수 a와 변수 b간의 기대되는 상관이 나타나지 않으면, 변수 a는 다른 변수 c와 정의 상관관계를 갖고, 동시에 변수 c가 변수 b와 부의 상관관계를 갖고 있기 때문일 수 있음
- 변수 c를 통해 ‘+’ 상관관계와 ‘-’ 상관관계가 상쇄 돼 변수 a 와 변수 b간의 관계가 드러나지 않았을 수 있음
- 예) 와인냉장고 구매 필요성과 구매의향 간 상관관계가 거의 나타나지 않았다고 가정
- 이때 새로운 변수인 소득을 고려할 때, 소득과 구매 필요성 간에는 부의 상관관계, 소득과 구매의향 간에는 정의 상관관계가 나타남
- 편상관분석으로 소득의 영향을 통제하면, 즉, 소득을 통제한 구매필요성과 구매의향 간의 편상관계수를 구하면 처음과 달리 정의 상관관계를 확인할 수 있음
- 결국 소득이라는 제3의 변수로 인해 구매 필요성과 구매의향 간 관계가 드러나지 않았다고 볼 수 있음
2. 편상관분석 수행하는 절차
2-1. mtcars데이터셋 설명
https://youtu.be/LKK9PaSu9zU?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=237
- mtcars데이터셋 설명
- 32개 자동차 모델별로 자동차에 대한 정보가 11개 변수로 저장이 돼 있음
- 설명의 편의를 위해서 11개의 변수 중 4개만 선택 후 subset 생성함
- 4개 변수는 연비(mpg), 실린더개수(cyl), 마력(hp), 자동차 무게(wt)임
str(mtcars)
## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
mtcars2 <- mtcars[ , c("mpg", "cyl", "hp", "wt")]
2-2. cor() - 변수간의 상관계수 측정
- 4개 변수 간 상관계수 계산
cor(mtcars2)
## mpg cyl hp wt
## mpg 1.0000000 -0.8521620 -0.7761684 -0.8676594
## cyl -0.8521620 1.0000000 0.8324475 0.7824958
## hp -0.7761684 0.8324475 1.0000000 0.6587479
## wt -0.8676594 0.7824958 0.6587479 1.0000000
- 결과해석
- 연비(mpg)와 마력(hp) 간 상관계수가 -0.78로 꽤 높은 수준의 부의 상관관계가 관찰됨
- 연비(mpg)와 나머지 두 개 변수 간 관계도 마력(hp)과의 관계 못지않게 꽤 높은 수준의 부의 상관계수가 출력됨
- 연비(mpg)와 실린더개수(cyl) 간은 -0.85, 연비(mpg)와 자동차 무게(wt) 간은 -0.87임
- 그래서 연비(mpg)와 자동차 마력(hp) 간 이러한 높은 수준의 부의 상관관계가 어쩌면 연비(mpg)와 실린더개수(cyl) 간 관계, 연비(mpg)와 자동차 무게(wt) 간 관계에서 영향을 받았을 수도 있다고 생각할 수 있음
- 연비(mpg)와 마력(hp) 간 순수한 상관계수를 계산해 그러한 가능성을 확인할 수 있음
2-3. pcor()_ggm패키지 - 편상관계수 계산
- 실린더개수(cyl), 무게(wt) 영향을 통제한 상태에서 연비(mpg)와 마력(hp) 간 편상관계수 계산
- 인수설명
- 1st 인수: 편상관계수를 계산할 변수와 통제할 변수를 인덱스나 변수명으로 지정
- 처음 두개의 인덱스나 변수명은 편상관계수를 계산할 변수임. 여기서는 연비(mpg)와 마력(hp) 간 편상관계수를 계산할 것이기 때문에 인덱스로 1과 3 지정
- 이어서 나머지 변수의 변수명이나 인덱스는 통제할 변수를 의미함. 통제할 변수가 실린더개수(cyl)와 자동차 무게(wt)이기 때문에 인덱스로 2와 4 지정
- 2nd 인수: 데이터셋으로부터 산출된 공분산행렬 지정. 공분산행렬은 cov()로 계산가능
- 1st 인수: 편상관계수를 계산할 변수와 통제할 변수를 인덱스나 변수명으로 지정
library(ggm)
pcor(c(1, 3, 2, 4), cov(mtcars2))
## [1] -0.2758932
- 결과해석: 실린더개수(cyl)와 자동차 무게(wt)를 통제한 상태에서 연비(mpg)와 마력(hp) 간 순수한 상관계수가 확인됨
- 인덱스 대신에 변수명을 사용해도 됨
pcor(c("mpg", "hp", "cyl", "wt"), cov(mtcars2))
## [1] -0.2758932
- 결과해석
- 앞서와 똑같은 편상관계수를 얻을 수가 있음
- 실린더개수(cyl)와 무게를 통제한 연비(mpg)와 마력(hp) 간 편상관계수는 -0.28임
- 연비(mpg)와 마력(hp) 간 pearson상관계수가 -0.78었으니 거의 1/3수준으로 축소됨
- 이로 미뤄볼 때, “연비(mpg)와 마력(hp) 간 이러한 높은 상관계수는 실린더개수(cyl)와 자동차 무게(wt)의 영향을 받았을 수 있다”라고 생각해 볼 수 있음
- 실린더개수(cyl)와 자동차 무게(wt)의 영향을 배제하면, 그 둘간 순수한 상관계수는 -0.28로 작아지는 것을 볼 수 있음
2-4. pcor.test()_ggm패키지 - 편상관계수에 대한 유의성 검정
- 편상관계수에 대한 유의성 검정은 pcor.test() 함수로 측정 가능
- 인수설명
- 1st: pcor()함수로 산출된 편상관계수를 지정
- q인수: 통제할 변수의 개수 지정. 여기는 실린더개수(cyl)와 자동차 무게(wt)를 통제할 변수로 사용했기 때문에 q 인수에 2를 지정
- n인수: 관측값 갯수, 즉, 표본크기를 지정. 데이터셋의 행 개수를 세서 지정
pcor.test(pcor(c(1, 3, 2, 4), cov(mtcars2)), q=2, n=nrow(mtcars2))
## $tval
## [1] -1.518838
##
## $df
## [1] 28
##
## $pvalue
## [1] 0.1400152
- 결과해석
- p 값이 0.14임
- 유의수준을 0.05 했을 때, 모집단에서 편상관계수가 0이라는 귀무가설을 기각하지 못함
- 따라서 실린더개수(cyl)와 무게를 통제하면, 연비(mpg)와 마력(hp) 간 순수한 상관관계는 존재하지 않음
- 두 변수 간 드러난 상관관계는 상당부분 실린더개수(cyl)와 무게에 의한 것이라 판단할 수 있음
2-5. pcor()_ppcor패키지 - 편상관계수와 그에 대한 유의확률 계산
- ppcor 패키지 pcor() 특징
- ggm 패키지 pcor()와 달리 편상관계수와 편상관계수에 대한 유의성 검정을 동시에 계산
- 데이터셋에 포함돼 있는 모든 변수쌍 간 편상관계수와 그에 대한 유의확률을 계산해 줌
- 인수설명: pcor()함수의 행렬이나 데이터 프레임을 인수로 지정함
library(ppcor)
pcor(mtcars2)
## $estimate
## mpg cyl hp wt
## mpg 1.0000000 -0.3073687 -0.2758932 -0.6285559
## cyl -0.3073687 1.0000000 0.5340905 0.2224468
## hp -0.2758932 0.5340905 1.0000000 -0.1574640
## wt -0.6285559 0.2224468 -0.1574640 1.0000000
##
## $p.value
## mpg cyl hp wt
## mpg 0.0000000000 0.098480097 0.140015155 0.0001994765
## cyl 0.0984800975 0.000000000 0.002365994 0.2374063384
## hp 0.1400151550 0.002365994 0.000000000 0.4059618058
## wt 0.0001994765 0.237406338 0.405961806 0.0000000000
##
## $statistic
## mpg cyl hp wt
## mpg 0.000000 -1.709183 -1.518838 -4.276365
## cyl -1.709183 0.000000 3.342856 1.207328
## hp -1.518838 3.342856 0.000000 -0.843747
## wt -4.276365 1.207328 -0.843747 0.000000
##
## $n
## [1] 32
##
## $gp
## [1] 2
##
## $method
## [1] "pearson"
- 결과해석
- 첫 번째 출력결과로 모든 변수쌍 간 편상관계수를 볼 수 있음
- 이어서 그 편상관계수에 대한 유의확률도 확인할 수 있음
- 각 변수쌍 간 편상관계수를 산출 시, 나머지 변수들은 통제변수로 간주됨
- mpg변수와 hp변수 간 편상관계수 계산 시, 나머지 변수 cyl와 wt가 통제변수로 사용됨
- mpg변수와 cyl변수 간 편상관계수 계산 시, 나머지 변수 hp와 wt가 통제변수로 사용됨
2-6. pcor.test()_ppcor패키지 - 특정 두 변수만의 편상관계수와 유의확률 계산
- pcor.test() 사용시 모든 변수쌍이 아닌 특정 두 변수만의 편상관계수와 유의확률 계산 가능
- 인수설명
- 1st, 2nd: 편상관계수를 계산하는 변수를 차례대로 지정
- 3rd: 통제변수 지정
pcor.test(mtcars2["mpg"], mtcars2["hp"], mtcars2[c("cyl", "wt")])
## estimate p.value statistic n gp Method
## 1 -0.2758932 0.1400152 -1.518838 32 2 pearson
- 결과해석: 연비(mpg)(mpg)와 마력(hp)(hp) 간의 편상관계수와 그에 대한 유의성 검정결과만 출력가능