Python Pandas差异的差异
我正在尝试使用Python和Pandas执行Difference in Differences(使用面板数据和固定效果)分析.我没有经济学背景,我只是想过滤数据并运行我被告知的方法.但是,据我所知,我明白基本的diff-in-diffs模型如下所示: 即,我正在处理一个多变量模型. 下面是R中的一个简单示例: https://thetarzan.wordpress.com/2011/06/20/differences-in-differences-estimation-in-r-and-stata/ 可以看出,回归将一个因变量和树组观察值作为输入. 我的输入数据如下所示:
通过一些研究,我发现这是使用Pandas的固定效果和面板数据的方法: Fixed effect in Pandas or Statsmodels 我执行了一些转换来获取多索引数据:
但是,我没有得到如何将所有这些变量传递给模型,例如可以在R中完成:
这里,13,14,15代表2013年,2014年,2015年的数据,我认为应该用于创建一个小组.
这就是结果: 有人告诉我(经济学家)这似乎没有固定效应. – 编辑 – 我想验证的是,考虑到时间,许可数量对得分的影响.许可证的数量是治疗,这是一种强化治疗. 可在此处找到代码示例:https://www.dropbox.com/sh/ped312ur604357r/AACQGloHDAy8I2C6HITFzjqza?dl=0. 最佳答案
似乎你需要的不是差异(DD)回归的差异.当您可以区分对照组和治疗组时,DD回归是相关的.一个标准的简化例子是对医学的评估.你把一群病人分成两组.其中一半没有得到任何结果:他们是对照组.另一半给予药物:他们是治疗组.从本质上讲,DD回归将捕获这样一个事实,即药物的实际效果不能直接衡量给予药物的人数是多少健康.直觉上,你想知道这些人是否比那些没有服用任何药物的人做得更好.这个结果可以通过添加另一个类别来改进:一个安慰剂,即给予看起来像药物但实际上不是……的东西的人,但这又是一个明确定义的组.最后但并非最不重要的是,要使DD回归真正合适,您需要确保组不是异构的,这可能会导致结果偏差.如果治疗组仅包括年轻且超级健康的人(因此一般更容易愈合),而对照组是一群老酗酒者,那么你的药检的情况就会很糟糕……
在你的情况下,如果我没有弄错的话,每个人都会在某种程度上受到“待遇”……所以你更接近一个标准的回归框架,在那里测量X对Y的影响(例如工资的智商).我知道你想衡量许可证数量对分数的影响(或者是另一种方式?-_-),你有经典的内生性来处理,即如果彼得比保罗更熟练,他会通常获得更多许可和更高的分数.所以你真正想要使用的是这样一个事实:随着时间的推移,相同的技能水平,彼得(分别是保罗)将被“给予”不同级别的许可证多年……而且你真的会衡量许可证的影响力得分…… 我可能不会猜测,但我想坚持这样一个事实,即如果你没有付出足够的努力来理解/解释数据中发生了什么,有很多方法可以获得有偏见的,因此毫无意义的结果.关于技术细节,您的估计只有年固定效应(可能没有估计,但通过贬值考虑,因此未在输出中返回),因此您要做的是添加entity_effects = True.如果你想更进一步……我担心到目前为止,任何Python软件包中都没有很好地涵盖面板数据回归,(如果是计量经济学的参考,则包括statsmodels),所以如果你不愿意投资……我宁可建议使用R或Stata.同时,如果你需要一个固定效应回归,你也可以使用statsmodels(如果需要也允许聚类标准错误……):
关于计量经济学,您可能会获得更多/更好的Cross Validated答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |