楼主: yulong0418
1602 0

[编程问题求助] 关于配对样本的程序的问题 [推广有奖]

  • 1关注
  • 2粉丝

已卖:410份资源

博士生

44%

还不是VIP/贵宾

-

威望
0
论坛币
11264 个
通用积分
9.5538
学术水平
4 点
热心指数
6 点
信用等级
5 点
经验
2007 点
帖子
115
精华
0
在线时间
385 小时
注册时间
2012-4-18
最后登录
2025-12-21

楼主
yulong0418 发表于 2013-10-31 16:52:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
筛选配对样本的程序,论坛里面有很多大神都给了解答。

比较有代表性的有:
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


二维码

扫码加我 拉你入群

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

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

关键词:配对样本 continue preserve postfile Quietly 程序 样本

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-1 10:20