楼主: fd2008
1219 0

[编程问题求助] 求帮忙校对下代码是否有问题 [推广有奖]

  • 2关注
  • 10粉丝

贵宾

已卖:831份资源

教授

24%

还不是VIP/贵宾

-

威望
1
论坛币
95045 个
通用积分
179.3611
学术水平
22 点
热心指数
23 点
信用等级
21 点
经验
17534 点
帖子
401
精华
0
在线时间
1289 小时
注册时间
2005-12-9
最后登录
2025-12-6

楼主
fd2008 发表于 2015-4-18 18:23:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. 1-s2.0-S0304407601000793-main.pdf (81.79 KB)
  2. local n1 = 100 // number of individuals
  3. local n2 = 10 // number of periods
  4. local n = `n1'*`n2'
  5. set obs `n'
  6. quietly gen N = 0
  7. *设定N个 个体
  8. forvalues i = 1(1)`n1'{
  9.         local k = `n2'*(`i'-1)+1
  10.         local s = `n2'*`i'
  11.         quietly replace N = `i' in `k'/`s'
  12. }
  13. *设定panel data期数
  14. egen T = seq(), from(1)to(`n2')

  15. xtset N T



  16. * part II: to obtain unobserved individual-specific effect a

  17. gen a = 0

  18. forvalues j= 1(1)`n1'{
  19.              local k = `n2'*(`j'-1)+1
  20.              local s = `n2'*`j'
  21.              local b = invnormal(uniform())
  22.              quietly replace a = `b' in `k'/`s'
  23. }

  24. * part III: to obtain Xit.

  25. * correlation coefficient between X and a: T
  26. * 解释变量X与个体效应a相关
  27. local Tao = 0.5
  28. gen w = invnormal(uniform())
  29. local t = sqrt(1 - `Tao'^2)
  30. gen X = `Tao'*a + `t'*w

  31. * part IV: draw  U

  32. *产生随机扰动项u
  33. gen u = invnormal(0.5*uniform()+0.5)

  34. * to generate exogenous variabe z

  35. gen z1 = rnormal(10,100)
  36. gen z2 = rnormal(5,60)
  37. label var z1 "exogenous regressors"
  38. label var z2 "exogenous regressors"

  39. * to generate x with measurement e
  40. gen e = invnormal(uniform())
  41. gen x = X + e


  42. * part V: to generate y, X有测量偏误e

  43. gen y = a + X + z1 + z2 + u







  44. * ancillary matrix

  45. matrix one1 = J(`n2',1,1) // to generate a vector whose elements are 1.
  46. mat one1_t = one1'
  47. mat A`n2' = I(`n2') - (1/`n2')*one1*one1_t
  48. mat MR_1 = vec(A`n2')
  49. mat MR = I(`n2'^2) - (1/(`n2'-1))*MR_1*MR_1'


  50. mat define M = J(`n2'^2 + 2,`n2'^2 + 2,0)
  51. mat M[1,1] = MR
  52. mat M[`n2'^2 + 1,`n2'^2 + 1] = I(2)

  53. * krocker product of a part of B

  54. forvalues i = 1(1)`n1'{
  55. mkmat x if N==`i',matrix(x`i')
  56. mat x`i'I = x`i'#I(`n2')
  57. }


  58. *Zi

  59. forvalues j = 1(1)`n1'{
  60. mkmat z1 z2 if N == `j', matrix(Z_`j')
  61. mat Z_`j'trans =Z_`j''
  62. }

  63. * construction of Bi

  64. forvalues i = 1(1)`n1' {

  65. mat define B`i' = J(`n2'^2 + 2,`n2',0)
  66. mat B`i'[1,1] = x`i'I
  67. mat B`i'[`n2'^2 + 1,1] = Z_`i'trans
  68. }


  69. * within transformation
  70. egen y_meanw = mean(y), by(N)
  71. egen x_meanw = mean(x), by(N)

  72. egen z1_meanw = mean(z1), by(N)
  73. egen z2_meanw = mean(z2), by(N)
  74. gen dy = y - y_meanw
  75. gen dx = x - x_meanw
  76. gen dz1 = z1 - z1_meanw
  77. gen dz2 = z2 - z2_meanw


  78. *krocker product of a part of C

  79. forvalues j = 1(1)`n1'{
  80. mkmat dx if N == `j' ,matrix(dx`j')

  81. mkmat dz1 if N == `j', matrix(dz1`j')
  82. mkmat dz2 if N == `j', matrix(dz2`j')

  83. mat_capp xz`j'_ : dx`j' dz1`j'
  84. mat_capp xz`j' : xz`j'_ dz2`j'
  85. }

  86. forvalues i = 1(1)`n1'{
  87. mat C`i'=B`i'*xz`i'
  88. }

  89. * construction of dn

  90. forvalues j = 1(1)`n1'{

  91. mkmat dy if N == `j', matrix(dy`j')
  92. mat d`j' = B`j'*dy`j'
  93. }
  94. ***************************

  95. * mean of C and d


  96. local m = 1
  97. mat dddd = J(`n2'^2 + 2, 1, 0)
  98. while `m' <= `n1'{
  99. mat dddd = d`m' + dddd
  100. local m = `m' + 1
  101. }

  102. mat d_mean = (1/`n1')*dddd
  103. quietly mat list d_mean


  104. mat b1 = J(`n2'^2 + 2 , 3 ,0)

  105. local n = 1
  106. while `n' <= `n1'{

  107. mat b1 = C`n' + b1

  108. local n = `n' + 1

  109. }

  110. mat C_mean = (1/`n1')*b1



  111. * computation of a first step consistent GMM estimator

  112. * matrix C_mean_trans = C_mean'



  113. matrix lamda1 = inv(C_mean'*M*C_mean)*C_mean'*M*d_mean

  114. mat list lamda1

  115. * its weighting matrix

  116. matrix dc = J(`n2'^2 + 2,1,0)

  117. forvalues i = 1(1)`n1'{
  118. matrix dc`i' = J(`n2'^2 + 2,1,0)
  119. matrix dc`i' = d`i' - C`i'*lamda1
  120. }

  121. mat W1 = J(`n2'^2 + 2, `n2'^2 + 2 , 0)

  122. local j = 1

  123. while `j' <= `n1'{

  124. mat W1 = dc`j'*dc`j'' + W1

  125. local j = `j' + 1
  126. }

  127. mat W_hat = (1/`n1')*W1




  128. mat lamda2 = inv(C_mean'*M*inv(W_hat)*M*C_mean)*C_mean'*M*inv(W_hat)*M*d_mean

  129. mat list lamda2
复制代码


如上面附件,毕业设计老师让根据这篇文献的内容做一个蒙特卡罗模拟。我的主要内容 是根据文献第三部门的模型做的,即 面板数据的一个解释变量存在测量偏误的情况下,如何通过GMM方法得到有测量偏误解释变量的一致估计量(consistent estimator)。但是,我按照文献中的两步法得到的估计量只有外生变量的系数是一致的,有测量偏误的系数差距比较大。后来我用STATA验证了文献中推导用到的假设,都基本没问题。所以想请STATA高手帮我看看是不是代码存在问题?

谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:求帮忙 Construction Individuals coefficient correlation replace number local

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-21 11:27