全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
2009 5
2010-02-08
连老师:
您好!
我在用Monte Carlo模拟不同估计方法的表现,由于模拟的方案多,备选估计方法也有多个,因而输出结果成了一个问题。
我初步设想的模拟中包含了3个自变量,您在讲义中自编的循环命令做模拟由于只有一个自变量,而且我对mat知道的甚少,还没用过,还不能活学活用,
还请连老师指点一下。(1)有没有跟est store-esttab一样的命令,能将不同估计方案的模拟结果同时呈现在一个表格的方法或者命令?(2)上次你给我修改的程序(见下方),其中return scalar b1 = _b[x1],return scalar b2 = _b[x2]在非线性-nl (y = exp({b1=1}*x1+{b2=1}*x2+{b3=1}*x3))编程中不能使用,不知道什么原因?(3)讲义中有关于return list 和ereturn list的内容,但不知道怎么看?比如return list 中是没有关于se的信息的,但是用simulate _b _se, reps(100): nlssim_1命令却能给出各系数se的信息,请问这是为什么?
我想得到模拟系数的估计值和se。

cap program drop ppmlsim_k1
program define ppmlsim_k1,rclass
version 10.0
drop _all
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
*------------------------------------------
      
      simulate b1=r(b1) b2=r(b2), reps(100) nodots: ppmlsim_k1
      sum
二维码

扫码加我 拉你入群

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

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

全部回复
2010-2-8 09:28:27
问题(2)的编程,但是这里的return scalar b1 = _b[x1],不能跟其他编程一样使用。很迷惑!
*****************************************************

cap program drop nlssim_1
program define nlssim_1,rclass
version 10.0
drop _all
     use C:\data-10.dta
     gen v2=1/(exp(1*x1+1*x2+1*x3))   /*方案一的假定*/   

gen f=rnormal(-(ln(v+1))/2,ln(v+1))   
gen y=exp(1*x1+1*x2+1*x3+f)  
replace y=0 if dc==0
nl: y x1 x2 x3

nl (y = exp({b1=1}*x1+{b2=1}*x2+{b3=1}*x3))
return scalar b1 = _b[x1]

end
*------------------------------------------
simulate b1=r(b1) , reps(10) saving (sl1): nlssim_1
sum
二维码

扫码加我 拉你入群

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

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

2010-2-8 10:32:59
我考虑一下,明天回复你。
二维码

扫码加我 拉你入群

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

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

2010-2-11 09:44:05
谢谢,静候中……
二维码

扫码加我 拉你入群

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

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

2010-2-19 10:42:02
slnau1978 发表于 2010-2-8 09:28
问题(2)的编程,但是这里的return scalar b1 = _b[x1],不能跟其他编程一样使用。很迷惑!
*****************************************************
……
在NL回归中,参数与解释变量之间并不存在一一对应的关系,因此无法通过引用变量名称的方式来引用参数。
正确的方式是引用NL回归后的返回矩阵 e(b) 中的元素。
你的程序修改如下:

cap program drop nlssim_1
program define nlssim_1,rclass
version 10.0
drop _all
     use C:\data-10.dta
     gen v2=1/(exp(1*x1+1*x2+1*x3))   /*方案一的假定*/   

gen f=rnormal(-(ln(v+1))/2,ln(v+1))   
gen y=exp(1*x1+1*x2+1*x3+f)  
replace y=0 if dc==0
nl: y x1 x2 x3

nl (y = exp({b1=1}*x1+{b2=1}*x2+{b3=1}*x3))
mat B = e(b)
return scalar b1 = B[1,1]


end
*------------------------------------------
simulate b1=r(b1) , reps(10) saving (sl1): nlssim_1
sum
二维码

扫码加我 拉你入群

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

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

2010-2-19 10:48:02
slnau1978 发表于 2010-2-8 05:53
连老师:
您好!
我在用Monte Carlo模拟不同估计方法的表现,由于模拟的方案多,备选估计方法也有多个,因而输出结果成了一个问题。
我初步设想的模拟中包含了3个自变量,您在讲义中自编的循环命令做模拟由于只有一个自变量,而且我对mat知道的甚少,还没用过,还不能活学活用,
还请连老师指点一下。
(1)有没有跟est store-esttab一样的命令,能将不同估计方案的模拟结果同时呈现在一个表格的方法或者命令?
A: 如果使用 simulate 命令,可以自动汇总结果。否则就只能用矩阵的方式来记录结果了。你可以抽出半天的时间来学习矩阵,应该不会太困难。

(2)上次你给我修改的程序(见下方),其中return scalar b1 = _b[x1],return scalar b2 = _b[x2]在非线性-nl (y = exp({b1=1}*x1+{b2=1}*x2+{b3=1}*x3))编程中不能使用,不知道什么原因?
A: 参见5楼的答复。

(3)讲义中有关于return list 和ereturn list的内容,但不知道怎么看?比如return list 中是没有关于se的信息的,但是用simulate _b _se, reps(100): nlssim_1命令却能给出各系数se的信息,请问这是为什么?
A: ret list 中已经给出了用于计算 se 的信息。输入 eret list 后,会呈现出 e(V) 矩阵,即系数估计的方差-协方差矩阵,该矩阵对角线元素的平方根就是相应系数的 s.e.。simulate 命令之所以可以提供 _se 信息,那是因为其程序中根据 e(V) 的信息进行了计算。

我想得到模拟系数的估计值和se。

cap program drop ppmlsim_k1
program define ppmlsim_k1,rclass
version 10.0
drop _all
set obs 1000
* gen x1=rnormal()
  gen x1=invnorm(uniform())
gen x2 = uniform()
replace x2 = (x2
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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