【问题标题】:Problems with plm, duplicate time id's errorplm 问题,重复时间 id 的错误
【发布时间】:2016-12-16 14:00:23
【问题描述】:

我正在运行固定效果回归并收到以下错误:

fixed_effects <- plm(GNI ~ lag(GNI) + imposition + ExpImp + democ, 
data = sanctions_data6, index = c("country", "sanctions_period"), model =
"within", effect = "twoways")

duplicate couples (time-id)
Error in pdim.default(index[[1]], index[[2]]) : 

我知道这意味着我有相同的重复时间段 观察。然而,整个观察结果并不重复,因为它们代表了不同类型的制裁。

           country        sanctions_period     sanction_type
             (chr)            (chr)            (int)
1          Afghanistan        1995-2002          4
2          Afghanistan        1995-2002          7
3          Afghanistan        1995-2002          NA

如何解决这个问题并运行回归以查看结果?谢谢!

【问题讨论】:

  • 您检查过以确保没有重复吗?另外,您是否在任何时候使用过plm.data 函数来确保您的数据是plm.data 格式?
  • 我确实检查过,出现的重复项不是整行的重复项,而是因为它们具有不同的制裁类型而有所不同。即使我执行 plm.data,我仍然会收到错误消息
  • 这不是 plm 函数所抱怨的。您的索引是countrysanctions_period,但您可以清楚地看到您在此处显示的所有三行都是彼此重复的。 countrysanctions_period 的组合对于每一行都应该是唯一的。
  • 这是有道理的。有什么建议我可以做些什么来看到随着时间的推移和跨国家的影响?数据集显然比上面所说的要大。
  • 为什么不将sanctions_period 列为一年(例如1995)而不是范围(1995-2002)。然后,您可以使用YearCountry 的组合作为您的id

标签: r error-handling plm


【解决方案1】:

这已在两个不同的帖子中讨论过:

基本上,plm 希望您对每个组都有唯一的时间值。您可以通过简单地通过创建制裁周期 -sanction_type 变量来创建唯一的时间值来欺骗plm

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多