SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 948|回复: 1
打印 上一主题 下一主题

Mixed Model Influence Diagnostics

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-3-25 02:20:46 | 只看该作者

Mixed Model Influence Diagnostics

From LCChien's blog on blogspot

原文載點:<span style="text-decoration: underline;"><a href="http://www2.sas.com/proceedings/sugi29/189-29.pdf"><!-- m --><a class="postlink" href="http://www2.sas.com/proceedings/sugi29/189-29.pdf">http://www2.sas.com/proceedings/sugi29/189-29.pdf</a><!-- m --></a></span><br /><br />在進行混合模型的估計中,模型檢定也是不可忽略的一個重要步驟,雖然 SAS 有現成的語法可以執行,但因為所產生的報表和圖型落落長,不熟悉的人根本不會知道哪些圖或報表是代表什麼意義。SAS 內部工作人員利用官方的資料和程式發表了一篇技術文件,詳盡地解說每一張圖表在混合模型檢定中的意義。<br /><br /><a name='more'></a><br />混合模型的檢定主要的精神是,將每一個觀測值分別刪除後重新配飾模型,然後再計算一些統計量來看刪除這筆資料對於模型的影響大不大,最後並將這些統計量作圖。一般來講,無論是哪種統計量,只要算出來的值越大,就越表示該筆資料對整個模型的估計有影響。<br /><b><span style="font-size: large;"><br /></span></b><br /><b><span style="font-size: large;">。語法</span></b><br />此模型的檢定語法,主要是在 PROC MIXED 程序的 MODEL 語法後面加上一個 INFLUENCE 選項。該選項後面接一個括弧,而括弧裡面有六個主要的子選項需要填寫:<br />1. EFFECTS = 指定要檢定會影響模型的因素。此處只能放類別資料。而通常我們有興趣的影響因素都是觀測值本身,因為 SAS 會依序刪除每一個觀測值,然後用剩下的觀測值去估計模型,最後再算出一些檢定量。所以這個子選項通常都是填觀測值的 ID 變數,如 OBS, SUBJ, PERSON 之類的。<br />2. EST = 每一次程式用部分資料估計參數時,我們可以命令 SAS 儲存某些變數的估計值。這個動作就比需要呼叫 EST 來處理。如果沒有這個子選項的話,SAS 將不會儲存任何更新後的估計量。附帶一提的是,加上這個指令,並不會有任何結果印在報表上,而是需要另外用 ODS OUTPUT 才能把估計量真正的輸出來。<br />3. ITER = 預設值是 0。這是在定義在刪除一筆資料並重新估計模型時,利用牛頓法估計參數所需要使用的額外迴圈數量。這個道理是,有時候在山除了某筆資料時,可能會影響到牛頓法的收斂,因為額外增加迴圈數可以避免可能估計發散的情況。通常這個數值設定在 5~10 之間即可。<br />4. KEEP = 用來指定要保存多少資料,不過通常是省略不寫。<br />5. SELECT = 用來指定哪些觀測值或變數要拿來做檢定,不過通常的情況都是全部丟進去做,所以這個子選項可以忽略不寫。<br />6. SIZE = 用來指定一次要刪除幾筆資料來做檢定。通常若不寫的話,SAS會一次刪除一筆資料。<br /><br /><b><span style="font-size: large;">。範例資料</span></b><br /><br />本篇使用範例是在 SAS 官網上有的,但官網上有說這是 Pothoff and Roy (1964)論文裡面所用的數據。裡面共包含六個變數,計有觀測值 ID(Person),性別(Gender)以及四個時間的測量值(y1, y2, y3, y4):<br /><code>data pr;<br />input Person Gender $ y1 y2 y3 y4;<br />y=y1; Age=8; output;<br />y=y2; Age=10; output;<br />y=y3; Age=12; output;<br />y=y4; Age=14; output;<br />drop y1-y4;<br />datalines;<br />1 F 21.0 20.0 21.5 23.0<br />2 F 21.0 21.5 24.0 25.5<br />3 F 20.5 24.0 24.5 26.0<br />4 F 23.5 24.5 25.0 26.5<br />5 F 21.5 23.0 22.5 23.5<br />6 F 20.0 21.0 21.0 22.5<br />7 F 21.5 22.5 23.0 25.0<br />8 F 23.0 23.0 23.5 24.0<br />9 F 20.0 21.0 22.0 21.5<br />10 F 16.5 19.0 19.0 19.5<br />11 F 24.5 25.0 28.0 28.0<br />12 M 26.0 25.0 29.0 31.0<br />13 M 21.5 22.5 23.0 26.5<br />14 M 23.0 22.5 24.0 27.5<br />15 M 25.5 27.5 26.5 27.0<br />16 M 20.0 23.5 22.5 26.0<br />17 M 24.5 25.5 27.0 28.5<br />18 M 22.0 22.0 24.5 26.5<br />19 M 24.0 21.5 24.5 25.5<br />20 M 23.0 20.5 31.0 26.0<br />21 M 27.5 28.0 31.0 31.5<br />22 M 23.0 23.0 23.5 25.0<br />23 M 21.5 23.5 24.0 28.0<br />24 M 17.0 24.5 26.0 29.5<br />25 M 22.5 25.5 25.5 26.0<br />26 M 23.0 24.5 26.0 30.0<br />27 M 22.0 21.5 23.5 25.0<br />;</code><br /><br />在讀入資料後,還有經過一小段資料整理,把橫向排列的 y1~y4 轉置成值的,並給了一個年齡變數 Age (=8, 10, 12, 14)。<br /><br /><b><span style="font-size: large;">。程式碼</span></b><br /><code>ods html;<br /><span style="color: red;"><b>ods graphics off;</b></span><br />proc mixed data=pr;<br />class Person Gender;<br />model y = Gender Age Gender*Age /&nbsp;<b><span style="color: red;">influence(iter=5 effect=Person est)</span></b>;<br />repeated / type=ar(1) subject=Person;<br />run;<br /><span style="color: red;"><b>ods graphics off;</b></span><br />ods html close;</code><br /><br />模型檢定的語法就出現在上面程式碼的紅色部分。INFLUENCE的括弧裡面只呼叫了三個子選項。作者設定用牛頓法估計參數的迴圈數增加五次,而要刪除的變因是觀測值本身(Person),最後的 est 就是要保存每一次更新的參數估計值。另外,一定要呼叫 ODS GRAPHICS,這樣 SAS 才會去畫圖。至於輸出的格式,不一定要用 HTML,用 RTF 輸出亦可。<br /><br />將程式碼送出後,除了原先 PROC MIXED 程序會出現的報表外,最後面會出現一長串的影響檢定表。裡面包含了每個觀測值相關的檢定統計量。如下圖所示:<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/LGEt9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="542" src="http://i.imgur.com/LGEt9.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/DiWcC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="572" src="http://i.imgur.com/DiWcC.png" width="640" /></a></div><br />這些統計量,在樣本少的時候還可以用眼睛稍微去判斷一下,但若資料筆數太多,就必須依靠之後 SAS 所畫的圖來解讀。這些圖可分成四大類:<br /><br />1. 對全體固定效應的影響:<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/CvOA2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="486" src="http://i.imgur.com/CvOA2.png" width="640" /></a></div>此處一共有四張圖,分別是 Restricted likelihood distance (RLD), PRESS, Cook's D 以及 Covariance ratio (COVARTIO)。RLD 是看每一筆觀測值的刪除對整個模型的影響,Cook's D 是看每一筆觀測值的刪除對固定效應估計量的影響,PRESS 是看每一筆資料刪除對預測值的影響,而 COVARATIO 則是看每一筆資料刪除對估計值準度的影響(亦即信賴區間)。以 RLD 和 Cook's D 圖來看,通常只要有任何比較突出的線就表示那一筆資料對模型有影響。而 PRESS 和 COVARTIO 圖的判斷法是看哪些點比較偏離其他的點。<br /><br />2. 對共變異矩陣的影響:<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/IKrXp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="482" src="http://i.imgur.com/IKrXp.png" width="640" /></a></div>同樣有四張圖,分別是 Cook's D, MDFFITS, COVRATIO 和 COVTRACE。同樣地,Cook's D 和 MDFFITS 是用來診斷每刪除一筆資料對共變異矩陣估計值的偏誤影響,而 COVRATIO 和 COVTRACE 則是枕對每刪除一筆資料對供變異矩陣估計值的準度影響。理論上,Cook's D 和 MDFFITS 會有比較類似的結果。<br /><br />3. 對個別固定效應的影響:<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/HVef5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="486" src="http://i.imgur.com/HVef5.png" width="640" /></a></div>這部份會出現的圖形數量端看有多少固定效應變數在裡面。SAS 會把每刪除一筆觀測值後估計出來的固定效應估計值依序畫在塗上,這樣就可以很清楚的判讀哪些資料被刪除後會對固定效應的參數估計值有影響。每張途中間出現的那條線是當所有觀測值都拿進去估計模型時的參數估計值。因此,越偏離那條線就表示影響越大。<br /><br />4. 對個別共變異矩陣參數及殘差的影響:<br /><div class="separator" style="clear: both; text-align: center;"><a href="http://i.imgur.com/AT4uU.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="482" src="http://i.imgur.com/AT4uU.png" width="640" /></a></div><br />既然有對個別固定效應的檢定,那就一定有對個別共變異矩陣參數的檢定。判讀方法也是越偏離圖內那條水平線就表示越有影響。<br /><br /><b><span style="font-size: large;">。結論</span></b><br />根據個人觀察,許多研究並沒有很仔細地做過模型診斷就把結果拿去發表。雖然這個步驟沒有強制性,但端看研究者的良心。至少,有時候若發現估計的結果很詭異無法解釋,藉由這篇文章便可以很輕鬆的完成模型診斷,說不定有機會可以抓出有問題的觀測值以改進模型估計的結果。但是,也要額外強調一點,不是說有影響力的觀測值被測出來就一定要移除,因為這很有可能是因為樣本太小所導致。因此,要不要刪除對模型有影響的觀測值,除了要參考模型診斷的結果,更需要研究者專業的判斷來看該筆資料是不是所謂真正的離群值。<br /><br /><b><span style="font-size: large;">CONTACT INFORMATION</span></b><br />Oliver Schabenberger<br />SAS Institute Inc.<br />SAS Campus Drive<br />Cary, NC 27513<br />Email: <!-- e --><a href="mailto:oliver.schabenberger@sas.com">oliver.schabenberger@sas.com</a><!-- e --><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6268919072942670865-1664780346726848450?l=sugiclub.blogspot.com' alt='' /></div>
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-4-12 03:30:38 | 只看该作者

Re: Mixed Model Influence Diagnostics

好贴,学习了,谢谢! 只是为啥两个‘ods graphfic off’(红色字), 1st 是‘on’吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 20:58 , Processed in 0.132261 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表