본문 바로가기

R_statistics/Rs_graphics

[R프로그래밍] 데이터시각화 with ggplot2::geom_signif, t-test 의 p-value 를 boxplot 그래프 위에 표시하기

오늘 포스팅 내용은 

boxplot 에 p-value 와 bar 를 그려서 각각의 그룹에서 평균값들이 통계적 유의성을 보여주는 방법입니다.

의학통계뿐 아니라 많은 통계 분석에서 사용하는 방법이죠.


data 는 iris 데이터를 사용해보겠습니다.

Species 에 따른 Sepal Length 의 평균차이를 boxplot 으로 보여주고, 거기에 bar 와 p-value 를 add 한 모습이 되겠습니다.

바로 아래 그림처럼 말이죠.



위의 figure 를 그릴 수 있는 코드를 살펴볼까요?


library('ggplot2')
library('ggsignif')
ggplot(iris, aes(Species, Sepal.Length))+
  geom_boxplot()+
  geom_signif(comparisons = list(c("setosa","versicolor"),c("versicolor","virginica"),c("setosa","virginica")),
              map_signif_level = TRUE, step_increase = 0.1)+
  theme_bw()



ggplot 에 그냥 수동으로 bar 와 p-value 를 add 할 수도 있지만...

ggsignif 라는 좋은 패키지가 나와있으니 사용을 하는게 좋겠죠?^^


'geom_signif()' 만 간단히 살펴보면

comparisions 는 비교하는 그룹들입니다. 위의 그래프를 참고하여 보시면 이해가 금방되실거에요.

map_signif_level 은 유의수준을 symbol 로 대체하여 표시를 할 것인지 아니면, p-value 를 적을 것인지 정하는 내용입니다. 

  TRUE 값으로 주시면 위의 그림처럼 symbol 로 표기가 되며, FALSE 로 주시면 유의수준이 적혀서 나옵니다.

step_increase 는 위의 bar 들의 간격을 의미합니다. 값을 크게 줄 수록 간격이 늘어납니다.

그 외의 세부조정 parameter 들은 vignette 를 참고하시길 바라겠습니다^^;