【发布时间】:2021-06-06 02:46:34
【问题描述】:
我正在尝试使用 MatchIt 为我的面板数据执行倾向得分匹配 (PSM)。数据是面板数据,包含来自同一组公司的多年观察结果。
数据基本上是描述债券数据列表及其发行人的财务数据,以及发行日期、票面利率、期限、债券类型等债券条款。例如:
| Firmnames | Year | ROA | Bond_type |
|---|---|---|---|
| AAPL US Equity | 2015 | 0.3 | 0 |
| AAPL US Equity | 2015 | 0.3 | 1 |
| AAPL US Equity | 2016 | 0.3 | 0 |
| AAPL US Equity | 2017 | 0.3 | 0 |
| C US Equity | 2015 | 0.3 | 0 |
| C US Equity | 2016 | 0.3 | 0 |
| C US Equity | 2017 | 0.3 | 0 |
......
我已经知道如何根据我想要的标准匹配观察结果,我使用exact = Year 来确保我匹配同一年的观察结果。我现在面临的问题是来自同一家公司的观察将被匹配在一起,这不是我想要的。我使用的代码:
matchit(Bond_type ~ Year + Amount_Issued + Cpn + Total_Assets_bf + AssetsEquityRatio_bf + Asset_Turnover_bf, data = rdata, method = "nearest", distance = "glm", exact = "Year")
但是,如您所见,在我的样本的第二个原始样本中,由于我的研究性质,同一家公司一年内可能会有两次观察(该公司一年可以发行多次债券) .它们之间的唯一区别是 Bond_type。因此,MathcIt 函数当然会将它们视为最佳对照组和治疗组,并将这两个观察值匹配在一起,因为它们在当年具有相同的 ROA 和其他匹配因子。
我认为有两种方法可以解决这个问题:
-
删除同一年份和同一公司的观察结果,但是,删除观察结果可能会导致结果出现偏差并破坏研究。
-
防止
MatchIt函数与来自同一公司(或具有相同Frimnames)的观察结果相匹配
第二种方法会更好,因为它不会导致偏差,但是,我不知道我是否可以在MatchIt 函数中做到这一点。希望有人可以给我一些建议,或者也许有更好的解决方案,请与我分享,提前谢谢!
注意:如果我应该提供任何进一步的信息或要求,请告诉我。这是我第一次在这里提出问题!
【问题讨论】:
标签: r panel-data propensity-score-matching