公告

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

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


2011年7月2日 星期六

Fundamental Diagnostics for Two-Level Mixed Models: The SAS ® Macro MIXED_DX

原文載點:http://support.sas.com/resources/papers/proceedings10/201-2010.pdf

在進行 mixed model 分析時,模型的檢定是相當重要但也是相當煩人的一環。幾位南卡大和南佛大的學者寫了一個巨集程式來簡化相關程式的寫作,雖然目前這個程式只能使用在 2-level model,但也是具有相當貢獻。

這個名叫 %mixed_dx 的巨集程式如下所示:
%mixed_dx (ModelI = ,
                    Dims = ,
                    solnF = ,
                    solnR =,
                    Level1 = ,
                    Influence = ,
                    min_nj = ,
                    pr = ,
                    GroupVar = );
每個參數的設定如下:
  • ModelI:讀取由ODS OUTPUT的ModelInfo選項所生成的包含所有模型資訊的資料
  • Dims:讀取由ODS OUTPUT的Dimensions選項所生成的資料維度數據
  • solnF:讀取由ODS OUTPUT的SolutionF選項所生成的固定效應參數估計值
  • solnR:讀取由ODS OUTPUT的SolutionR選項所生成的隨機效應參數估計值
  • Level1:讀取由model statement的outp選項所生成的Level-1殘差值資料
  • Influence:讀取由model statement的influence選項所生成的模型檢定數據
  • min_nj:設定Level-2 unit的最小組內樣本數
  • pr:定義檢定內所需要用到的threshold percentile rank(預設值=90)
  • GroupVar:若有使用名義(nominal)類別的Level-2 unit的因子,則必須要把每個名義類別的定義另存一個新檔並用此巨集變數來呼叫。
首先,利用PROC MIXED程序去估計一個模型,並且利用ODS OUTPUT的功能把%mixed_dx要用到的資料給另存出來:
ods exclude influence SolutionR;
title;
proc mixed data = temp covtest noclprint NAMELEN=32;
      class schoolid;
      model mathach = SIZE FEMALE SES MEANSES SES*MEANSES SES*SIZE FEMALE*SIZE/ solution outp=L1Resid influence(effect=schoolid iter=5);
      random  intercept FEMALE SES / sub=schoolid solution type=un;
      ods output SolutionR=L2Resid SolutionF=Fixed ModelInfo=ModelStuff Dimensions=DatStuff Influence=influence;
run;
其中,outp選項所輸出的資料L1Resid是level 1的殘差值,這是要用在Level1參數裡面的。橘色高亮部分即為原始PROC MIXED內定的模型檢定指令,若配合ODS HTML的話可以輸出高解析度的圖表,但就是因為裡面包含太多圖了,所以才需要使用%mixed_dx來把幾個重要的圖整理出來。而紅色部分即為ODS OUTPUT輸出的指令。此處是缺一不可,即為重要。

接下來就來執行巨集程式:
%mixed_dx (ModelI = modelstuff, Dims = datstuff, solnF = Fixed, solnR = L2Resid, Level1 = L1Resid, Influence = influence, min_nj = 5, pr = 90, GroupVar = None);
在生成的圖形當中,主要以殘差的箱型圖、柱狀分布圖以及散布圖為主。另外也有殘差變異數的散布圖(用來檢定同質性)還有離群值的柱狀分布圖。如下所示:


表格方面,會整理出level-2 unit的常態統計量表、Levene’s同質性檢定表、離群值檢定和各種檢定統計量:


目前這段程式碼可以在他們的校方網站上面下載:http://www.ed.sc.edu/bell/

CONTACT INFORMATION  
Your comments and questions are valued and encouraged.  Contact the author at:
Bethany A. Bell
University of South Carolina
College of Education, Wardlaw 133
Columbia, SC 29208
Work Phone: 803-777-2387
E-mail:babell@sc.edu
Web: http://www.ed.sc.edu/bell/
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; }