作者star2000 (昨夜風)
站內Statistics
標題Re: [程式]將SAS跑回歸結果的estimate,std err抓出 …
時間Wed Mar 31 12:19:45 2010
: 推 tew:把語法貼出來看看 說不定不需要 %macro 只要by 就好 03/31 11:46
tew大,語法如下,我寫得又臭又長,貼出來有點害羞,不過還請您指教。
weekd是周數,想法是跑4-52周的每四周銷售量,找出各個ASIN的p,q,m然後做表畫圖。
現在每四周不同的ASIN都有獨立的p,q,m,所以有上百個回歸。
想把它們納入同一個表格來做分析。
%macro ind(ASIN, weekd);
data varbestseller&asin;
set d2;
by asin;
retain Accum 0;
Accum+lag(_freq_);
if first.asin then accum=0;
where asin=&asin;
if weekdif>&weekd then delete;
run;
title "&asin @&weekd";
PROC MODEL data=varbestseller&asin;
PARMS p q m ;
bounds p > 0, q>0;
F=accum/m;
V=m-accum;
_freq_=p*(m-accum)+(q/m)*accum*(m-accum);
FIT _freq_ start= (p= .001 .051 .101 .151 0.252 0.301 0.401
q= .001 .151 .021 .301 .451 .601
m=50 100 200 300 400 500 1000)
/ maxiter=100 startiter OLS collin dw;
run;
%mend;
%macro doall(w);
%ind(asin=312377428, weekd=&w);
%ind(asin=316017922, weekd=&w);
%ind(asin=316068047, weekd=&w);
%ind(asin=316143472, weekd=&w);
%ind(asin=374166854, weekd=&w);
%ind(asin=375826726, weekd=&w);
%ind(asin=385515049, weekd=&w);
%ind(asin=545128285, weekd=&w);
%ind(asin=553805096, weekd=&w);
%ind(asin=1400054354, weekd=&w);
%ind(asin=1400063256, weekd=&w);
%ind(asin=1401323251, weekd=&w);
%ind(asin=39306235000, weekd=&w);
%ind(asin=141659485000, weekd=&w);
%mend;
%doall(w=4)
%doall(w=8)
%doall(w=12)
%doall(w=16)
%doall(w=20)
%doall(w=24)
%doall(w=28)
%doall(w=32)
%doall(w=36)
%doall(w=40)
%doall(w=44)
%doall(w=48)
%doall(w=52)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 67.173.183.232
1F:推 tew:你的程式缺點在於沒有使用by asin來估計模型 03/31 13:33
2F:→ tew:這樣子 你可以指考慮周數就可以了 03/31 13:34
3F:→ tew:最後 查一下 outest 或者ods output的方法 03/31 13:34
4F:→ star2000:感謝tew大的指點,配合kingbee的網站,我已經試出來了! 04/01 22:41