편상관분석

순동·2022년 2월 18일
0

📌 편상관계수(partial correlation coefficient)

  • 두 변수 간의 순수한 상관관계
  • 하나 이상의 다른 변수의 영향을 통제한 상태에서 관심 대상인 두 변수 간의 선형적 관련성 측정
  • 가짜 상관을 찾아내는 데 활용
    ex) 연봉과 혈압 ~ 나이

  • 숨겨진 관계를 찾는 데 활용
    ex) 구매 필요성과 구매 의향 ~ 소득

  • A는 C와 양의 상관관계, C와 B는 음의 상관관계를 가지기 때문에 상쇄가 되어 A-B 관계가 드러나지 않는 것

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")]

📌 상관계수

> 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-cyl의 상관계수 : -0.8521620
  • mpg-hp의 상관계수 : -0.7761684
  • mpg-wt의 상관계수 : -0.8676594

mpg와 hp의 음의 상관관계가 mpg-cyl, mpg-wt의 영향을 받았을 가능성이 존재한다.

📌 편상관계수

mph와 hp의 편상관계수

> pcor(c(1, 3, 2, 4), cov(mtcars2))
[1] -0.2758932

> pcor(c("mpg", "hp", "cyl", "wt"), cov(mtcars2))
[1] -0.2758932

cyl와 wt를 통제한 상태에서의 mpg와 hp의 순수한 상관계수 -0.2758932이다. mpg와 hp의 높은 음의 상관계수는 cly과 wt의 영향을 받았음을 알 수 있다.

📌 편상관계수에 대한 유의성 검정

> 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-value = 0.1400152 이므로 귀무가설을 기각할 수 없다.
따라서 cyl과 wt를 통제하면 mpg와 hp에는 순수한 상관관계는 존재하지 않는다.

📝 편상관계수를 수행해주고 유의성 검정을 수행해주는 패키지

> 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"

> 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

0개의 댓글