楼主: xueyuan456
51603 88

[数据管理求助] 求助:选分组配对用循环语句OR PSMATCH2?   [推广有奖]

11
无尘第二 发表于 2012-3-12 16:57:35 |只看作者 |坛友微信交流群
数据为附件match2

match2.rar

8.72 KB

本附件包括:

  • match2.dta

使用道具

12
sungmoo 发表于 2012-3-14 07:52:42 |只看作者 |坛友微信交流群
现对数据稍作修改,把roa变成绝对值,其余不变(数据为附件的match2),要求为“针对其中sp=1的公司,寻找sp=0,且同ind,同daq,roa最接近的样本(配对样本不能重复)”。
*原先的程序基本不变,只去掉变量year即可。另外,若配对样本观测值有多个,只取stkcd最小的那个。
use match2,clear
bys year ind daq sp (stkcd): g exp=_n if sp
bys year ind daq: egen s=max(exp)
drop if s==.
expandcl s if !sp,cl(year stkcd) gen(g)
bys year stkcd: replace exp=_n if !sp
bys year ind daq exp: egen r=sum(roa*sp)
g q=abs((roa-r)/r) if !sp
bys year ind daq exp: egen u=min(q) if !sp
drop if u!=q&!sp
egen mat=group(year ind daq exp)

bys mat sp (stkcd): replace exp=_n
drop if exp>1

drop exp-u

使用道具

13
无尘第二 发表于 2012-3-14 22:33:37 |只看作者 |坛友微信交流群
配对样本(即sp=0)不能重复的话,还要"expand cl s,cl(stkcd) gen(g)"干吗呢?这个命令不就是针对sp=1的样本比sp=0的样本还多的情形吗?

使用道具

14
sungmoo 发表于 2012-3-15 06:23:05 |只看作者 |坛友微信交流群
还要"expand cl s,cl(stkcd) gen(g)"干吗呢?
注意这里变量s的意义。

使用道具

15
无尘第二 发表于 2012-3-15 22:36:30 |只看作者 |坛友微信交流群
谢谢sungmoo。是这样的,输入命令“ duplicates report stkcd”,会发现配对样本有很多重复的:

Duplicates in terms of stkcd

--------------------------------------
   copies | observations       surplus
----------+---------------------------
        1 |          151             0
        2 |           38            19
        3 |            3             2
        4 |           12             9
        5 |            5             4
--------------------------------------
我前面指出条件有“配对样本(即sp=0)的不能重复”,如果重复,则删除sp=1的样本。

使用道具

16
sungmoo 发表于 2012-3-15 23:02:16 |只看作者 |坛友微信交流群
无尘第二 发表于 2012-3-15 22:36
谢谢sungmoo。是这样的,输入命令“ duplicates report stkcd”,会发现配对样本有很多重复的:

Duplica ...
“duplicates report stkcd”
这步是在什么时候执行?是在打开数据库之后立即执行吗?

使用道具

17
无尘第二 发表于 2012-3-18 22:08:55 |只看作者 |坛友微信交流群
不是打开数据库match1后立即执行。是跑完您给出的程序,完成配对之后。查看有无sp=0的配对样本重复,以及重复了多少个时用的这个命令。

使用道具

18
sungmoo 发表于 2012-3-18 23:34:35 |只看作者 |坛友微信交流群
不是打开数据库match1后立即执行。是跑完您给出的程序,完成配对之后。查看有无sp=0的配对样本重复,以及重复了多少个时用的这个命令。
*个人以为,看是否重复。应用(看mat的各值的频数是否超过2):
ta mat

使用道具

19
无尘第二 发表于 2012-3-19 23:18:59 |只看作者 |坛友微信交流群
非常感谢sungmoo的耐心、细心解答!

使用道具

20
无尘第二 发表于 2012-3-22 23:45:32 |只看作者 |坛友微信交流群
sungmoo好!当year不是唯一时,上述程序运行遇到下列问题:
“expandcl s,cl(stkcd) gen(g)
expression is not constant within clusters
r(198);”
数据见附件match3.dta。
捣腾了好久,解决不了。。。。。。。

match3.rar

27.96 KB

本附件包括:

  • match3.dta

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 17:57