全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4572 6
2009-11-03
请问下面的Monte Carlo study如何用stata来实现(具体程序)
假设一个经典线性回归模型 Y=a+bx+cz+e. 现在有25个x,z的观察值,想比较OLS b estimates 包括和不包括解释变量 z. (比较主要是通过看bias与否,以及比较variance )


基本步骤已经知道。但是在stata上编写语句的时候总有些问题。请大家帮忙写一下程序。谢谢



二维码

扫码加我 拉你入群

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

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

全部回复
2009-11-4 09:31:53

********* 计量分析与STATA应用 *********

*        主讲人:连玉君 博士
*       单 位:中山大学岭南学院金融系
*       电 邮: arlionn@163.com
*       主 页: http://blog.cnfol.com/arlion
         
*              
::stata高级视频教程::


*              
计量分析与Stata应用
*       =================================
*           
第九讲  模拟分析与自抽样   
*       =================================




*
例3:遗漏变量和增加无关变量对OLS估计的影响
  * 理论基础:
  *     对于模型
y = a0 + a1*x_1 + a2*x_2 + u
  *                      u -- N(0,1)
  *     若回归中遗漏了 x_1,则 a_2 的 OLS 估计将是有偏的;

  *     若回归中增加了多余的变量 x_3,则 a_1 和 a_2 的 OLS 估计仍然是无偏的;

  * 真实数据生成过程:
  * y = 0.5 + x_1 + 2*x_2
    clear
    set obs 100
    gen x1 = invnormal(uniform())
    gen x2 = invnormal(uniform())
    gen x3 = invnormal(uniform())
    gen y  = 0.5 + 1*x1 + 2*x2
    save myomit_data, replace
  
  *------------------------------------
    cap program drop myomit
    program define myomit, eclass
      version 9.2
      syntax varlist
        tempvar u y
        gen `u' = invnormal(uniform())
        gen `y' = y + `u'  /*
让干扰项变动是模拟的基础*/
        reg `y' `varlist'
    end
  *------------------------------------
  
  * 真实数据过程

    * 正确设定模型
      use myomit_data, clear
      simulate _b _se, reps(1000) nodots: myomit x1 x2
      sum
    *
遗漏重要变量   
      use myomit_data, clear
      simulate _b _se, reps(1000): myomit x1
      sum
    * 附加无关变量

      use myomit_data, clear
      simulate _b _se, reps(1000): myomit x1 x2 x3
      sum
  
  * ::
结论::
  *  在模型设定过程中:
  *   遗漏变量的后果很严重:模型参数有偏!
  *   附加无关变量影响不大:模型参数仍然无偏,但不够有效!-




二维码

扫码加我 拉你入群

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

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

2009-11-4 15:55:34
谢谢连老师!!!
二维码

扫码加我 拉你入群

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

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

2011-3-4 22:25:29
不能运行啊
二维码

扫码加我 拉你入群

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

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

2011-3-6 11:29:49
如下部分需要全选后,按下快捷键 Ctrl+R 来执行,其他的部分可以分别选中后采用快捷键 Ctrl+D 执行。

  *------------------------------------
    cap program drop myomit
    program define myomit, eclass
      version 9.2
      syntax varlist
        tempvar u y
        gen `u' = invnormal(uniform())
        gen `y' = y + `u'  /*让干扰项变动是模拟的基础*/
        reg `y' `varlist'
    end
  *------------------------------------
二维码

扫码加我 拉你入群

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

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

2011-3-6 12:44:22
不知道你的是什么版本 我的7,9,10均没有这个快捷键,按下无反应。
从9开始 命令行可以贴多行的,你在你的机子上运行过吗?
根据观察,是myomit程序中的y变量无法识别,因为在自定义的程序里面y变量没有定义,也无法成功取外部的y值。即非临时变量y无法被识别。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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