獨斷論

통계 R 사용설명서 19 - 분산공분산행렬(covariance matrix)과 상관계수행렬(correlation coefficient matrix) 본문

과학과 기술/R 통계

통계 R 사용설명서 19 - 분산공분산행렬(covariance matrix)과 상관계수행렬(correlation coefficient matrix)

부르칸 2016. 5. 27. 06:06

R에 기본데이터로 있는  state.x77을 가지고 분산공분산행렬(variance-covariance matrix)을 구하여보자.

분산공분산행렬은 간단히 공분산행렬(covariance matrix)이라고도 한다. 


별 어렵지 않으니깐 아래 스크립트를 R console에 하나씩 입력하면


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

 > my.state.x77 <- state.x77[ , 1:4]
 > head(my.state.x77)
            Population Income Illiteracy Life Exp
 Alabama          3615   3624        2.1    69.05
 Alaska            365   6315        1.5    69.31
 Arizona          2212   4530        1.8    70.55
 Arkansas         2110   3378        1.9    70.66
 California      21198   5114        1.1    71.71
 Colorado         2541   4884        0.7    72.06
 > cov_my.state.x77 <- cov(my.state.x77)
 > cov_my.state.x77
               Population      Income   Illiteracy     Life Exp
 Population 19931683.7588 571229.7796  292.8679592 -407.8424612
 Income       571229.7796 377573.3061 -163.7020408  280.6631837
 Illiteracy      292.8680   -163.7020    0.3715306   -0.4815122
 Life Exp       -407.8425    280.6632   -0.4815122    1.8020204
 > cov2cor(cov_my.state.x77)
             Population     Income Illiteracy    Life Exp
 Population  1.00000000  0.2082276  0.1076224 -0.06805195
 Income      0.20822756  1.0000000 -0.4370752  0.34025534
 Illiteracy  0.10762237 -0.4370752  1.0000000 -0.58847793
 Life Exp   -0.06805195  0.3402553 -0.5884779  1.00000000
 > cor(my.state.x77)
             Population     Income Illiteracy    Life Exp
 Population  1.00000000  0.2082276  0.1076224 -0.06805195
 Income      0.20822756  1.0000000 -0.4370752  0.34025534
 Illiteracy  0.10762237 -0.4370752  1.0000000 -0.58847793
 Life Exp   -0.06805195  0.3402553 -0.5884779  1.00000000


1째 줄에서 state.x77의 1~4번째 열만 골라서 my.state.x77이라는 변수를 만들었다.

2번째 줄에서 새로 만든 my.state.x77의 몇 줄만 보았고

10번째 줄에서 my.state.x77의 공분산행렬을 구하여 cov_my.state.x77에 입력하였다.

그 결과는 12~16번째 줄에서 볼수있다.


공분산행렬은 상관계수행렬로 변환이 가능한데 cov2cor( ) 함수를 이용하면 된다.

17번째 줄에서 공분산행렬을 상관계수행렬로 변환하였으며

23번째 줄에서 상관계수행렬을 구하였다.

18~22번째에 나타난 공분산행렬을 상관계수행렬로 변환한 결과와 24~28번째 나타난 상관계수행렬을 직접구한 결과가 동일하다.



Comments