在進行 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的因子,則必須要把每個名義類別的定義另存一個新檔並用此巨集變數來呼叫。
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/
沒有留言:
張貼留言
要問問題的人請在文章下方的intensedebate欄位留言,請勿使用blogger預設的意見表單。今後用blogger意見表單留言的人我就不回應了。