논문작성법 (6) 그래프, 표 그리고 통계 part III


③ Column graph 

ⓐ 단일변수 

      - unpaired t-test

      - Mann-Whitney test

      - paired t-test

ⓑ 다변수

      - one-way ANOVA

자, 이번 시리즈 포스팅의 대략적인 타임테이블은 글의 맨 뒤에 있다. 별 다른 변동사항이 없을 경우 맨 뒤의 표와 같은 순서로 포스팅을 진행할 예정이다.★외★는 상황 상황에 따라 추가될 수도 있으니 너무 신경쓰지는 말자. 자, 오늘 우리가 공부를 할 부분은 뻘건색으로 표시된 부분들이다. 즉, paired t-test와 다변수 중 one-way ANOVA에 대해서 같이 공부를 해보십시다. 근데 이거 야매로 만들라고 했는데 우째 일이 자꾸 커진다. 그래도 기본 베이스는 야매입니다. 틀린 부분이 많을터이니 이에 대한 지적질이나 설명질에 대해서는 당연히 미리 감사드립니다만, 너무 나무라지는 마세요. 너무 의기소침해지면 또 방구석에 틀어박혀서 SSRI나 처묵 처묵 하게될지도 몰라염. 


결국 오양의 논문은 주작으로 자연誌에서 확인사살한 모양입니다. 황모씨때가 오버랩되면서 씁쓸해지는군요. 황모씨나 오양이나 과학자라기 보다는 양아치들이죠 뭐.

③ Column graph


ⓐ 단일변수 - paired t-test


우리가 지난시간에 살펴봤던 paired t-test와 Mann-Whitney test의 경우는 피실험체 개개인의 데이터를 기반이 아니라 그룹별 데이터를 기반으로 하고 있었다. 그런데, 다음과 같은 경우를 상정해보자. 마우스 한마리 한마리에서 약물을 주기 전/후 혈중에서 특정 물질의 농도를 측정한 데이터. 이를 환자기반 연구로 비유하면, 환자 한명 한명에게 약물을 주기 전/후의 반응을 관찰하는 경우 말이다. 이런 경우에는 각 데이터가 환자별/마우스별로 약물투여 전/후의 데이터가 나오게 된다. 다음과 같이 말이다.

왼쪽의 column에는 각 환자/마우스별 데이터가 숫자로 정렬되어있다. 그리고 group A는 control (pre-treatment)이고 group B는 treatment 후의 특정 물질의 농도라고 치자. 뭐 대충 이런식으로 데이터셋이 나올꺼다. 자, 그러면 이제부터 통계처리를 시작해볼까? 따라란 따라란 딴딴~



일단 이 데이터들이 정규분포를 따르는지 안 따르는지부터 살펴보는게 먼저일꺼다. 각 그룹별 n수가 딱 10개씩이므로 정규분포를 따르는지의 여부를 살펴보자. 쨘.


그러면 두 그룹 모두 정규분포를 따르는 것으로 나온다. 그러면, 우리는 paired t-test를 할 수 있게 된다. 


요로코롬 뿅뿅하면,

통계 결과가 뿅 하고 나온다. p value가 0.0098이다. 우앙ㅋ굿ㅋ 그러면 그래프를 요로코롬 그릴 수 있게 된다.


별이 두개인 그래프가 생겨요. 자, 그런데 만일 정규성검정 결과 정규분포를 따르지 않는다고 나온다면 (p < 0.05) 어떻게 해야 하는가? 뭘 어쩌긴 어째, "No. use nonparametric test" 클릭해서 Wilcoxon matched-pairs signed rank test해야지. 윌콕슨씨의 랭크테스트는 데이터의 숫자는 다 날리고 순위별로 검정하는거라고 보면 된다. 자세한 내용은 아래링크를 참조하세요. 

Wilcoxon signed rank test (술술보건의학통계 블로그)

여하간 아래처럼 nonparametric > wilcoxon matched-pairs signed rank test 하면 결과가 나온다.


뭐 이런 식으로 치료 전/후의 데이터에 대한 통계 처리를 할 수 있다.


 다변수 - one way ANOVA


저기요, 근데요. 제가 실험을 했는데요. 약물을 주고 억제제를 줬걸랑요? 이처럼 변수가 많으면 어떻게 t-test 하나염? 걍 각 그룹별로 t-test하면 되는건가염?

살면서 이런 질문을 해보거나 받아본 적이 있을꺼다. 답은 간단하다. 아노바 돌려요. 끝


t-test/Mann-Whitney test는 하나의 변수를 가지고 두 그룹을 비교하는데 쓰이는 통계처리 방법이다. 이에 비해 ANOVA는 다변수를 가지고 통계처리를 하는 방법이다. 앞선 예와 같이 약물A, 약물A에 대한 억제제B처럼 2개의 변수가 존재를 할 경우 이들간의 상관관계에 대한 통계처리 방법이라고 보면 된다.


단변수의 경우 그룹의 정규성 검정에 따라 각기 t-test와 Mann-Whitney test를 돌린 것과 같이 다변수의 경우도 그룹의 정규성 검정에 따라 One way ANOVA와 Kruskal-Wallis test로 나뉘게 된다. (two-way 이상의 ANOVA 검정에 대해서는 차후에 알아보도록 하자.)


뭐, 간단하게 데이터 그룹들이 정규분포를 따르면 ANOVA, 안 따르면 Kruskal Wallis test 돌리면 된다고 보면 된다. 아래 그림처럼 말이다.


자, 그렇다면 세 군의 비교의 경우 귀무가설과 대립가설을 어떻게 설정하는지를 살펴보자.


One-way ANOVA의 가설은 위와 같이 정해지고, 이에 대해서 유의수준 5%에서 검정이 들어가게 된다. 자, 그렇다면 만일 대립가설이 성립되는 경우, 즉 "읭? 그룹 A,B,C간의 뭔가 차이가 나넹?"가 되면 우왕ㅋ굿ㅋ 끝이당~인가? 애석하게도, 이 회의주의자들이 득실한 환경에서는 뭐가 얼마만큼 어떻게 차이가 나는지를 이야기해주지 않는다면 아무도 인정을 해주지 않는다. 이를 검증하는 방법이 바로 post-hoc test이다. 


post-hoc test

사후분석 (post-hoc) 검정법으로 주로 사용되는 방법은 Bonferroni와 Tukey, Sidak, Dunn을 주로 사용하게 된다. 먼저 Bonferroni test의 경우는 각 그룹간 t-test를 돌린다고 생각하면 된다. 다만, 전체 유의수준을 5%으로 고정된 상태에서 t-test를 진행하는 것이기 때문에, 각 그룹간 검정력은 0.05/3 = 0.0167. 대략 1.66%의 수준의 유의수준으로 각 그룹간을 검정하게 된다. 이게 뭔 말이냐 하면, 더럽게 p value가 안나와.  이게 워낙 보수적으로 통계를 돌리는 것이기 땜시롱 그렇다. (아 그런데, 이거는 모든 그룹간 비교하는 경우에 해당하는 거고, 만일 Control group A vs Group B, Control group A vs Group C, 이런 식으로 control group하고만 비교한다고 하면 검정력이 높아지게 된다. 이 경우는 2번만 posthoc test를 진행하는 경우이므로 0.05/2 = 0.025. 쪼금만 생각해서 돌리면 유의수준을 쥐똥만큼 더 올릴 수 있다.) 


회의주의자들이 득세하는 이 바닥이라고 할지라도 이게 해도 해도 드럽게 p value 맞추기 힘들었는지 adjusted p value를 구할 수 있는 여러가지 post-hoc test들이 개발되었다.  Tukey, Sidak, Holm-Sidak, Newman-Keuls, Fisher's LSD 등의 테스트가 그것이다. 얘들의 기본적인 개념은 위에서 보았듯 bonferroni로는 죽어라 안 나오는 post-hoc tes에서의 p value를 어떻게든 발악을 해서라도 쥐똥만큼이라도 나오게 만들어주자이다. (허허허. 전 야매에요. 더 정확한 설명은 통계에 빠삭한 주변분들이나 정통 통계학자분에게 물어보세용)

그렇다면 여기에서 우리는 가장 중요한 문제에 봉착하게 된다. 바로 
그럼 post-hoc test로 뭘 쓰란 말입니까!

야매스럽고도 무책임한 답은 의외로 간단하다.
일단 bonferroni 돌려봐. 안 나오면 Tukey 써보고. 그래도 안 나오면 검정력이 더 높다는 Holm-Sidak이나 Newman-Keuls 쓰세요. 그래도 안 나오면 답 없는겁니다. 

뭐 이건 정말 답 없다. 통계학자분들의 주장에 따르면 어떤 경우에는 어떤 것이 검정력이 조금 더 좋으니 뭐 뭐를 사용하고, 어쩌고 말들이 많기는 한데, 우리처럼 비루한 의과학자 따위들이 어디 고귀하신 통계학자분들의 고견을 알아들을리야 만무하고, 걍 prism에서 기본으로 추천되어 있는 Tukey나 유서깊은 Bonferroni로 통계처리 하면 된다. 이 정도로만 해도 통계 때문에 논문 리젝 안 먹는다. 

아, 그리고 Bonferroni나 Tukey는 그룹이 정규분포를 따를 경우에 사용하는 post-hoc test이고 정규분포를 따르지 않는 경우. 즉, Kruskal-Wallis test를 돌릴 경우에는 Dunn test를 사용하면 된다. 정통 야매 통계를 표방하는 우리는 걍 posthoc 테스트로 Tukey, Bonferroni/Dunn을 사용한다고만 알고 넘어가자. 혹시라도 더 자세히 알고 싶으신 분은 아래 위키피디아 링크를 참조해서 스스로 공부하세용~데헷
Post-hoc analysis (Wikipedia)

자, 설명은 이 정도로 끝내고 실전으로 넘어가보자. 다음과 같은 예를 상정해보자.

HEK293 세포에, 자극제 ⓐ를 주었을 때 HEK293세포가 분비하는 cytokine ⓒ의 양을 측정하였다. 그리고 이 자극제 ⓐ의 수용체에 대한 억제제인 ⓑ를 주었을 때 HEK293세포가 분비하는 cytokine ⓒ의 양이 억제되었는지를 살펴본 실험이다. 

그러면 실험 모식도와 그룹은 다음과 같이 나뉠 것이다.

뭐 당연히 데이터값은 cytokine ⓒ의 농도가 될 것이다. 다음과 같이 데이터가 나왔다고 상정해보자. 

자, 정규성 검정을 돌려보면 정규분포를 따르는 것으로 나오니 스킵하고, 이에 대한 one-way ANOVA를 돌려보자. 이 통계처리의 가설은 다음과 같다.

자, 아노바를 돌려보실까나.

요로코럼 one-way ANOVA를 클릭하고, 모든 그룹을 클릭하면

이런 창이 뜬다. 우리가 상정했었던 데이터는 pair데이터가 아니다. 만일 한 환자에게서 약물주고 혈중농도, 억제제주고 혈중농도 뭐 이런식으로 실험을 했다면 "Each row represents matched, or repeated measures, data"를 클릭하면 된다. 자, 다음으로는 정규분포를 따르므로 ANOVA를 진행하면 된다. 그러면 뿅 하고 결과가 나와용. 


그러면 one-way ANOVA test 결과가 나온다. p value < 0.0001 이므로 귀무가설을 기각하고, 대립가설을 체택해서 각 그룹간의 차이가 있다는 것을 알 수 있다. 오예~

아싸라비야~

근데 우리는 중요한 것을 까먹고 있다. 회의주의자들이 득실한 이 바닥에서 뭐가 어떻게 유의하게 차이가 나는지를 누군가는 물어볼 것이다. 

오빠 포스트혹 테스트 결과는? 혹시 까먹은거야? 어떻게 그럴 수 있어? 수지가 좋아? 내가 좋아? 얼릉 말해. 오빠는 사실 수지가 더 좋기는 하지만, 너도 좋기는 한데, 이걸 뭐라고 말해야 하나, 사실 시노자키 아이도 좋아하고, 이시하라 사토미도 좋아하기는 하는데.. 그렇다고 각키를 싫어하는 건 아니고...뭐랄까 요즈음은 걸스데이의 유라의 유라유라함에 한참 빠져있었다가, 지금부터우리는 노래는 참 좋은데, 오미아걸의 아린 두산 홈경기 공연영상을 보고 뿅가죽네★ 했는데, 사실 이상형은 마이너한 모델 송연주양입니다. 한국연구재단 대전청사 입구에 들어가면 왼쪽에 큼지막하게 프린트되어 있어요. 송연주양 마음으로 응원합니다. 화이팅!

자. 아까 one-way ANOVA 메뉴로 잠깐 시간을 다시 돌려보면, Experimental design 탭 옆에 다음과 같은 탭이 있었던 것을 확인할 수 있다.

자, 이 탭이 post-hoc test를 설정할 수 있는 탭이다. 기본으로는 "no multiple comparison test"가 설정되어 있다. 이 메뉴 아래로 각 comparison test를 설정하는 메뉴가 나온다. 우리 예에서는 그냥 A,B,C 그룹 모두를 검정하면 되는 것인데, 만일 검정능력을 조금이라도 높이려면 특정 그룹과의 검정만을 시행할 수 있도록 설정할 수 있다. 자, 그리고 이 탭 옆으로는 option 탭이 있다. 이를 눌러보자.

바로 여기에서 어떤 post-hoc test를 사용할지를 결정할 수 있게 된다. 기본으로는 Tukey test가 설정되어 있으며, 그 외 신뢰구간부터 이런 저런 옵션들을 바꿀 수 있게 되어 있다. 걍 OK 누르자. 그러면 뿅 하고 결과가 나타난다.

자 그러면 Control vs agonist ⓐ는 별이 세개, agonist ⓐ vs agonist ⓐ+antagonist ⓑ도 별이 세개가 나오는 것을 알 수 있다. 그러면 그래프를 다음과 같이 그릴 수 있게 된다.

그래프가 기본적으로 이쁘다. 근데 이게 전부가 아니라 여러 그래프 형태로 나타낼 수 있다. 다음처럼 말이다.



Scatter plot 이외에도 Scatter plot with bar, Box & Whiskers, Floating bars 등등 예뻐서 뿅가죽는 그래프를 만들 수 있다. 뭐 그래프를 옆으로 뉘일 수도 있고 기본적으로 아주 예쁜 그래프를 만들 수 있다.

자, 이 정도면 column graph에서 onw-way ANOVA까지 공부를 끝냈다. 다음 부터는 grouped graph로 넘어가자. 

논문작성법 (6) 그래프, 표 그리고 통계


⓪ 들어가면서

① 그래프의 종류

ⓐ column graph

ⓑ grouped graph

ⓒ x-y graph

ⓓ contingency

ⓔ survival graph

② 데이터의 처리 및 통계처리의 기초

ⓐ 연속형 자료와 범주형 자료 

ⓑ 가설의 검정방법

ⓒ 중심극한정리와 정규성검정

③ Column graph 

ⓐ 단일변수 

      - unpaired t-test

      - Mann-Whitney test

      - paired t-test

ⓑ 다변수

      - one-way ANOVA

④ Grouped graph 

ⓐ grouped graph의 기본적인 설명

ⓑ Two-way ANOVA

ⓒ Grouped bar graph

⑤ X-Y graph 

ⓐ X-Y graph의 기본적인 설명

ⓑ Linear regression

ⓒ Non-linear regression

ⓓ Correlation

ⓔ Dose-response 

ⓕ Enzyme kinetics - Michaelis-Menten

ⓖ Enzyme kinetics - Competitive inhibition

⑥ Contingency

ⓐ Contingency graph의 기본적인 설명

ⓑ Chi-square prospective

ⓒ Fishers exact test of retrospective data

⑦ Survival

ⓐ Survival graph의 기본적인 설명

ⓑ Comparing two groups

ⓒ Three groups

★ 번외 Graphpad prism 소프트웨어 설명


아. 그리고 이 글들은 Mimi Zeiger의 essentials for writing biomedical research papers를 주된 교재로 작성 중이였습니다만, 이제부터는 이를 기반으로 오리지널 스토리로 들어갑니다. 논문 작성법에 관련된 내용은 위 책을 참조하시면 됩니다. 이거 작성하기 힘들다! 무지 힘들어요! 저는 통계학자도 아니고 어디에서 야매로 배워서 실험결과 통계처리나 근근히 해나가면서 먹고 사는 사람인데 하나 하나 설명하려니 뱁새가 황새 쫓아가다가 가랑이 찢어지는 느낌이네요. 걍 프리즘 소프트웨어 설명만 하고 넘길껄. 껄껄껄. 그래도 일단 할 수 있는데 까지는 해봅시다. 이거 포스팅하면서 저도 다시 공부하는게 많아서 개인적으로 나쁘지는 않아요. 허허허. 틀린 부분이 많더라도 이해와 지도편달 및 고진선처를 부탁드립니다. 그리고 "저 새X 저거 통계도 모르면서, 저딴식으로 글을 써대네" 하시는 분들은 꼬우시면 직접 쓰셔서 포스팅 해주시면 감사합니다. 저희 블로그는 외부 필진을 환영합니다. 언제나 열린 블로그 MDPHD 블로그! 


+ Recent posts