公告

[公告]
2014/01/17
由於已經是faculty的關係,不太有足夠時間寫部落格。因此更新的速度會相當緩慢。再加上近幾年來SAS GLOBAL FORUM沒有出現讓我覺得驚艷的技術文件,所以能分享的文章相對也減少許多。若有人推薦值得分享的SAS技術文件,請利用『問題討論區』告知。

2013/07/19
臉書留言板的功能因為有不明原因故障,因此特此移除。而intensedebate的留言板因管理不易,也一併移除。目前已經開啟內建的 G+ 留言系統,所以請有需要留言的朋友,可直接至『問題討論區』裡面留言。


2011年7月9日 星期六

MCPOWER: a Flexible Macro Suite for Generating Monte Carlo Power Estimates for Linear, Logistic, and Poisson Regression Models

原文載點:http://support.sas.com/resources/papers/proceedings11/430-2011.pdf

哈佛的一位統計分析師分享了一個名為 %mcpower 的巨集程式,能夠輕鬆的完成在線性迴歸、羅吉斯迴歸以及卜瓦松迴歸的蒙地卡羅檢定力模擬與估計。

%mcpower 主要包含 %glmpower 和 %manypower 兩個巨集程式。程式可從此處下載:


其中,%glmpower 是無法直接被執行的,所有的參數都是定義在 %manypower 裡面,格式如下:
%macro manypower(alt1=., alt2=., alt3=.,
                 n1=.,n2=.,n3=.,n4=.,n5=.,n6=.,n7=.,n8=.,n9=.,n10=.,
                 outcomedist = "NORMAL", null=0, scaley=1,
                 xdist="NORMAL", xloc=., xscale =.,
                 nreps=,plotrows=2, descending = desc, intercept = 0,
                 plotstyle=graphic, outputpower=YES, outputnsubs=YES, test=FALSE);

不意外地,巨集變數很多,但因為模擬本來就是一件即為複雜的工作,所以參數多也是很正常的。這些參數主要可以分類為三大群:

假設巨集變數
  • null:所要檢定之虛無假設的值。預設值為 0。
  • alt1, alt2, alt3:所要檢定之對立假設(Ha)的數值。若是線性迴歸,則檢定的項目是斜率,若是羅吉斯迴歸,則檢定的項目是odds ratio。若是卜瓦松迴歸,則檢定的項目是risk ratio。無預設值。
  • n1, n2, ..., n10:每個模擬資料集裡面的樣本個數。最多可設定十個。無預設值。
分配巨集變數
  • outcomedist:依變數的分配。可填入 "NORMAL"、"BERNOULLI" 和 "POISSON"。預設值為 "NORMAL"。(注意,雙引號要寫上)
  • scaley:殘差變異數。若使用線性迴歸(即outcomedist = "NORMAL"),則可以省略這個參數的設定。預設值為 1。
  • intercept:模擬的模型裡面的截距項。預設值為 0。
  • xdist:應變數的分配。預設值是 "NORMAL"。
  • xloc:應變數分配的第一個參數值。若 xdist = "NORMAL" 時,此值表示平均數。若 xdist = "POISSON" 時,則此值表示 lambda。若 xdist = "BERNOULLI" 時,則此值表示 p。
  • xscale:應變數分配的第二個參數值。若 xdist 為 "POISSON" 或 "BERNOULLI" 時,則此值要省略,因為這兩個分配只有一個參數值。若 xdist = "NORMAL" 時,則可設定變異數。
輸出巨集變數:
  • outputpower:輸出檢定力表格。預設值為 YES。
  • outputnsubs:輸出樣本數表格。預設值為 YES。
  • plotstyle:輸出表格的格式。如果設定為 sg,則圖形會用 PROC SGPLOT 程序來畫。如果設定為 graphic,則圖形會用 PROC GPLOT  來畫。如果沒有設定,則圖形就不會輸出。預設值為 graphic。
  • plotrows:若 plotstyle = sg 時,則可設定圖形要有幾行。預設值為 2。
範例:
%manypower(null = 0, scaley=1,xdist = "bernoulli", xloc=.5, xscale=.,
           nreps = 100, n1=1000,n2=1100,n3=1200,n4=1400,n5=1700,n6=2000,
           alt1 = 1.15, alt2 = 1.20, alt3 = 1.25,
           plotrows=2,plotstyle=graphic, outcomedist="poisson", intercept = 1);

結果:



CONTACT INFORMATION
Your comments and questions would be welcome and valued.  Contact the author at:
Ken Kleinman
Harvard Medical School and Harvard Pilgrim Health Care
133 Brookline Ave.
Boston, MA 02215
ken.kleinman@gmail.com

沒有留言:

張貼留言

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

CODE { display: block; /* fixes a strange ie margin bug */ font-family: Courier New; font-size: 8pt; overflow:auto; background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y; border: 1px solid #ccc; padding: 10px 10px 10px 21px; max-height:200px; height:200px; // for IE6 line-height: 1.2em; }