과학과 기술/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번째 나타난 상관계수행렬을 직접구한 결과가 동일하다.