我有一个面板数据,包括个人多年来的收入,我对个人的收入趋势感兴趣,即多年来收入的个人系数,以及每个人每年的残差(根据我的模型,收入的意外变化) . 但是,我有很多观察结果缺少至少一年或多年的收入数据,因此通过线性回归,我失去了大部分观察结果。数据结构是这样的:
caseid<-c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4)
years<-c(1998,2000,2002,2004,2006,2008,1998,2000,2002,2004,2006,2008,
1998,2000,2002,2004,2006,2008,1998,2000,2002,2004,2006,2008)
income<-c(1100,NA,NA,NA,NA,1300,1500,1900,2000,NA,2200,NA,
NA,NA,NA,NA,NA,NA, 2300,2500,2000,1800,NA, 1900)
df<-data.frame(caseid, years, income)
我决定使用随机效应模型,我认为仍然可以通过使用最大似然法来预测缺失年份的收入。然而,由于豪斯曼检验给出了显着的结果,我决定使用固定效应模型。我使用 plm 包运行了下面的代码:
inc.fe<-plm(income~years, data=df, model="within", effect="individual")
但是,我只得到多年的系数,而不是个人的系数;我不能得到残差。也许给出一个想法,Stata中的代码应该是
xtest caseid
xtest income year
predict resid, resid
然后我尝试从同一个库中运行 pvcm 函数,这是一个可变系数的函数。
inc.wi<-pvcm(Income~Year, data=ldf, model="within", effect="individual")
但是,我收到以下错误消息:“FUN(X[[i]], ...) 中的错误:观察次数不足”。
如何通过解决此错误或使用其他函数来获得 pvcm 的单个系数和残差?
我的原始长格式数据有 202976 次观察和 15 年。
我也非常感谢对我选择分析的方法提出任何意见或建议。非常感谢。