zhao1198的个人博客分享 http://blog.sciencenet.cn/u/zhao1198

博文

Simulation Using Stata: A Simple Case

已有 4182 次阅读 2010-4-20 16:41 |个人分类:Stata|系统分类:博客资讯

  • This a part of a simulation based on an empirical paper.Here we simulate the process about 2000 times. In each time, we get a DGP generating 2000 observations.

    clear all
    set matsize 5000
    program drop _all
    drop _all
    matrix drop _all

    global matrix

    program  sim1
      version 10
    syntax [, obs(integer 1) ]

    set obs `obs'
    tempvar cons x1 nj njh gap w1  de1 de2 de3 de4 u0 e1 e2 e3 e4

    gen x1=invnormal(uniform())
    gen u0=uniform()
    gen nj=1 if u0>0.2
    replace nj=0 if u0<=0.2
    gen w1=4.25+1.3*uniform()
    gen njh=1 if w1>=5.05
    replace njh=0 if w1<5.05
    gen gap=0 if u0<=0.2
    replace gap=0 if w1>=5.05
    replace gap=(5.05-w1)/w1 if w1<5.05
    gen e1=invnormal(uniform())
    gen e2=invnormal(uniform())
    gen e3=invnormal(uniform())
    gen e4=invnormal(uniform())
    gen cons=1.99
    gen de1=cons+2*x1+2.3*nj+e1
    gen de2=cons+2*x1+2.01*gap+e2
    gen de3=cons+2*x1+2.01*gap+2.3*nj+e3
    gen de4=cons+2*x1+2.01*gap+2.3*nj+3.32*njh+e4

    local mat t
    quietly reg de1 x1 nj
    matrix t=nullmat(t)e(b)
    quietly reg de2 x1 nj
    matrix t=(nullmat(t),e(b))
    quietly reg de3 x1 nj
    matrix t=(nullmat(t),e(b))
    quietly reg de4 x1 nj
    matrix t=(nullmat(t),e(b))


    matrix tt=(nullmat(tt)t)
     drop _all
     matrix drop t
    end

    simulate, reps(2000): sim1, obs(2000)

    svmat tt
    matrix drop _all
    quietly summarize tt1
    matrix t=nullmat(t)(r(mean),r(Var))
    quietly summarize tt2
    matrix t=t(r(mean),r(Var))
    quietly summarize tt3
    matrix t=t(r(mean),r(Var))
    quietly summarize tt4
    matrix t=t(r(mean),r(Var))
    quietly summarize tt5
    matrix t=t(r(mean),r(Var))
    quietly summarize tt6
    matrix t=t(r(mean),r(Var))
    quietly summarize tt7
    matrix t=t(r(mean),r(Var))
    quietly summarize tt8
    matrix t=t(r(mean),r(Var))
    quietly summarize tt9
    matrix t=t(r(mean),r(Var))
    quietly summarize tt10
    matrix t=t(r(mean),r(Var))
    quietly summarize tt11
    matrix t=t(r(mean),r(Var))
    quietly summarize tt12
    matrix t=t(r(mean),r(Var))

    drop _all
    matrix colnames t = mean var
    svmat t, names(col)
    outsheet using F:Statafastfood1.xls

    [align=right][color=#000066][此贴子已经被作者于2008-2-27 17:20:16编辑过][/color][/align]

    精华


  • https://blog.sciencenet.cn/blog-285749-314149.html

    上一篇:如何转换STATA生成的图
    下一篇:用KooMail的虚拟邮件夹更好地管理邮件
    收藏 IP: .*| 热度|

    0

    评论 (0 个评论)

    数据加载中...

    Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

    GMT+8, 2024-7-18 00:22

    Powered by ScienceNet.cn

    Copyright © 2007- 中国科学报社

    返回顶部