我正在尝试结合对数模型的因变量的拟合值。我的数据集是一个不平衡的面板。我尝试按照此处所示的方式进行操作。但我的问题不同,因为我已经将我的大数据集转换为 plm 对象,它是一个日志因变量。
我的简单数据集可以通过以下代码访问。
dat = structure(list(Time = structure(c(9L, 7L, 15L, 1L, 17L, 13L,
11L, 3L, 23L, 21L, 19L, 5L, 10L, 8L, 16L, 2L, 18L, 14L, 12L,
4L, 24L, 22L, 20L, 6L), .Label = c("Apr-00", "Apr-01", "Aug-00",
"Aug-01", "Dec-00", "Dec-01", "Feb-00", "Feb-01", "Jan-00", "Jan-01",
"Jul-00", "Jul-01", "Jun-00", "Jun-01", "Mar-00", "Mar-01", "May-00",
"May-01", "Nov-00", "Nov-01", "Oct-00", "Oct-01", "Sep-00", "Sep-01"
), class = "factor"), Firm = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L), .Label = c("A", "B"), class = "factor"), Out = c(161521L,
142452L, 365697L, 355789L, 376843L, 258762L, 255447L, 188545L,
213663L, 273209L, 317468L, 238668L, 241286L, 135288L, 363609L,
318472L, 446279L, 390230L, 118945L, 174887L, 183770L, 197832L,
317468L, 238668L), Lab = c(261L, 334L, 156L, 134L, 159L, 119L,
41L, 247L, 251L, 62L, 525L, 217L, 298L, 109L, 7L, NA, 0L, 50L,
143L, 85L, 80L, 214L, 525L, 217L), Cap = c(13L, 15L, 14L, 12L,
15L, 12L, 45L, 75L, NA, 12L, 15L, 16L, 42L, 45L, 24L, 56L, 12L,
12L, 45L, NA, 15L, 12L, 15L, 16L)), .Names = c("Time", "Firm",
"Out", "Lab", "Cap"), class = "data.frame", row.names = c(NA,
-24L))
我的数据集如下所示,缺少预测变量数据。
+--------+------+--------+------+-----+ | 时间 | 事务所 | 出| 实验室 | 帽 | +--------+------+--------+------+-----+ | 00 年 1 月 | 一个 | 161521 | 261 | 13 | | 2月-00 | 一个 | 142452 | 第334章 15 | | 00 年 3 月 | 一个 | 365697 | 156 | 14 | | 00 年 4 月 | 一个 | 355789 | 134 | 12 | | 00 年 5 月 | 一个 | 376843 | 159 | 15 | | 00 年 6 月 | 一个 | 258762 | 119 | 12 | | 00 年 7 月 | 一个 | 255447 | 41 | 45 | | 00 年 8 月 | 一个 | 188545 | 247 | 75 | | 00 年 9 月 | 一个 | 213663 | 251 | | | 00 年 10 月 | 一个 | 273209 | 62 | 12 | | 11 月 00 日 | 一个 | 317468 | 525 | 15 | | 00 年 12 月 | 一个 | 238668 | 217 | 16 | | Jan-01 | 乙| 241286 | 298 | 42 | | 2月1日 | 乙| 135288 | 109 | 45 | | 01 年 3 月 | 乙| 363609 | 7 | 24 | | 01 年 4 月 | 乙| 318472 | | 56 | | May-01 | 乙| 446279 | 0 | 12 | | Jun-01 | 乙| 390230 | 50 | 12 | | 01 年 7 月 | 乙| 118945 | 143 | 45 | | 01 年 8 月 | 乙| 174887 | 85 | | | 01 年 9 月 | 乙| 183770 | 80 | 15 | | 01 年 10 月 | 乙| 197832 | 214 | 12 | | Nov-01 | 乙| 317468 | 525 | 15 | | 12 月 1 日 | 乙| 238668 | 217 | 16 | +--------+------+--------+------+-----+
我可以使用以下代码获得拟合值
library(zoo)
library(plm)
Sys.setlocale("LC_TIME", "English")
dat["time1"] <- as.yearmon(dat$Time,format="%b-%y")
pdat <-pdata.frame(dat,index=c("Firm","time1"))
Model1<- plm(log(Out) ~ lag(log(Cap), 1) + log(Lab + 1),
model = "within", data=pdat)
summary(Model1)
library(data.table)
FV_Log <- data.table(Model1$model[[1]] - Model1$residuals)
但是 pdat 的观察是 24 个观察 FV_Log 是 19 个观察,所以我无法将它合并到 pdat。我的 pdat 很大,有数千个观察结果,我使用代码创建了许多变量。因此,任何有助于将拟合值正确地(不更改顺序)合并到原始 pdat 中的帮助将不胜感激。