티스토리 뷰
R에서 데이터의 상관관계를 확인하기위한 Correlation plot을 그리는 방법은 여러가지가 있습니다. 그중에서 pairs(), ggpairs(), corrplot() 세가지를 이용해서 correlation plot을 그려보도록 하겠습니다.
먼저 분석에 사용할 연습 데이터를 생성해줍니다.
# make sample data --------------------------------------------------------
> set.seed(1000)
> N <- 1000
> sample_A <- rnorm(N, 0, 3) %>% sort(decreasing = T)
> sample_B <- x1 - rnorm(N, 0, 1)
> sample_C <- x1 - rnorm(N, 0, 2)
> data <- data.frame(sample_A, sample_B, sample_C)
> data %>% head
sample_A sample_B sample_C
1 8.010215 5.929794 5.566053
2 7.862183 9.081421 8.335642
3 7.661964 6.799355 10.441386
4 7.403367 6.762342 5.540203
5 6.583880 7.877348 6.383965
6 6.562641 6.608715 7.104148
기본 함수인 pairs()를 사용하면 다음과 같은 그래프를 얻을 수 있습니다. 기본값으로 그려진 형태여서 Corr. 값 없이 dot plot으로만 구성되어 있는데요, 아래와같이 간단한 과정을 거치면 원하는 위치에 원하는 자리수까지 표기를 할 수 있습니다.
# pairs() -----------------------------------------------------------------
> pairs(data)
# pairs() with Corr. ------------------------------------------------------
> panel.cor <- function(x, y){
+ r <- round(cor(x, y),3)
+ txt <- paste0("Corr. = ", r)
+ text(0.5, 0.5, txt, cex = 2)
+ }
> pairs(data,upper.panel = panel.cor)
두번째는 ggpairs()를 사용하는 방법입니다. ggplot2, GGally 패키지가 설치되어있지 않다면 우선 이 둘을 설치해주어야 하고, 다음과 같이 간단하게 그래프를 물론이고 상관계수까지 깔끔하게 표기해줍니다.
# ggpairs() -----------------------------------------------------------------
# install.packages("ggplot2")
# install.packages("GGally")
> library("ggplot2")
> library("GGally")
> ggpairs(data)
세번째는 corrplot()을 사용하는 방법입니다. 역시 corrplot 패키지가 깔려있지 않다면 우선 설치를 하고 라이브러리를 불러와 사용합니다. 특히 corrplot()에서는 다양한 method를 제공하는데 여기서 상관계수를 보고싶다면 number를 이용하면 되고, circle을 이용하면 상관계수에 따라 원의 크기와 색이 바뀌는 그래프를 확인 할 수 있습니다.
# corrplot() with number --------------------------------------------------
# install.packages('corrplot')
> library(corrplot)
> corrplot(cor(data), method = 'number', type="upper",
+ col=brewer.pal(n=10, name="RdYlBu"))
# corrplot() with circle --------------------------------------------------
# install.packages('corrplot')
> library(corrplot)
> corrplot(cor(data), method = 'circle', type="upper",
+ col=brewer.pal(n=10, name="RdYlBu"))
'R' 카테고리의 다른 글
R | ggplot2로 히스토그램 그리기 (0) | 2020.03.25 |
---|---|
R | 숫자 천단위 마다 콤마 찍기 (formattable) (1) | 2020.03.25 |
R | 히스토그램 그리기, hist() (0) | 2020.03.03 |
R | reshape2의 melt를 이용한 데이터 재구조화 (0) | 2020.02.14 |
R | reshape2의 cast()를 이용한 데이터 재구조화 (1) | 2020.02.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- hist
- Excel
- Python
- SEQ
- coronavirus
- 엑셀
- Visualization
- plot
- for loop
- 팟빵
- Order
- 파이썬
- geom_bar
- visualizing
- Cast
- data
- Coding
- format
- Command
- covid
- 숫자
- 코로나바이러스
- 2진수
- 데이터
- r
- Heatmap
- comma
- geom_line
- BIOINFORMATICS
- RStudio
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
글 보관함