- 阅读权限
- 255
- 威望
- 1 级
- 论坛币
- 95113 个
- 通用积分
- 184.4958
- 学术水平
- 22 点
- 热心指数
- 23 点
- 信用等级
- 21 点
- 经验
- 17540 点
- 帖子
- 403
- 精华
- 0
- 在线时间
- 1265 小时
- 注册时间
- 2005-12-9
- 最后登录
- 2024-9-16
教授
还不是VIP/贵宾
- 威望
- 1 级
- 论坛币
- 95113 个
- 通用积分
- 184.4958
- 学术水平
- 22 点
- 热心指数
- 23 点
- 信用等级
- 21 点
- 经验
- 17540 点
- 帖子
- 403
- 精华
- 0
- 在线时间
- 1265 小时
- 注册时间
- 2005-12-9
- 最后登录
- 2024-9-16
|
1000论坛币
- local n1 = 100 // number of individuals
- local n2 = 10 // number of periods
- local n = `n1'*`n2'
- set obs `n'
- quietly gen N = 0
- *设定N个 个体
- forvalues i = 1(1)`n1'{
- local k = `n2'*(`i'-1)+1
- local s = `n2'*`i'
- quietly replace N = `i' in `k'/`s'
- }
- *设定panel data期数
- egen T = seq(), from(1)to(`n2')
- xtset N T
- * part II: to obtain unobserved individual-specific effect a
- gen a = 0
- forvalues j= 1(1)`n1'{
- local k = `n2'*(`j'-1)+1
- local s = `n2'*`j'
- local b = invnormal(uniform())
- quietly replace a = `b' in `k'/`s'
- }
- * part III: to obtain Xit.
- * correlation coefficient between X and a: T
- * 解释变量X与个体效应a相关
- local Tao = 0.5
- gen w = invnormal(uniform())
- local t = sqrt(1 - `Tao'^2)
- gen X = `Tao'*a + `t'*w
- * part IV: draw U
- *产生随机扰动项u
- gen u = invnormal(0.5*uniform()+0.5)
- * to generate exogenous variabe z
- gen z1 = rnormal(10,100)
- gen z2 = rnormal(5,60)
- label var z1 "exogenous regressors"
- label var z2 "exogenous regressors"
- * to generate x with measurement e
- gen e = invnormal(uniform())
- gen x = X + e
- * part V: to generate y, X有测量偏误e
- gen y = a + X + z1 + z2 + u
- * ancillary matrix
- matrix one1 = J(`n2',1,1) // to generate a vector whose elements are 1.
- mat one1_t = one1'
- mat A`n2' = I(`n2') - (1/`n2')*one1*one1_t
- mat MR_1 = vec(A`n2')
- mat MR = I(`n2'^2) - (1/(`n2'-1))*MR_1*MR_1'
- mat define M = J(`n2'^2 + 2,`n2'^2 + 2,0)
- mat M[1,1] = MR
- mat M[`n2'^2 + 1,`n2'^2 + 1] = I(2)
- * krocker product of a part of B
- forvalues i = 1(1)`n1'{
- mkmat x if N==`i',matrix(x`i')
- mat x`i'I = x`i'#I(`n2')
- }
- *Zi
- forvalues j = 1(1)`n1'{
- mkmat z1 z2 if N == `j', matrix(Z_`j')
- mat Z_`j'trans =Z_`j''
- }
- * construction of Bi
- forvalues i = 1(1)`n1' {
- mat define B`i' = J(`n2'^2 + 2,`n2',0)
- mat B`i'[1,1] = x`i'I
- mat B`i'[`n2'^2 + 1,1] = Z_`i'trans
- }
- * within transformation
- egen y_meanw = mean(y), by(N)
- egen x_meanw = mean(x), by(N)
- egen z1_meanw = mean(z1), by(N)
- egen z2_meanw = mean(z2), by(N)
- gen dy = y - y_meanw
- gen dx = x - x_meanw
- gen dz1 = z1 - z1_meanw
- gen dz2 = z2 - z2_meanw
- *krocker product of a part of C
- forvalues j = 1(1)`n1'{
- mkmat dx if N == `j' ,matrix(dx`j')
- mkmat dz1 if N == `j', matrix(dz1`j')
- mkmat dz2 if N == `j', matrix(dz2`j')
- mat_capp xz`j'_ : dx`j' dz1`j'
- mat_capp xz`j' : xz`j'_ dz2`j'
- }
- forvalues i = 1(1)`n1'{
- mat C`i'=B`i'*xz`i'
- }
- * construction of dn
- forvalues j = 1(1)`n1'{
- mkmat dy if N == `j', matrix(dy`j')
- mat d`j' = B`j'*dy`j'
- }
- ***************************
- * mean of C and d
- local m = 1
- mat dddd = J(`n2'^2 + 2, 1, 0)
- while `m' <= `n1'{
- mat dddd = d`m' + dddd
- local m = `m' + 1
- }
- mat d_mean = (1/`n1')*dddd
- quietly mat list d_mean
- mat b1 = J(`n2'^2 + 2 , 3 ,0)
- local n = 1
- while `n' <= `n1'{
- mat b1 = C`n' + b1
- local n = `n' + 1
- }
- mat C_mean = (1/`n1')*b1
- * computation of a first step consistent GMM estimator
- * matrix C_mean_trans = C_mean'
- matrix lamda1 = inv(C_mean'*M*C_mean)*C_mean'*M*d_mean
- mat list lamda1
- * its weighting matrix
- matrix dc = J(`n2'^2 + 2,1,0)
- forvalues i = 1(1)`n1'{
- matrix dc`i' = J(`n2'^2 + 2,1,0)
- matrix dc`i' = d`i' - C`i'*lamda1
- }
- mat W1 = J(`n2'^2 + 2, `n2'^2 + 2 , 0)
- local j = 1
- while `j' <= `n1'{
- mat W1 = dc`j'*dc`j'' + W1
- local j = `j' + 1
- }
- mat W_hat = (1/`n1')*W1
- mat lamda2 = inv(C_mean'*M*inv(W_hat)*M*C_mean)*C_mean'*M*inv(W_hat)*M*d_mean
- mat list lamda2
复制代码 附件在另一个帖子中:https://bbs.pinggu.org/forum.php?mod=viewthread&tid=3670626&page=1&extra=#pid29624369
不知为何,附件不可以重复上传!
如上面附件,毕业设计老师让根据这篇文献的内容做一个蒙特卡罗模拟。我的主要内容 是根据文献第三部门的模型做的,即 面板数据的一个解释变量存在测量偏误的情况下,如何通过GMM方法得到有测量偏误解释变量的一致估计量(consistent estimator)。但是,我按照文献中的两步法得到的估计量只有外生变量的系数是一致的,有测量偏误的系数差距比较大。后来我用STATA验证了文献中推导用到的假设,都基本没问题。所以想请STATA高手帮我看看是不是代码存在问题?
谢谢!
|
|