私がSASで混合モデルソフトウェアの主導的な開発者であることを逃すかどうかを尋ねられたとき、私は通常「はいといいえ」と答えます。会社の初期の頃にPROC GLMとPROC VARCOMPに関するジムグッドナイトの仕事から始まった強い遺産の一部。最初に私をこの方向に向けてくれたDave Delongと、PROC MIXEDの始まりを形作った重要なコードを提供してくれたJohn SallとRandy Tobias(私たちの最新のASA Fellow!)に多大なる感謝の念があります。興味深いことに、JohnのコードはJennrichとSchluchterの共分散構造モデリング(混合モデルのR側)に関する先駆的な研究に基づいていましたが、Randyのコードは分散成分のREML推定の一般化(混合モデルのG側)に焦点を当てました。両者をまとめることは多少偶然であり、動物の飼育、臨床試験、製造品質管理、教育評価、時空間モデリングおよび統計遺伝学などの多様な用途に素晴らしい技術を提供することがわかった。
「いいえ」は、現在の混合モデルの達人、Oliver Schabenberger(PROC GLIMMIX)、Chris Gotwalt(JMP)、Paul Wright(EVAAS)、およびTianlin Wang(PROC HPMIXED)によって行われた非常に印象的な作業に対する自信に由来します。それは、そして私の10年に及ぶゲノミクスへの情熱と、一流のチームを率いてJMP Genomicsを成功に導いてきたすべての専門家との共同作業からもたらされる本当の喜びです。
経験的ベイズ、リッジ回帰、時系列、クリギング、スムージングスプラインなどの方法を含む、混合モデル理論が統計全体を通して統一されたテーマであることに私は驚いています。PROC GLIMMIXの動径基底関数を使ってサポートベクターマシンに適合できることをご存知ですか?70年代のSASへのちょっとした後退では、マイクロアレイデータの変動の原因を定量的に比較するために、主成分に分散成分を使用しています。ごく最近では、ゲノムワイド関連解析において、混合モデルが集団層別化に対してどのように効果的に調整できるかを調査しています。それで私は混合モデルから逃げるように思えません - 私が本当にしたいというわけではありません!
先週私が見ていた混合モデルの好奇心を閉じてみましょう。次のSASコードを考えてみましょう。これは、単純な線形回帰モデルと変量効果を考慮した同じモデルとの比較です。
/ *単純な線形回帰のデータをシミュレートし、固定モデルとランダムモデルを比較する* /
%let seed = 2817340。
データxy。
slope = 1〜5を実行します。
nx = 1〜10を実行します。
x1 = rannor(&seed);
x 2 = rannor(&seed);
rep = 1から10を実行します。
y = x 1 *勾配+ x 2 *勾配* 2 + rannor(&seed);
出力;
終わり;
終わり;
終わり;
走る。
オッズはすべてを除外します。
noresults;
proc混合データ= xy method = ml;
斜面によって。
モデルy = x 1 x 2 / s。
ods output fitstatistics = fs covparms = cp solutionf = sf;
走る。
オッズは何も除外しません。
オッズ結果。
title "固定モデルからの統計量の近似";
proc sort data = fs;
斜面によって。
走る。
proc印刷データ= fs。
走る。
title "固定モデルからの共分散パラメータ";
proc印刷データ= cp;
走る。
タイトル "Beta Hat from Fixed Model";
proc sort data = sf;
効果勾配によって。
走る。
proc印刷データ= sf;
走る。
オッズはすべてを除外します。
noresults;
proc混合データ= xy method = ml;
斜面によって。
モデルy = / s。
ランダムx 1 x 2 / s。
ods出力fitstatistics = fsr covparms = cpr solutionf = sfr solutionr = srr;
走る。
オッズは何も除外しません。
オッズ結果。
タイトル "ランダムモデルからの統計量の近似";
proc sort data = fsr;
斜面によって。
走る。
proc印刷データ= fsr;
走る。
タイトル "ランダムモデルからの共分散パラメータ";
proc sort data = cpr;
CovParm Slopeによって。
走る。
proc印刷データ= cpr;
走る。
タイトル "Beta Hat from Random Model";
proc印刷データ= sfr;
走る。
タイトル "ランダムモデルからのガンマハット";
proc sort data = srr;
効果勾配による。
走る。
proc print data = srr;
走る。
2番目のPROC MIXED呼び出しでは、先週まで推奨していたように、SUBJECT =効果を指定せずにRANDOMステートメントで単純な共変量を使用することを推奨します。ガンマハット推定値(経験的BLUP)は、最初の単純回帰モデルのベータハット推定値と実質的に同じであることがわかります。そのため、共分散構造モデリングは平均モデリングと密接に関係しています。
あなたが本当に混合モデルに興味がある(あるいはそうしたい)のであれば、ここにあなたの質問があります:なぜ2番目のモデルからの分散成分推定値は傾斜の二乗にほぼ等しいのですか?ヒント:答えは「はい、いいえ」ではありません。
ウィリアム・イダルディ書きました:
これは非常に興味深い投稿です、そしてそれは私がしばらく疑問に思っていた質問を思い出させます。PROC GLIMMIXの機能をJMPにもたらす計画はありますか?現時点ではJMPは通常の応答変数のみを許可するという点でPROC MIXEDに似ています。
マーティン・ヘルメル書きました:
はい、この機能を持っているとクールになるでしょう。バイナリモデルとランダム変数を含む混合モデルまたはREMLで対数関数を選択することは可能ですが、プロシージャはエラーメッセージを配信します。
マーティン・ヘルメル書きました:
はい、JMP内からGLIMMIXを使用することはできません。