作者pngmlu (YOU NEVER KNOW)
看板Statistics
標題[程式] STATA simulate
時間Fri Jun 10 11:41:00 2011
[軟體程式類別]:
請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等
STATA
[程式問題]:
資料處理、迴歸、敘述統計、logistic、probit...等
simulate
[軟體熟悉度]:
請把以下不需要的部份刪除
新手(不到1個月)
[問題敘述]:
我讀取一個資料檔dataset,generate 4個變數 gm gsd mons sn
想要利用 while loop 逐筆(逐列)跑 simulate ,但不知道要如何設定該變數
我一直得到一個錯誤訊息
"option mu() incorrectly specified an error occurred when simulate
executed lnsim"
請問應該如何解決??
另外,我想用使用postfile 來記錄每一次simulate 的結果(根據help指引撰寫) ,
避免新產生的結果overwrite 前一次simulate的結果...but it doesn't work
請問,我是不是哪一個環節出錯了??
請多指教~謝謝!!!
clear
capture program drop lnsim
program define lnsim, rclass
version 9.2
syntax [, obs(integer 1) mu(real 0) sigma(real 1)]
drop _all
set obs `obs'
tempvar z
gen `z' = `mu' + `sigma'*invnorm(uniform())
centile `z', centile(1 3 5)
return scalar c_1=r(c_1)
return scalar c_2=r(c_2)
return scalar c_3=r(c_3)
end
/***********************************************************/
insheet using "C:\STATAworking\firlweight\weight.txt"
gen double gm=p50
gen double gsd=(p95-p50)/2
gen int mons=month
gen int sn=_n
tempname memhold
tempfile results
postfile `memhold' c_1 c_2 c_3 using `results'
local i=1
local totaln=61
while(`i' <= 61){
if sn == `i'{
simulate c_1=r(c_1) c_2=r(c_2) c_3=r(c_3), reps(1): ///
/// lnsim, obs(1000) mu(gm) sigma(gsd)
}
post `memhold' (c_1) (c_2) (c_3)
local i = `i' + 1
}
postclose `memhold'
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.247.91
1F:→ mha:mu(real 0) sigma(real 1) => mu sigma () 要放數字 06/10 20:57
2F:→ mha:你放 variable 所以不會跑 06/10 20:58