全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1557 0
2013-10-31
筛选配对样本的程序,论坛里面有很多大神都给了解答。

比较有代表性的有:
https://bbs.pinggu.org/thread-498689-1-1.html

https://bbs.pinggu.org/thread-696047-1-1.html


      我有一个数据,其中有一个dummy变量是chg,我想做的是对每一个chg=1的观测,在chg=0的范围内,按照相同年度、相同行业、资产规模最接近的原则,选取1:1配对样本。

      按照第一个贴sungmoo的方法(包括后面的补丁)选出了样本。但是说实话,对程序的内在逻辑没有弄懂,只是改了关键地方的变量。

      但是对第二帖,我对程序该的过程中不知道哪里出错,总是陷入死循环。。。所以贴出来,希望哪位高手能给debug一下

sort code yr
set more off
capture postclose match
postfile match group code yr dmatch using matchsample.dta, replace
local total = _N
local j = 0
forval i = 1/`total' {
        preserve
        local lchg = chg[`i']
        if `lchg'==0 {
                restore
                continue
        }
        local lcode = code[`i']
        local lyr = yr[`i']
        local lind = ind[`i']
        local lta = ta[`i']
        quietly drop in `i'       // 删除自身
        quietly keep if ind == "`lind'"
        quietly keep if yr == `lyr'
        gen taratio = abs(ta / `lta' - 1)
        quietly keep if taratio <= 0.3                  // 将条件分成四句keep if ,有助于加快程序
        if _N < 1 {                // 若没有公司满足条件,则直接进入下一循环
                restore
                continue
        }
        sort taratio
        local mcode = code[1]                // 若有多个公司满足条件,则用盈利能力最接近的公司
        local j = `j' + 1
        post match (`j') (`lcode') (`lyr') (0)
        post match (`j') (`mcode') (`lyr') (1)
        restore
}
postclose match


二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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