我有一個包含n個級別的id和(n + 4)變量的數據集。我希望使用n-1個變量的值作爲解釋變量對分類變量的n個層次中的每一個層次進行迴歸。這是我的數據集:SAS運行多個迴歸並收集結果
data have;
input s id $ x z y00 y01 y02;
cards;
1 00 95 5.00 .02 .43 .33
2 00 100 5.50 .01 .44 .75
3 00 110 5.25 .10 .37 .34
4 00 97 5.00 .02 .43 .33
5 00 100 5.50 .01 .43 .75
6 00 120 5.25 .10 .38 .47
7 00 95 5.00 .02 .43 .35
8 00 130 5.50 .01 .44 .75
9 00 110 5.25 .10 .39 .44
10 00 85 5.00 .02 .43 .33
11 00 110 5.50 .01 .47 .78
12 00 110 5.25 .10 .37 .44
1 01 20 6.00 .22 .01 .66
2 01 25 5.95 .43 .10 .20
3 01 70 4.50 .88 .05 .17
1 02 80 2.50 .65 .33 .03
2 02 85 3.25 .55 .47 .04
3 02 90 2.75 .77 .55 .01
;
run;
所以我希望用Z,Y01,Y02和解釋X的ID 00.同樣,Z,Y00,Y02和將解釋x對於ID 01.最後,Z,Y00 ,並且y01將解釋x爲ID 02.
我只能使用'BY'語句,但我想不出如何告訴模型忽略與我目前使用的ID相同前綴的變量與...合作。
我可以創建單獨的數據集,但對於其中一些分析,n> 100。
理想情況下,我會爲每個ID運行一個proc mixed和proc reg,如上所述,併爲每個ID都設置一個數據集。
任何想法?
proc mixed data=have(where=(id='00')) plots(only)=all method=REML nobound ;
class s;
model x=z y01 y02
/solution;
random z y01 y02;
run;
proc reg data=have(where=(id='00'));
model x=z y01 y02;
run;
謝謝。
您可以用宏解決方案反覆運行分析不會產生不同的數據集(一對飛凡和MODEL)解決這個問題,但我想看看是否有人知道更好的解決方案;重複的宏觀解決方案將是時間和磁盤密集型 – Joe 2014-09-26 14:44:54