2016년 6월 28일 화요일

아빠가 들려 주는 [통계] 카이제곱 검정 & Fisher exact test

얼마전에도 같은 글을 올렸네요.. 그러고 보니..
오늘은 동영상으로 글 올립니다. 
오늘 네이버 블로그에 질문 올리신 분이 있어서 답이 되길 바라면서..

2016년 6월 16일 목요일

아빠가 들려 주는 [통계] SPSS에서 카이제곱 검정 , Fisher exact test

 
가장 쉬울 것같은 카이제곱 검정이 SPSS에서는 조금 복잡합니다.
아니, table로 정리되어 있을 때 복잡하다는 거죠.
 
우리가 만들고 싶은 표는 (1)에서 보이는 것과 같은 3X3 table 인데, SPSS에서는 이렇게 표 형식으로 입력이 안되기 때문에 (2)의 형태로 입력해야 합니다.
언젠가는 (1) 형태에서 바로 작업이 가능하길 희망해 봅니다.
변수1,변수2열에 0,1,2를 그림과 같은 규칙으로 먼저 넣고,
3열에는 순자를 넣는데, (1)에서의 숫자를 차례로 넣습니다.
그림 (1)(2)의 숫자 배열이 화살표 방향이라는 것을 주목합니다.
익숙해 지면 (1)은 그릴 필요가 없습니다.
 
‘data’에서 ‘weight cases’를 클릭합니다.
3열을 이용해서 가중치를 줍니다.
 
Analysiscrosstabs 클릭합니다.
1열과 2열을 차례로 rowcolumn에 넣습니다.
이제 exactstatistics 를 클릭합니다.


 
Exact 에서는 Exact를 선택합니다. 시간은 적당히 넣습니다.
2X2 table에서는 Exact를 선택하지 않아도 Exact를 계산해 주지만,
2X3 이상에서는 이렇게 선택해 주어야 계산해 줍니다.
statistics 창에서는 Chi-square를 선택합니다.
이정도 옵션이 최소의 옵션입니다.
그다음 진행하면 답이 나옵니다.


 
요렇게 결과가 나왔습니다. 논문에서는 0.47이라고 했으므로,
Fisher exact test를 사용한 것임을 알 수 있습니다.
굳이 이렇게 자세히 쓴 것은
보통 SPSS 설명한 통계책에서 2X3 이상의 Fisher exact test이 불가능하다고 쓴 책도 보았고,
사용법을 설명하지 않은 책도 보았기 때문입니다.


 
또는(1)처럼 글자를 넣는 방법도 있습니다.
나머지는 동일합니다.
별로 권하지는 않습니다.


 
글자를 넣기 위해서는 변수탭(2)에서 1열과 2열을 string(3)으로 바꾸고 길이도 조금 늘여 줍니다.
그러면 입력이 됩니다.
 
이번에는 차트도 한번 만들어 보죠(4)
 
변수의 배치가 알파벳 순서로 바뀌었고(5)
Linear-by-Linear Association  가 없어졌습니다. 카이제곱 trend test라 명목변수에서는 적합하지 않기 때문입니다.

이렇게 차트가 만들어 지고 더블클릭하면 차트 에디터가 나와서 편집이 가능하지만, 이것보다는 엑셀에서
편집하는 것이 쉽고 더 예쁘죠.

아빠가 들려 주는 [통계] 오해를 유발하는 통계 용어 3총사

오늘 아침에 출근하면서 만든 슬라이드입니다. 
뭐 중요한 것은 아니고, 
논문쓸 때 도움되는 것은 아닌데, 
알면 뭐 나쁠 것도 없는 그런 겁니다. 


피타고라스 정리가 피타고라스가 만든 거냐 아니냐 만큼도 의미없는 걸수도 있어요. 


너무 진지하게 생각하지 마세요.

스마트폰이 왜 스마트폰이냐..
스마트한 사람들이 쓰는 거냐,
스마트해 진다는 거냐...
PDA와 다른게 머냐...
따지는 거랑 비슷합니다.

그렇지만, 한번 생각해 볼 필요는 있을 것같습니다.

2016년 6월 6일 월요일

아빠가 들려 주는 [통계 ] NNT(number to treat)란 무엇인가?


 
통계책에 거의 나오지 않는…..NNT?
Number Needed to Treat
아마도 거의 의학 통계에 국한된 내용이 될 것같은데,
의사들이 많이 보는 통계책이 SPSS인데,
SPSS에서 계산되지 않다보니
익숙지 않은 이름이 되었습니다.

http://statistics4everyone.blogspot.kr/2016/02/what-is-chi-squared-test.html 의 오른쪽 아래쪽으로 스크롤 해 보면 RD가 계산되고, 그것의 아래쪽에 NNT가 보입니다.
Yes가 사망이라고 합시다, old treat는 그냥 물만 먹이는 치료인데, 이것만 해도 100명중에 10명이 살게 됩니다. New treat를 하게 되면 100명중에 90명이 살게 된다고 합시다. 그러면 당신에게 100명의 환자가 왔을 때, old treat에 비해서 new treat를 하게 되면 얼마의 장점(이익)이 있나요? , 80명을 더 살릴 수 있습니다. 100명중 80명 즉 0.8RD입니다(위에 계산이 되어 있죠)
100명 중에 80명을 살릴 수 있다면 말은 1명을 더 살리기 위해 몇 명의 환자를 보게 되는 것일까요?
1.25명입니다. 0.8의 역수이죠. , “1명의 이익을 얻기 위해서 몇 명의 환자를 만나야 할까?” , 대조약(placebo 혹은 기존의 약)에 대비한 효과를 표현해 주는 하나의 지표이기도 합니다.  만약 NNT20이라면, 20명 치료할 때마다 1명이 추가적으로 이익을 얻게 되는 셈이고 NNT200이라면 200명에 가서야 비로서 1명의 추가적인 이익을 얻게 된다는 뜻이 되므로, 상당히 임상적인 의미가 강하게 있습니다.
사실 RD의 역수이기 때문에 계산하기는 쉽지만 그래도 인터넷으로 계산할 수 있도록 만들어 두었으니 이용하시에 좋을 것입니다. CONSORT에도 구체적으로 나와 있습니다.
For both binary and survival time data, expressing the results also as the number needed to treat for benefit or harm can be helpful (see item 21). (CONSORT 17a)



Yes가 성공률이라면 경우에 old treatment의 성공율은 76%, new treatment의 성공율은 66%로 오히려 new treatment의 성공율이 낮으므로 NNTNNH(number needed to harm)으로 해석해야 합니다. Yes가 사망이라면 사망률을 낮추었으므로, NNT로 해석하면 됩니다.