全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
1603 2
2010-02-02
连老师:
您好!
我在学习Monte Carlo Simulation的编程,碰到一个小问题,不知道怎么回事。
运行下面的程序,无法得出结果。return list命令也没有东西。 如果最后用simulate  _b _se, reps(10) nodots: ppmlsim_k1 x1 x2
则错误信息为“no variables defined r(111);”。请指点一下哪里出了问题。(另外,我用OLS回归模拟没有出现这个问题。模拟结束会返回关于_b _se的信息,不知道这个该怎么设置?)

谢谢!

*--------------------------------------------------------------------------------
program define ppmlsim_k1,rclass
version 10.0
clear
set obs 1000
gen x1=rnormal()
gen x2 = uniform()
replace x2 = (x2<=0.40)
gen v=1/(exp(1*x1+1*x2))
gen f=rnormal(-(ln(v+1))/2,ln(v+1))
gen y=exp(1*x1+1*x2+f)
syntax varlist
tempvar y1 k
       gen `k'=1
        gen `y1' = y-`k'
        replace `y1'=0 if `y1'<0
        poisson `y1' `varlist',robust
        
end
*------------------------------------------
      simulate , reps(10) nodots: ppmlsim_k1 x1 x2
      sum
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-2-3 09:11:45
由于不太清楚你做MC的目的和具体思路,只能根据你提供的程序进行猜测。

看看下面的程序是不是你想要的:

*--------------------------------------------------------------------------------
cap program drop ppmlsim_k1
program define ppmlsim_k1,rclass
version 10.0
clear
set obs 1000
* gen x1=rnormal()
  gen x1=invnorm(uniform())
gen x2 = uniform()
replace x2 = (x2<=0.40)
gen v=1/(exp(1*x1+1*x2))
* gen f=normal(-(ln(v+1))/2,ln(v+1))  // rnormal()?
  gen f=-(ln(v+1))/2 + invnorm(uniform())*ln(v+1)
gen y=exp(1*x1+1*x2+f)
* syntax varlist
tempvar y1 k
       gen `k'=1
        gen `y1' = y-`k'
        replace `y1'=0 if `y1'<0
        *poisson `y1' `varlist',robust
        poisson `y1' x1 x2, robust
        return scalar b1 = _b[x1]
        return scalar b2 = _b[x2]
        
end
*------------------------------------------
      ppmlsim_k1
      simulate b1=r(b1) b2=r(b2), reps(10) nodots: ppmlsim_k1
      sum
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-2-4 02:20:43
问题已解决,谢谢连老师!有个高手在身边解惑,感觉真的很好!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群