我在设置面板数据模型时遇到问题。
以下是一些示例数据:
library(plm)
id <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2)
year <- c(1999,1999,1999,1999,2000,2000,2000,2000,1999,1999,1999,1999,2000,2000,2000,2000)
qtr <- c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)
y <- rnorm(16, mean=0, sd=1)
x <- rnorm(16, mean=0, sd=1)
data <- data.frame(id=id,year=year,qtr=qtr,y_q=paste(year,qtr,sep="_"),y=y,x=x)
我运行以下回归,使用'id'作为单个索引,'year'作为时间索引:
reg1 <- plm(y ~ x, data=data,index=c("id", "year"), model="within",effect="time")
不幸的是,我收到以下错误:
重复的夫妻(time-id)pdim.default(index [[1]],index [[2]]中的错误:
因此,为了解决这个问题,我使用了'y_q'的组合变量:
reg1 <- plm(y ~ x, data=data,index=c("id", "y_q"), model="within",effect="time")
但这是我的问题 - 我只想要一年固定效果,而不是一年四季。
是否有另一种方法可以解决早期问题,而不是将关系指数设为'y_q'?
提前感谢您的帮助!
答案 0 :(得分:3)
在面板设置中,您通常不会为每对偶像年份提供一些重复值。
在您的季度数据中,很难计算出一年的固定效应模型,而不会汇总您的数据以使其每年生成。
查看示例here,了解如何为面板数据建模设置数据格式。
以下是这样做的:
require(plyr)
yeardata <- ddply(data, .(year, id), summarize, y = mean(y),
x = mean(x))
require(plm)
reg1 <- plm(y ~ x, data = yeardata, index = c("id", "year"), model = "within", effect = "time")
fixef(reg1)
## 1999 2000
## 0.2641997 0.0041193