2014年12月18日 星期四

Generalized McNemar’s Test for Homogeneity of the Marginal Distributions

原文載點:http://www2.sas.com/proceedings/forum2008/382-2008.pdf

在配對分析裡面,McNemar's test一直是主要被拿來使用的統計分析,但這個方法有個先天上的限制是只支援二項資料。一旦資料成為多項資料時,就必須使用Generalized McNemar's test (或稱Stuart-Maxwell test)或者是Bhapkar's test。其中,Bhapkar's test是有被SAS/STAT內的程序所支援,但Generalized McNemar's test則無。Xuezheng Sun和Zhao Yang在2008年發表了一篇技術文件裡面,敘述了如何使用既有的SAS程序來執行Bhapkar's test,並且公佈了一個自製的巨集程式來執行Generalized McNemar's test。

McNemar's test主要分析2X2的列連表,不過一旦列連表擴展為rXr (r>2)的格式,則McNemar's test就不能使用:

以下使用這個列連表當作範例:

資料輸入如下:

執行巨集方法如下:
(a) Generalized McNemar's test

語法如下:
%gMcNemart(dsin = , rowv =, colv = , count = );
。dsin = SAS資料名稱
。rowv = 行變數名
。colv = 列變數名
。count = 個數變數名稱
使用方法如下:
%gMcNemar(dsin = Vision, rowv = r, colv = c, count = count);

輸出報表如下:

其中PROBCHI下面那個數字就是p-value,因此這個例子顯示出p-value =0.0007 < 0.05,可以結論出左眼跟右眼的測量結果並沒有一致性。

這個巨集的原始碼可至原文載點內取得。

(b) Bhapkar's test

這個方法可以在PROC CATMOD程序能完成:

執行後會得到一個很短的輸出報表:

在vis後面那個p-value就是答案。跟用%gMcNemar巨集的結果其實是差不多的。

根據本人使用心得,基本上兩個方法都不錯用,但如果因為樣本稀少導致某些行或列裡面的個數全部都是0的話,則運行結果會有點問題。由於PROC CATMOD已經是編譯後的程式,所以不能去改內部的原始碼,所以必須從%gMcNemar這個巨集程式來著手。我打算有空改寫%gMcNemar來解決這個問題,若投稿到SAS Global Forum有獲得刊登的話再來分享給大家。

CONTACT INFORMATION
Your comments and questions are valued and encouraged. Contact the authors at:
Xuezheng Sun
Department of Epidemiology & Biostatistics,
University of South Carolina
Columbia, SC 29208
803-777-8907
E-mail: sun4@mailbox.sc.edu
Zhao Yang
Premier Research Group plc.
1800 Parkway Place, Suite 820
Marietta, GA 30067, USA
678-279-4848
E-mail: tonyyangsxz@gmail.edu



沒有留言:

張貼留言

要問問題的人請在文章下方的intensedebate欄位留言,請勿使用blogger預設的意見表單。今後用blogger意見表單留言的人我就不回應了。