프로그래밍

[R] R을 이용한 상관분석

RainIron 2021. 5. 16. 23:41
반응형

1. 상관분석의 개념

* 정의

1) 상관분석: 두 변수 간에 관계가 있는지를 알아보고자 할 때 실시하는 분석방법

2) 상관관계: 두 변수(대상)이 서로 관련성이 있다고 추측되는 단계

=> 한 쪽이 증가하면 다른 쪽도 증가(혹은 감소)하는 경향이 있을 때, '상관관계가 있다'라고 함.

3) 상관계수: 상관분석에서 두 변수의 관련된 정도를 나타내주는 값(표기법: 알파벳 'r'(Correlation))

=> 변수들 간의 상관도가 높아질 수록, 상관계수 값이 커짐

 

2. 상관분석의 특징

* 연구 예시

- 양의 상관관계: 지능지수와 성적, 키와 몸무게

- 음의 상관관계: 농작물 생산량과 가격, 고도와 기온

- 무의 상관관계: 스마트폰 이용 시간과 성적, 범죄율과 아이스크림 판매량

 

* 상관계수의 값: -1 <= r <= 1

- 0.0 ~ 0.1: 거의 관계없음

- 0.1 ~ 0.2: 약한 양의 상관관계

- 0.2 ~ 0.4: 보통 양의 상관관계

- 0.4 ~ 0.6: 비교적 강한 양의 상관관계

- 0.6 ~ 0.8: 강한 양의 상관관계

- 0.8 ~ 1.0: 매우 강한 양의 상관관계

 

* 양의 상관관계: 한 쪽이 증가하면 다른 쪽도 증가하는 관계

* 음의 상관관계: 한 쪽이 증가하면 다른 쪽은 감소하는 관계

* 무의 상관관계: 관계가 없음

 


1. 상관분석 그래프를 구현하기 위해 'corrplot'와 'lattice' 패키지를 설치 및 import

install.packages("corrplot")
library(corrplot)
install.packages("lattice")
library(lattice)

 

2. 상관분석을 위한 데이터 셋('mtcars')를 불러들임(내장된 데이터)

a = mtcars

3. 변수 중 gear와 carb의 상관계수를 산출함

mcor2 = cor(mtcars$gear, mtcars$carb)

print(mcor2)
# 0.2740 -> 상관관계가 아주 약함

 

4. 상관정도를 시각화(산점도)

xyplot(gear~carb, data = mtcars)

 

# lm: linear model
lm = plot(mtcars$gear, mtcars$carb)
abline(lm(mtcars$gear~mtcars$carb))

5. mtcars 데이터 전체 상관분석

mcor = cor(mtcars)

round(mcor, 2)

6. 상관계수를 도표로 시각화

corrplot(mcor)


7. 다른 라이브러리를 활용해 시각화(ggplot2)

* ggplot2: 데이터 기반으로 기하학적 객체들(점, 선, 막대 등) 미적 특성(색상, 모양, 크기)를 매핑하여 적용하는 시각화 패키지

# 'ggplot2' 활용 시각화
library(ggplot2)
qplot(gear, carb, data=mtcars)

* wt와 mpg의 상관관계

cor(mtcars$wt, mtcars$mpg)
# [1] -0.8676594

qplot(wt, mpg, data = mtcars, color = factor(carb))

강한 음의 상관관계(-0.867)

반응형