Re: [程式]將SAS跑回歸結果的estimate,std err抓出 …

看板Statistics作者 (昨夜風)時間16年前 (2010/03/31 12:19), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/2 (看更多)
: 推 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
你的程式缺點在於沒有使用by asin來估計模型
03/31 13:33, 1F

03/31 13:34, , 2F
這樣子 你可以指考慮周數就可以了
03/31 13:34, 2F

03/31 13:34, , 3F
最後 查一下 outest 或者ods output的方法
03/31 13:34, 3F

04/01 22:41, , 4F
感謝tew大的指點,配合kingbee的網站,我已經試出來了!
04/01 22:41, 4F
文章代碼(AID): #1BiiraxA (Statistics)
文章代碼(AID): #1BiiraxA (Statistics)