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