상관계수

2019. 1. 18. 06:17R/R데이터분석기초

반응형


R을 이용한 상관계수 및 산점도 그래프 그리기


연봉 데이터를이용하여 상관계수 및 산점도 그래프에 대한 내용을 정리해보자.


경력과 연봉의 데이터셋


 경력

연봉 

 0

1700 

 1

2000 

 2

2400 

 3

2900 

 4

3500 

 5

4100 

 6

4500 

 7

5100 

  8.

5700 

 10

6500 

 12

7500 

 14

7800 

 15

8000 



산점도 그래프


# 연봉 예측데이터 불러오기
data = read.csv('data/salary.csv', fileEncoding='UTF-8')

# 경력 기준 정렬
data[order(data$experience),]

# 산점도와 보조선 그리기
plot(data, pch=16, xlab="Experience", ylab="Salary", col="dodgerblue")

# 평균선 그리기
abline(v=mean(data$experience), lty=2)
abline(h=mean(data$salary),lty=2)

실행결과 아래와 같은 산점도 그래프가 만들어진다.


▩ 각 사분면 관측치의 특성


사분면

첫번째변수 

두번째변 수 

 1

 평균이상

 평균이상

 2

 평균이상

  평균이하 

 3

  평균이하 

 평균이하

 4

  평균이상 

  평균이하 


- 위의 데이터는 2,4사분면 데이터가 없지만 데이터가 있는경우는 위의 특성을 나타낸다.



공분산을 활용하여 변수 관계 확인하기


공분산(covariance)

- 0에 가까울수록 관련이 없음

- 큰 양수가 나올 수록 두 변수가 양의 상관을 가짐

- 큰 음수가 나올 수록 두 변수가 음의 상관을 가짐



▩ 공분산의 계산 예제


경력(x)과 연봉(y)의 공분산




경력

연봉 

 


 


 X(곱)

 0

 1700

-7 

 -3046

  21322 

 1

 2000

-6 

  -2746 

 16476

 2

 2400

-5 

 -2346

 11730

 3

 2900

-4 

  -1846 

  7384

 4

 3500

-3 

  -1246 

   3738 

 5

 4100

-2 

   -646 

   1292 

 6

 4500

-1 

   -246 

    246 

 7

 5100

0

   354

     0

 8

 5700

1

   954

  954

 10

 6500

3

   1754 

 5262

 12

 7500

5

   2754 

 13770 

 14

 7800

7

   3054 

 21378 

 15

 8000

 8 

   3254 

26032


위의 식을 대입하여 계산한 결과는 아래와 같다.



공분산의 한계와 대체방안


공분산의 특성과 한계

- 두변수의 관계에 대한 절대적인 요약 값

- 단위 문제 발생:

    • scale : 경력과 연봉의 분포에 비해 단위가 큰 숫자로 계산된 공분산
    • unit : 경력과 점수의 공분산의 단위는 "경력x연봉"

문제 해결을 위해 상관계수의 활용



상관계수의활용


피어슨상관계수(Pearson's correlation coefficient)



- 표준화된 두 수치형 변수로 계산된 공분산

- 공분산의 단위(scale/unit)의 문제를 해결



상관계수 계산의 예제


경력(x)과 연봉(y)의 상관계수

- 상관계수와 공분산, 두변수의 표준편차의 관계를 활용




지금까지 직접 상관계수 값을 구해 보았다.

R에서구하는 방법을 알아보자

# 연봉 예측데이터 불러오기 data = read.csv('data/salary.csv', fileEncoding='UTF-8') # 경력 기준 정렬 data[order(data$experience),] # 산점도와 보조선 그리기 plot(data, pch=16, xlab="Experience", ylab="Salary", col="dodgerblue") # 평균선 그리기 abline(v=mean(data$experience), lty=2) abline(h=mean(data$salary),lty=2) # 상관계수 계산하기 r_xy = cor(data$experience, data$salary) r_xy

실행결과는 아래와 같다.

> r_xy [1] 0.9931051

"계산결과는 1에 가까운 양의 값이므로 경력과 연봉은 양의상관관계를 가지고 있다고 볼수 있다."



R을 이용한다면 몇줄의 코드로 구할 수 있겠지만 과정을 아는 것이 중요한듯 하다.


반응형

'R > R데이터분석기초' 카테고리의 다른 글

단순선형회귀모형  (0) 2019.01.21