상관분석과 상관계수
상관분석은 위의 그래프 처럼 자동차의 중량과 연비 간의 관계를 나타낸다.
자동차의 중량이 커지면 연비는 감소하는 추세를 보여주는데.
추세의 모양이 선(line)이어서 중량과 연비는 '선형적 관계'에 있다고 표현한다.
그런데 그래프의 따라 직선(회귀선)과 관측값들의 분포가 가깝거나 먼 것을 확인할 수 있다.
그래서 선형적 관계라고 해도 강한 선형적 관계가 있고 약한 선형적 관계도 있는 것이다.
상관분석은 두 변수 x 와 y 사이의 선형성 정도를 측정하는 방법으로 다음과 같이 정의된다.
상관계수는 선형성의 정도를 나타내는 척도로 사용된다.
상관계수는 r 은 다음과 같은 성질이있다.
- -1 <= r <= 1
- r > 0 : 양의 상관관계 ( x가 증가하면 y도 증가)
- r < 0 : 음의 상관관계 ( x가 증가하면 y는 감소)
r(상관계수)이 1이나 -1에 가까울수록 x,y의 상관성이 높다고 볼 수 있다.
R을 이용한 상관계수 계산
다음은 음주정도와 혈중알콜농도가 상관성이 있는지 알아보는 예시 자료이다.
10명의 실험자에 대해 맥주를 마신 잔 수(beers) 와 혈중알콜농도(bal)에 대한 측정 자료이다.
bears | 5 | 2 | 9 | 8 | 3 | 7 | 3 | 5 | 3 |
bal | 0.10 | 0.03 | 0.19 | 0.12 | 0.04 | 0.095 | 0.07 | 0.06 | 0.02 |
R-Code
beers <- c(5,2,9,8,3,7,3,5,3,5) bal <- c(0.1,0.03,0.19,0.12,0.04,0.095,0.07,0.06,0.02,0.05) tbl <-data.frame(beers,bal) tbl |
plot(bal~beers,data=tbl) |
res=lm(bal~beers,data=tbl) #회귀식 도출 abline(res) #회귀선 그리기 |
cor(beers,bal) #상관계수 계산 |
cor() 함수는 상관계수를 구하는 역할을 한다. 상관계수값은 반올림하여 약 0.89가 나오는 데.
이 정도면 두 변수 사이의 상관성이 상당히 높다고 말할 수 있다.
상관계수값과 두 변수의 상관성
상관계수값이 어느 정도 되어야 두 변수가 상관성이 있다고 판단할 수 있는 정해진 기준은 없다.
다만 상관계수가 0.5보다 크거나 -0.5보다 작으면 두 변수의 상관성이 높다고 판단할 수 있다.
cor() 함수는 두 변수 사이의 상관계수를 구하는 역할을 하지만,
여러 개의 변수를 입력하면 어려 개의 변수 사이의 상관계수값을 테이블 형태로 나타낸다.
iris 데이터셋의 4개 변수에 대해 상호 간의 상관계수를 구해보자
R-Code
cor(iris[,1:4]) |
결과의 해석
실행결과를 보면 4개의 변수가 x축 , y 축 방향으로 나열되어 있고,
두 변수가 만나는 지점에 두 변수의 상관계수가 표시되어 있다. 예를 들면 Petal.Length와 Sepal.Width의 상관계수
값은 -0.4284401이다. 이 결과를 보면 가장 상관성이 높은 변수들은 Petal.Length와 Petal.Width이고,
상관계수 값이 무려 0.9628654로 거의 1에 가깝다.
'Data Science > R' 카테고리의 다른 글
[R] 그래프 시각화 총정리 ( EDA 탐색적 분석 ) (0) | 2020.06.16 |
---|---|
[R] 그래프 시각화 ( 선그래프 , graph , line graph ) (0) | 2020.06.16 |
[R] 그래프 시각화 ( 산점도 scatter plot, scatter graph) (0) | 2020.06.15 |
[R]. 그래프 시각화 ( 사분위수 , 히스토그램 , 상자그림 ) (0) | 2020.06.11 |
[R]. 그래프 시각화 ( 도수분표표 , 막대그래프 , 원그래프 ) (0) | 2020.06.11 |