當被問及我是否不想成為SAS混合模型軟件的首席開發人員時,我通常會回答“是和否”。“是”來自於感覺非常幸運能夠在我近20年的SAS中參與這種強大的方法。這是Jim Goodnight在公司成立初期就PROC GLM和PROC VARCOMP工作開始的強大遺產的一部分。感謝Dave Delong,他最初向我指出了這個方向,感謝John Sall和Randy Tobias(我們最新的ASA研究員!),他提供了構成PROC MIXED開頭的關鍵代碼。有趣的是,John的代碼基於Jennrich和Schluchter關於協方差結構建模(混合模型的R側)的開創性工作,而Randy的代碼側重於推廣方差分量的REML估計(混合模型的G側)。將兩者放在一起有點偶然,並且為動物育種,臨床試驗,製造質量控制,教育評估,時空建模和統計遺傳等多種應用提供了一種奇妙的技術。
“不”來自於我們目前混合型模特大師Oliver Schabenberger(PROC GLIMMIX),Chris Gotwalt(JMP),Paul Wright(EVAAS)和Tianlin Wang(PROC HPMIXED)所做的令人印象深刻的工作。那,以及我現在十年來對基因組學的熱情以及領導一流企業團隊並與所有幫助JMP Genomics的專業人士合作所帶來的真正快樂。
我一直驚訝於混合模型理論在統計學中是一個統一的主題,包括經驗貝葉斯,嶺回歸,時間序列,克里金法和平滑樣條等方法。您是否知道使用PROC GLIMMIX中的徑向基函數可以使用支持向量機?在70年代對SAS的一點回歸中,我們使用主成分上的方差分量來定量比較微陣列數據中的可變性來源。最近,我們一直在研究混合模型如何有效地調整全基因組關聯研究中的種群分層。所以我似乎無法擺脫混合模型 - 不是我真的想要!
讓我以上周剛看到的混合模型好奇心結束。考慮以下SAS代碼,它將簡單的線性回歸模型與適合隨機效應的模型進行比較:
/ *模擬簡單線性回歸的數據並比較固定和隨機模型* /
%let seed = 2817340;
數據xy;
做斜率= 1到5;
do nx = 1到10;
x1 = rannor(&seed);
x2 = rannor(&seed);
做rep = 1到10;
y = x1 *斜率+ x2 *斜率* 2 + rannor(&seed);
輸出;
結束;
結束;
結束;
跑;
ods排除所有;
ods noresults;
proc mixed data = xy method = ml;
按坡度;
模型y = x1 x2 / s;
ods output fitstatistics = fs covparms = cp solutionf = sf;
跑;
ods排除無;
ods結果;
標題“適合固定模型的統計”;
proc sort data = fs;
通過descr斜坡;
跑;
proc print data = fs;
跑;
標題“固定模型的協方差參數”;
proc print data = cp;
跑;
標題“固定模型的Beta帽子”;
proc sort data = sf;
按效應坡度;
跑;
proc print data = sf;
跑;
ods排除所有;
ods noresults;
proc mixed data = xy method = ml;
按坡度;
模型y = / s;
隨機x1 x2 / s;
ods output fitstatistics = fsr covparms = cpr solutionf = sfr solutionr = srr;
跑;
ods排除無;
ods結果;
標題“隨機模型擬合統計”;
proc sort data = fsr;
通過descr斜坡;
跑;
proc print data = fsr;
跑;
標題“隨機模型的協方差參數”;
proc sort data = cpr;
通過CovParm Slope;
跑;
proc print data = cpr;
跑;
標題“隨機模型的Beta帽子”;
proc print data = sfr;
跑;
標題“隨機模型中的伽瑪帽”;
proc sort data = srr;
效應斜率;
跑;
proc print data = srr;
跑;
第二個PROC MIXED調用會做一些事情(直到上週!)推薦使用 - 在RANDOM語句中使用簡單的協變量而沒有SUBJECT =效果。事實證明,伽馬帽估計(經驗BLUP)與第一個簡單回歸模型的β帽估計幾乎相同。因此協方差結構建模與均值建模密切相關。
如果你真的想進入混合模型(或者想成為混合模型),這裡有一個問題:為什麼第二個模型的方差分量估計值大約等於斜率的平方?提示:答案不是“是和否”。
威廉伊德爾迪中寫道:
這是一篇非常有趣的帖子,它提出了一個我一直想知道的問題。是否有計劃將PROC GLIMMIX功能引入JMP?目前JMP就像PROC MIXED一樣只允許正常的響應變量。
馬丁赫梅爾中寫道:
是的,擁有這種能力會很酷。可以在混合模型或REML中選擇具有二進制結果和隨機變量的日誌函數,但該過程隨後會傳遞錯誤消息。