全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7502 7
2019-06-27
forvalues j = 1(1)`rowsboth' {
        local rownum = `rownum' + 1
        replace phiG = 1.1 - `j'*0.1 if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff if `goodsample', cov
        replace varzG = r(Var_1) if _n==`rownum'
        replace nG = r(N) if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff if `badsample', cov
        replace varzB = r(Var_1) if _n==`rownum'
        replace nB = r(N) if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff, cov
        replace varx = r(Var_2) if _n==`rownum'
        replace cov = r(cov_12) if _n==`rownum'
        replace nTot = r(N) if _n==`rownum'

        replace sigmasqy = varzG * phiG if _n==`rownum'
        replace phiB = sigmasqy / varzB if _n==`rownum'
        replace beta = cov / sigmasqy if _n==`rownum'
        replace sigmasqx = varx - cov if _n==`rownum'
        replace sigmasqzB = varzB - sigmasqy if _n==`rownum'
        replace sigmasqzG = varzG - sigmasqy if _n==`rownum'

        replace lambdaB = sigmasqx*sigmasqy / ( sigmasqx*sigmasqy + sigmasqzB*(beta*beta*sigmasqy + sigmasqx) ) if _n==`rownum'
        replace lambdaG = sigmasqx*sigmasqy / ( sigmasqx*sigmasqy + sigmasqzG*(beta*beta*sigmasqy + sigmasqx) ) if _n==`rownum'
}


二维码

扫码加我 拉你入群

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

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

全部回复
2019-6-27 17:13:21
用 loop 來計算統計量與跑迴歸,都不是好 idea。請直接說明你要做什麼?
复制代码
二维码

扫码加我 拉你入群

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

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

2019-6-28 08:32:10
黃河泉 发表于 2019-6-27 17:13
用 loop 來計算統計量與跑迴歸,都不是好 idea。請直接說明你要做什麼?
谢谢黄老师,刚学stata不久,对这块还不是很熟悉。
二维码

扫码加我 拉你入群

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

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

2019-6-28 08:36:19
草蜢718 发表于 2019-6-28 08:32
谢谢黄老师,刚学stata不久,对这块还不是很熟悉。
复制代码
是在AER上看到的一篇文章的程序,是想通过循环计算出相应的参数值。但我在stata中运行时,总提示在forvalues语句后提示 invalid syntax,不知道问题出在哪里,请黄老师和各位高手指点。
gen phiG=.
gen varzG=.
gen varzB=.
gen cov=.
gen varx=.
gen nG=.
gen nB=.
gen nTot=.

gen phiB=.
gen sigmasqx=.
gen sigmasqy=.
gen sigmasqzG=.
gen sigmasqzB=.
gen beta=.
gen lambdaG=.
gen lambdaB=.

local rownum = 0

local rowsboth = 5

local goodsample = "wbdqtotal>3.5"
local badsample = "wbdqtotal<3.5"

forvalues j = 1(1)`rowsboth' {
        local rownum = `rownum' + 1
        replace phiG = 1.1 - `j'*0.1 if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff if `goodsample', cov
        replace varzG = r(Var_1) if _n==`rownum'
        replace nG = r(N) if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff if `badsample', cov
        replace varzB = r(Var_1) if _n==`rownum'
        replace nB = r(N) if _n==`rownum'
        qui: corr lngdpwdilocallongdiff lndnlongdiff, cov
        replace varx = r(Var_2) if _n==`rownum'
        replace cov = r(cov_12) if _n==`rownum'
        replace nTot = r(N) if _n==`rownum'

        replace sigmasqy = varzG * phiG if _n==`rownum'
        replace phiB = sigmasqy / varzB if _n==`rownum'
        replace beta = cov / sigmasqy if _n==`rownum'
        replace sigmasqx = varx - cov if _n==`rownum'
        replace sigmasqzB = varzB - sigmasqy if _n==`rownum'
        replace sigmasqzG = varzG - sigmasqy if _n==`rownum'

        replace lambdaB = sigmasqx*sigmasqy / ( sigmasqx*sigmasqy + sigmasqzB*(beta*beta*sigmasqy + sigmasqx) ) if _n==`rownum'
        replace lambdaG = sigmasqx*sigmasqy / ( sigmasqx*sigmasqy + sigmasqzG*(beta*beta*sigmasqy + sigmasqx) ) if _n==`rownum'
}

local rownum = `rownum' + 1
replace phiB = phiB[2] if _n==`rownum'
local phiB = phiB[2]
qui: corr lngdpwdilocallongdiff lndnlongdiff if `badsample', cov
replace varzB = r(Var_1) if _n==`rownum'
replace nB = r(N) if _n==`rownum'
replace varx = r(Var_2) if _n==`rownum'
replace cov = r(cov_12) if _n==`rownum'
replace nTot = r(N) if _n==`rownum'

replace sigmasqy = varzB * phiB if _n==`rownum'
replace beta = cov / sigmasqy if _n==`rownum'
replace sigmasqx = varx - cov if _n==`rownum'
replace sigmasqzB = varzB - sigmasqy if _n==`rownum'

replace lambdaB = sigmasqx*sigmasqy / ( sigmasqx*sigmasqy + sigmasqzB*(beta*beta*sigmasqy + sigmasqx) ) if _n==`rownum'

keep  phiG phiB beta lambdaG lambdaB sigmasqy sigmasqzB sigmasqzG sigmasqx
order phiG phiB beta lambdaG lambdaB sigmasqy sigmasqzB sigmasqzG sigmasqx
二维码

扫码加我 拉你入群

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

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

2019-6-28 09:03:27
草蜢718 发表于 2019-6-28 08:32
谢谢黄老师,刚学stata不久,对这块还不是很熟悉。
其实很多老手也是会用 loop 来计算 (如同我所说,bad idea)。
二维码

扫码加我 拉你入群

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

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

2019-6-28 09:11:24
黃河泉 发表于 2019-6-28 09:03
其实很多老手也是会用 loop 来计算 (如同我所说,bad idea)。
老师那您能看出forvalues循环语句这块有什么问题吗?因为想要搞懂论文中的参数是怎么得到的
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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