帖子缘由:被新的通用积分规则卡住了。
正文
数据特征:DID时,treatment group成员政策起效或遇到shock时间不一致。
试过:当时能找到的stata的各种方法,包括海外的那些package。
挑战:
1、stata不能个性化修改(用惯了python难以适应stata,但stata直接产生论文格式的表格输出,很棒),各种对应的stata包(没再查具体叫什么名字了)或者不能很好解决问题,或者就是报错(又看不到源码,无法排查)。
2、我做的研究,PSM阶段的上升(1,2,3,4)和下降(4,3,2,1)虽然均值都是5,但反应的趋势完全不同,所以,不能直接用平均值的思路来考虑PSM。
解决:新的R的package,PanelMatch
解释原理的论文原文:https://imai.fas.harvard.edu/research/files/tscs.pdf
Kosuke Imai Harvard University
In Song Kim Massachusetts Institute of Technology
Erik H. Wang Australian National University
作者看着都是名校的,假定研究水平不差。
新挑战:
1、我不会R,重新学了一遍初级,还是不习惯,但有python基础,容易点。想到stata不能看源码,开源的panelmatch总让人好受点。
2、论文和软件作者应该都是大学老师,工作重点不是开发软件。所以,源代码中有些地方写的不是很容易看懂(我自己水平差,所以对源码可读性期望高)。
3、panelmatch的报错不够友好(可能是我水平差,也可能真是这样)。个人经历:经常报错是A,排查到最后发现是B。被折腾的够呛。
4、panelmatch没有平行趋势检验,但提供了placebo test。能用,不算好用。
发现了一处错误:moderator的源程序有问题。
已经向作者反馈了。也许下一版就改好了。
如果着急用(新版发布之前,发布时间别期望太快,因为作者本职工作不是开发软件),各位可以自己修改源代码。
我重新写了这段程序,需要的可以去自己改。这段程序参见这里:Fix panelmatch moderator error #108
位置在:https://github.com/insongkim/PanelMatch/issues/108
提醒:并不是直接copy在你的程序中就能用。程序模块调用的可能还是源程序中的定义,你需要修改源程序。怎么改的我忘了,反正折腾了一番。
补充:今天刚发现2022年10月作者更新了pdf(我当时看的是June 26, 2022的版本),不确定moderator问题是否已经修改了。后续有发现作者已经更新了那里的读者可以说一声。这样大家就不用自己动手修改了。
论坛版主:PanelMatch应该是新开的处理政策起效时间不一致的PSMDID的方法。可否多发点通用积分之类的鼓励原创?