기본 콘텐츠로 건너뛰기

글

라벨이 R 통계 및 데이터 분석인 게시물 표시

비모수 통계 - 짝지어진 데이터의 시각화 1

    이전 포스트:  https://blog.naver.com/jjy0501/222616527304  윌콕슨 부호 순위 검정에 곁들여 그래프로 결과를 보여주는 것도 중요합니다. 두 개 이상의 그룹의 값을 비교해서 보여주는 것은 boxplot 등 여러 가지 방법을 사용할 수 있습니다.   이전 포스트:  https://blog.naver.com/jjy0501/220961872950  여기서는 짝지어진 데이터 값을 R에서 그래프로 보여주는 방법을 알아보겠습니다. 먼저 사용할 패키지는 PairedData입니다.  install.packages("PairedData") library(PairedData) ?PairedData::`plot,paired-method`  를 치면 예제 데이터와 사용하는 방법이 간단히 소개되어 있습니다. 내장 데이터인 Shoulder는 수영선수 15명과 일반인 15명의 어깨 유연성을 비교한 것으로 치료 전후는 아니지만, 왼쪽 어깨와 오른쪽 어깨로 짝지어진 데이터 구조를 지니고 있습니다. 한쪽만 측정해도 다른 쪽도 어느 정도 연관성이 있을 것이라는 점을 쉽게 에측할 수 있습니다.  ?Shoulder Shoulder    Subject   Group Left Right 1       S1 Swimmer  193   192 2       S2 Swimmer  208   207 3       S3 Swimmer  198   198 4       S4 Swimmer  201   203 5       S5 Swimmer  196...

비모수 통계 - 비모수 다중 비교

   이전 포스트:  https://blog.naver.com/jjy0501/222616527304  윌콕슨 검정은 사실상 t 검정의 비모수 방법이라고 할 수 있는데, 그런 만큼 pairwise t test 같은 다중 비교 (Multiple Comparisons) 기능도 제공합니다. pairwise.wilcox.test가 R에서 기본으로 제공되는데, 물론 여러 번 검정을 하는데서 오는 1종 오류 (귀무 가설이 맞는데 기각하는 것)의 위험성이 증가합니다. 전혀 연관성이 없는데도 20번 이상 검정하면 한 번은 우연히 P<0.05가 나올 수 있는 것입니다. 따라서 사후 검정을 진행하게 되는데 이 기능 역시 pairwise.wilcox.test에서 지원합니다.   pairwise t test :  https://blog.naver.com/jjy0501/221132684701  참고로 비슷한 이름들이 많이 등장하기 때문에 헷갈릴 수 있는데, 윌콕슨 부호 순위 검정 (Wilcoxon signed-rank test)는 짝을 지은 두 개의 샘플이나 샘플이 한 개의 표본을 치료 전후 등으로 두 번 검사한 자료에 주로 사용합니다. 따라서 다중 비교를 한다는 이야기는 두 개 이상의 표본이 있다는 이야기입니다.   그래서 pairwise.wilcox.test는 윌콕슨 순위-합 검정 (Wilcoxon Rank-Sum Test)의 다중 비교가 되겠습니다. 이름 때문에 윌콕슨 부호 순위 검정과 많이 헷갈릴 수 있어 윌콕슨 순위 합 검정을 Mann-Whitney U-test라고 부르는 경우도 많은데 오히려 그것 때문에 더 헷갈립니다.   아무튼 여기서는 네 개의 연못에서 pH를 측정한 결과 서로 값의 차이가 없다는 것을 귀무가설로 검증해보겠습니다. (즉 짝지은 자료가 아님) 각각의 측정은 8번 이뤄졌기 때문에 각 군의 샘플수가 10개 미만으로 비모수 통...

비모수 통계 - 윌콕슨 부호 순위 검정 (Wilcoxon signed-rank test) 2

   이전 포스트:  https://blog.naver.com/jjy0501/222611469016  윌콕슨 부호 순위 검정의 예제들은 약 복용 직후 혹은 수술 직후 체중 변화 등을 소재로 삼는 경우가 많습니다. 여기서도 비슷한 예제를 만들어 보겠습니다. 정신과 약물 A를 복용한 환자에서 복용후 체중이 감소했다는 이야기를 들은 의료진은 우선 이 약물을 6개월 이상 복용했고 병원에서 체중을 직접 기록해서 데이터 정확성을 확보할 수 있는 19명의 환자를 대상으로 6개월 전후의 체중을 비교했습니다.   우선 데이터를 만드는 데 전후 비교이므로 변수명은 before와 after로 하겠습니다. 약물 복용 전 평균 체중은 60kg 이었고 복용 후에는 5% 감소한 57kg인데 통계적으로 유의한 차이가 있는지 검증하는 것입니다.   #paired sample set.seed(1234) A<-rnorm(19,60,4) set.seed(1234) B<-rnorm(19,57,4) A<-data.frame(A) names(A)<- c("before") B<-data.frame(B) names(B)<- c("after") data<-cbind(A, B)  코드를 실행하고 data를 보면 아래와 같은 모습이 되어 있을 것입니다. 만약 더 깔끔하게 보이고 싶다면 round를 이용해 소수점 아래 한 자리에서 정리하면 됩니다.   귀무가설 H0는 약물 복용 전후의 몸무게 차이가 없다는 것입니다. wilcox.test ()에 비교하고자 하는 변수 두 가지를 넣어 주고 paired = T를 넣어 줍니다.  wilcox.test(data$before, data$after, paired = T)  결과는  > wilcox.test(data$before, data$after, paired = T)  Wilcoxon signe...

비모수 통계 - 윌콕슨 부호 순위 검정 (Wilcoxon signed-rank test) 1

   이전 포스트:  https://blog.naver.com/jjy0501/222610552781  비모수( 非母數, Nonparametric ) 통계방법이란 이름처럼 모수가 아닌 데이터를 분석하는 방법입니다.  자료가 정규 분포를 따르지 않거나 (정규성 가정 위반) 서열척도 처럼 처음부터 따를 수 없는 자료를 분석하는 경우를 들 수 있습니다.  모수에 대한 가정을 하지 않고 모집단의 형태의 관계 없이 주어진 데이터로 분석을 하기 때문에 모수 통계 분석에서 주어지는 여러 가지 가정을 위반해도 데이터 분석이 가능해진다는 장점이 있습니다.   좀 더 자세한 내용은 텍스트북 (R 비모수 통계 방법에 대해서는 R과 함께 하는 비모수통계학을 비롯한 몇 권의 책이 있는데 사실 이해가 쉽진 않습니다)을 참조해 주시고 여기서는 실제적인 분석 예제를 중심으로 설명해 보겠습니다.   앞서 비모수 통계 이야기를 꺼내게 만든 논문의 경우 26명의 실험군과 26명의 대조군을 설정했습니다. 26명은 화이자 백신 2회 접종 후 돌파 감염이 생겼고 나이와 성별로 매칭된 26명의 대조군은 돌파 감염을 겪지 않았습니다. 논문의 내용은 돌파 감염 후 항체의 역가가 크게 증가해 최대 1000%까지 늘어났다는 이야기입니다.   Bates TA, McBride SK, Winders B, et al. Antibody Response and Variant Cross-Neutralization After SARS-CoV-2 Breakthrough Infection. JAMA. Published online December 16, 2021. doi:10.1001/jama.2021.22898  이렇게 샘플을 구성한 이유는 백신 접종자 가운데 돌파 감염이 생긴 사람이 상대적으로 적기 때문입니다. 그리고 최근에는 3차 접종까지 시작했기 때문에 2회 접종 후 돌파 감염이 생긴 경우를 조사하기 위해선...

비모수 통계 서론 - 자료의 숫자가 적거나 정규성 가정을 만족하지 못하는 경우의 통계 처리

   한동안 쉬고 있었던 R 통계 분석 포스트를 우연한 기회에 다시 시작하게 됐습니다. 굳이 사연을 소개하자면 제 블로그에 댓글을 달아주신 분 덕분입니다.  아래 같은 댓글은 사실 흔한 편이라 읽었어도 넘어갈 수 있지만  굳이 소개를 한 이유는 우연히 제게 새로운 동기 부여를 했기 때문입니다.    https://blog.naver.com/jjy0501/222597883089    사실 연구 영역에 따라 샘플 수는 엄청난 차이가 있을 수 있습니다. 저 같이 역학 연구를 하는 사람은 자료의 크기가 큰 편입니다. 수천 명에서 수십 만명의 데이터를 모아 데이터 분석을 하기 때문에 앞서 소개한 중심극한 정리 (Central limit theorem)에 따라 정규 분포에 근사한다고 가정하고 연구를 진행하게 됩니다.   이전 포스트:  https://blog.naver.com/jjy0501/221016092102  하지만 연구 영역에 따라서는 어쩔 수 없이 샘플 수가 작아지는 경우들이 있습니다. 예를 들어 내가 연구하고자 하는 질병이 인구 10만 명당 1-2명 발생하는 희귀 질환이거나 질병은 흔한데, 드물게 발생하는 합병증이라 30명이 안되는 환자의 데이터 밖에 구할 수 없다면 수십명 가지고도 통계 분석을 하고 과학적 결론을 도출해야 합니다. 그것이 드문 질환이기 때문에 연구를 포기하는 것보다 합리적인 결론입니다.   만약 실험동물이 매우 비싸거나 구하기 힘들다면 역시 샘플 수는 작아질 수밖에 없습니다. 예를 들어 한 마리에 수천만원을 호가하는 특수한 실험 동물이나 영장류처럼 사람과 비슷하지만, 개체 수가 매우 적은 실험 동물의 경우 한 번 실험을 위해 수백 마리의 실험 동물을 사용하기는 어렵습니다.  허블 우주 망원경 같은 최신 관측 망원경을 이용해도 수십 개 이상 관측이 어려운 드문 천체나 현상에 대한 분석도 마찬가지일 것입니다...