레이블이 McNemar test인 게시물을 표시합니다. 모든 게시물 표시
레이블이 McNemar test인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 3일 목요일

아빠가 들려 주는 [통계] McNemar-Bowker's Test (McNemar Test의 확장)

dlrjtdms

McNemar-Bowker's Test는
McNemar Test의 확장이라고 할 수 있습니다.
2가지 방향의 확장이 있을 수 있는데,

평면적인 확장
McNemar Tes에서 answer의종류가 2분변수가 아니라
3이상의 명목변수일 때,

예를 들면
혈액형처럼 A,B,O,AB 같은 경우의 명목형변수인 셈이지요.

집단이 3 이상이 된 경우,
저는 입체적인 확장이라고 표현하고 싶은데,
이 경우는 Cochran Q test가 있죠.

아래는 최대 8X8 table까지 계산이 가능합니다.
가운데 cell인 초록 cell의 값은 계산에 반영되지 않습니다.
노란색에 숫자를 넣으면 값이 계산됩니다.

2x2 table의 경우에는 연속성 수정된 값도 보여 집니다.


http://me2.do/GE2fq9ob


2016년 2월 23일 화요일

아빠가 들려 주는 [통계] 짝지은 자료의 분석(2) McNemar test 논문에서 어떻게 표현할까?


 
McNemar test에 대해서 알아 보았습니다.
실제 실행하는 것은 모든 통계 프로그램에서 가능하기 때문에
따로 강조할 필요는 없을 것같군요.
그런데, McNemar test의 결과를
단순히 p값만으로 보여 주는 것보다는
오즈비와 95%신뢰구간 등으로 보여 주는 것이 바람직합니다.

 
그래서, McNemar test의 오즈비와 위험차의
구해 보았습니다.
보통 통계 프로그램들이 잘 보여 주지 않기에
한번 만들어 보았습니다.
(1)노란 곳에 먼저 자료를 입력합니다.
(2) 넣어도 됩니다. 사실 저는 개인적으로 (1)에 넣는 것을 더 권장합니다
(3)p값이 보여지는데 3가지나 됩니다.
(4)에 조건이 3가지 있기 때문입니다.
그 중에 연속성을 수정하지 않은 것이나, 1.0으로 수정한 두 가지가 많이 사용됩니다.
그냥 아무런 언급없이 모두 그냥 McNemar test라고 부르기도 합니다.
(5)오즈비 즉 OR과 그것의 95%신뢰구간도 논문에 같이 써 줄 수 있습니다.
그런데 이 신뢰구간이 공식에 따라서 좀 다양합니다. 그것은 다음그림에서 보여 드리겠습니다.
(6)위험차(risk difference) 이것의 95%신뢰구간도 보여주는 논문이 있습니다.
압도적으로 오즈비가 많이 쓰이지만, 무작위대조연구(RCT)인 경우는 RD 저는 더 좋다는 생각도 합니다.
그 아래에는
위험차와 그 신뢰구간을 보여 줍니다.
논문에서는 연속성이 수정되거나 혹은 수정되지 않았거나
둘중에 하나를 택해서,
P값을 보여줍니다.
그리고, 오즈비와 그것으니 95%신뢰구간을 표시할 수 있습니다.
오즈비 대신에, 위험차(risk difference)를 사용해도 되겠습니다.

 
http://graphpad.com/quickcalcs/mcNemar2/ 의 결과로,
2X2 table, 보여 주면서, p (1)을 보여 주는데, 연속성 수정한 값이라고 말해 줍니다.(2)
아울러 odds ratio를 보여 줍니다(3)
그런데, odds ratio95% 신뢰구간이 앞의 것과 조금 다르죠.


 
http://www.vassarstats.net/
의 결과입니다.
(1) p값은 연속성 수정한 p값과 아주 가깝습니다.
이값은 사실 exact McNemar test의 값입니다. (b+c의 값이 1000이하이면)
(2)에서 설명해 주고 있죠.
(2)에서 오즈비의 값은 같으나,
95%신뢰구간은 역시 다릅니다.


 
사실 McNemar testodds ratio95% 신뢰구간을 구하는 방법은 다양합니다.
이 논문에서 24가지를 비교하였습니다.
그 중에서 2가지가 좋다고 하였네요.
관심있는 분은 이 논문을 무료로 볼 수 있습니다.


 
많이 알려져 있지 않지만, NCSS 라는 통계 프로그램의 매뉴얼을
인터넷에서 검색할 수 있습니다.
여기에는 Risk Difference에 대해 4가지 방법
Risk Ratio에 대해서 2가지 방법
Odds Ratio에 대해서 2가지 방법으로
Confidence interval을 구하고 있습니다.
사실 이것만 하더라도,
상당히 우수하고 적절한 프로그램이라 할 수 있을 것같습니다.


 
이 프로그램은 이 그림을 그려 주는데, 이것만해도 그나마 적절합니다.
그림에 대해서는 다시 이야기 하겠습니다.
 
의학용인 MedCalc의 경우에는 Risk Difference와 신뢰구간을 제시합니다.
엑셀에서와 비슷한 값입니다.
 
STATA의 경우에는 OR, RR, RD95% 신뢰구간을 모두 구해 줍니다.
P값은 연속성을 수정하지 않는 McNemar testexact test의 결과를 보여 주고 있습니다.
SPSS는 연속성 수정한 McNemar testexact test의 결과를 보여 주고 있습니다.
OR 등에 대해서는 관심이 없군요. (물론 최신 버전은 다를 수도 있습니다)
어쨌든 다양한 공식이 있긴 하지만, 
OR, RR, RD중의 하나와 그95% 신뢰구간를
본문에 표시해 주는 것을 저는 권합니다.


 
이제 어떤 그래프가 좋을지 생각해 봅시다.
통계프로그램이 그려 주는 그래프는 이것이 다고,
논문에서도 이런 식의 그래프를 본 적있습니다.
사실 McNemar test를 주되게 검정하는 논문이 많지 않아서
그래프로 보기는 쉽지 않을 것입니다.
잘보면 이것은 risk를 보여주는 것으로
2X2 table에서의 A,B,C,D가 무엇을 말하는지
표를 생각해 보세요.
그런데 이렇게 표를 그리면 두 RISK를 비교해 볼 수 있습니다

 
이것은 제가 만든 그래프로, Odds RatioRisk Ratio
Risk difference 를 동시에 표현할 수 있습니다.
그래프라는 것은 가급적 원래의 자료를 그대로 가지고 있으면서
요약된 정보를 잘 간직해야 하는데,
이렇게 한 그림으로 여러 정보를 잘 나타낼 수 있기 때문에
꽤 좋은 그래프라고 할 수 있습니다.


 
원래의 자료를 보다 잘 나타내기 위해서 이런 변형도 가능합니다.
이렇게 만들면, 전체의 키가, total 표를 반영해 주게 됩니다.


 
너무 복잡해서, D 값을 이렇게 아래에 표시하는 것도 생각할 수 있습니다.
원래의 자료를 모두 표시해 준다는 장점은 있습니다만,
Total값을 모두 알수는 없습니다

 
결론적으로 이 두 차트가 가장 적당한 듯합니다.
이것 역시 위의 엑셀 표의 노란칸에 숫자를 넣으면
자동으로 표가 그려지도록 만들었으므로
복사해서 사용하시면 됩니다.



한편 앞서 보았듯이 McNemar test의 경우도
연속성 수정을 한것과 하지 않은 것
그리고, exact McNemar test라고도 불리는 것이 있습니다.
3가지가 있고 모두 그냥 McNemar test라고 부릅니다.
exact McNemar test
dBSTATbinorminal test라고 구분하여 표시합니다.



R에서는 적절한 패키지와 라이브러리를 사용하면
연속성 수정된 McNemar testexact McNemar test를 구할 수 있고,
이렇게 오즈비와 신뢰구간을 구할 수 있습니다.




아래는 위에서 설명한 엑셀 쉬트입니다. 입력하면 결과값을 얻을 수 있습니다.






아래는 McNemar test에 어울리는 차트를 만들어 보았습니다. 
해석의 위의 설명에 나와 있습니다.



2016년 2월 19일 금요일

아빠가 들려 주는 [통계] 짝지은 자료의 분석(1) McNemar test

 
짝지은 자료의 분석은 기본적으로 3가지 통계법을 사용합니다.
Paired t-test 삼총사, McNemar test, Wilcoxon t-test
(알고보면 더 많지만 일단은….)
이른바 “Paired t-test 삼총사입니다. 누가 이렇게 말했느냐?
제가 말했기 때문에 딴데가서 이런 식으로 말하면 안되고,
그냥 느낌으로만 알고 있어야 할 단어입니다.
당연히 Paired t-test 가 포함되고, 더불어 McNemar test Wilcoxon t-test가 있습니다.


 
예를 들어 보죠.
홍길동이 나이가 들어서 관절염이 생겼고, 각각 오른쪽 다리 왼쪽 다리에 다른 치료법을 사용하였습니다.
그래서 그 결과를 이런 식으로 표현하였습니다.
한편 성공하기도 하고, 실패하기도 했는데,
여러 사람에게서 이런 결과를 얻었습니다.
이 둘 중에서 어떤 치료법이 좋은지 알아 보려고 합니다.


 
동일한 결과를 이렇게 길게 세로로 길게 표현할 수도 있습니다.
사람이 아주 많다면, treat_A를 하고 나서 1년쯤 지나서 treat_B를 한다면,
위의 폼처럼 만들려면
다시 홍길동을 찾아야 하지만,
아래 표처럼 그냥 한줄로 기록한 다음 나중에
바꾸는 것이 더 편할 수도 있을 것입니다.
위의 양식을 wide form이라고 하고,
아래 양식을 long form이라고 합니다.
아니, 위의 것이 더 wide 하지 않습니다.
라고 말씀하시는 분도 있겠죠.


 
그런데, 조금 더 확장해서, 치료 방법이 더 누적되어 3, 4..
이런 식으로 결과가 있다면,
그 이름의 의미가 더욱 명확해 집니다.
, wide form은 더 wider 해 지고,
Long form은 더 longer 해 집니다.
일단은 우리는 다시 가장 단순한 구조로 살펴 보겠습니다.


 
그런데 간혹 이런 경우가 있는데,
홍길동의 쌍둥이(형제)가 있어서, 쌍둥이(형제)간에
treat_A 혹은 treat_B 이런 식으로
다른 치료를 하는 연구를 할 수도 있겠지요.
이런 식의 연구는 홍길동의 쌍둥이이기 때문에
많은 조건들이 일치하므로, 짝지어진 자료라고
부릅니다.
많은 조건들이 일치하지만, 똑같지는 않죠.
이런 경우에는 wide form은 좀 표현하기 어렵습니다.
홍길동에게도 나이, 체중, 등등 기록할 것들이 많이 있고,
홍길동2에게도 역시 기록할 것이 많아서,
Long form이 더 적격합니다.
만일 홍길동 쌍둥이가 아니라,
홍길동 형제라면 어떨까요?
형제간 연구도 마찬가지로 long form이 더 입력하기가 편리하고
부부간 연구도 그렇습니다.
그런데 (간단한) 통계를 돌리기에는 wide form이 더 편하고
이해하기도 편합니다.
어쨌든 두 가지 모두 익숙해지면 좋고,
나중에는 상화 변형을 쉽게 할 수 있도록
하는 것이 좋습니다.
 
이제 가장 간단한 형태로 이렇게 자료가 모아 졌다고 합시다.
양 다리의 수술 결과라고 할 수도 있고,
쌍둥이 또는 형제의 결과라고 할 수도 있습니다.
아 그리고, treat 대신에 condition이라고 넣어도 됩니다.


 
제가 만들어 둔 엑셀 파일에 이렇게 넣어 보겠습니다.
(1)의 노란색 칸에 결과를 넣으면, (2)표에 연두색 칸에 그대로 옮겨지고, 그 아래에
오즈비(OR), 위험차(RD) p값이 구해지게 됩니다.
결과적으로 p>0.05이며 유의하지 않은 결과이군요.
보통, (2)와 같은 2x2 table로 표현하는 경우가 많은데,
저는 그것보다는 세로로 된 (1)의 표로 표현하는 것을 권장합니다.
왜냐하면 카이제곱 검정에서 쓰인 2x2와 혼동될 수 있어서 입니다.


참고로 이건 위키피디아에서 나온 McNemar test의 예입니다.
NEJM의 예에서 잘못된 예를 보여줍니다.
, Hodgkin 병과 tonsillectomy의 연관성을 보여주는데,
형제에 대해서 검정한 것입니다.
무엇이 잘못되었냐 하면,
병에 걸린 사람과 걸리지 않은 사람이 독립된 것이 아니라,
형제 간에 연구한 것이기 때문에, 카이제곱 검정을 하면 안되고,
McNemar test해야한다는 것이 주장입니다.
이것은 John Rice라는 분이 쓴 책에 나온 것을
위키피디아에서 인용한 것이고요,
이 예는 McNemar test 강의 때에 다른 사람들도
자주 인용하는 것같습니다.