作者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