stata采用psmatch2后保留匹配好的样本,1:3为例

stata采用psmatch2后保留匹配好的样本,1:3为例
命令感谢师弟运臻

匹配分为有放回和无放回,下面的例子是有放回的,如果采用无放回的方法values(2)就可以了,且不需要最后一步(expandcl。。。)

ssc install psmatch2
安装外部命令psmatch2
sysuse auto
使用系统自带数据集auto
psmatch2 foreign headroom, out (price) neighbor(3) logit
匹配
查看数据
gen pair1=_id if _treated==0

保留对照组的_id
replace pair1=_n1 if _treated==1

保留实验组的_id
在pair1中_n1和_id相同的值就是匹配了的记录
例如:第1行pair1为36,54、55、58、59、60等均是36,说明treat组中的这些记录都和untreat中的
第1行数据匹配

gen pair2=_id if _treated==0

replace pair2=_n2 if _treated==1

gen pair3=_id if _treated==0

replace pair3=_n3 if _treated==1

bysort pair1: egen paircount1=count(pair1)
bysort pair2: egen paircount2=count(pair2)
bysort pair3: egen paircount3=count(pair3)

egen byte paircount_z=anycount(paircount1 paircount2 paircount3), values(2/11)

找到最多的匹配数,这里是11次

drop if paircount_z==0

expandcl paircount_z ,gen(paircount_z_tnew) cluster(make)

这样有放回的匹配好的数据集就全部得到了

你可能感兴趣的:(stata,pscore)