Re: [程式]將SAS跑回歸結果的estimate,std err抓出 …
: 推 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
推
03/31 13:33, , 1F
03/31 13:33, 1F
→
03/31 13:34, , 2F
03/31 13:34, 2F
→
03/31 13:34, , 3F
03/31 13:34, 3F
→
04/01 22:41, , 4F
04/01 22:41, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):