В течение 28 лет у меня есть несбалансированная панель из 108 стран, и я пытаюсь оценить модель с исправленными панелями стандартными ошибками. Но мои попытки терпят неудачу, потому что я получаю следующее сообщение об ошибке: Error in pcse(lm, groupN = data$id, groupT = data$time, pairwise = TRUE): Length of groupN and groupT must equal nrows of using data.
Мой набор данных выглядит примерно так:
library(plm)
data(Grunfeld)
setDT(Grunfeld)[firm %in%c(1,4,7,9) & year>=1950,inv:=NA] # creating unbalanced data
head(Grunfeld,20)
# firm year inv value capital
# 1: 1 1935 317.6 3078.5 2.8
# 2: 1 1936 391.8 4661.7 52.6
# 3: 1 1937 410.6 5387.1 156.9
# 4: 1 1938 257.7 2792.2 209.2
# 5: 1 1939 330.8 4313.2 203.4
# ....
# 15: 1 1949 555.1 3700.2 1020.1
# 16: 1 1950 NA 3755.6 1099.0
# 17: 1 1951 NA 4833.0 1207.7
# 18: 1 1952 NA 4924.9 1430.5
# 19: 1 1953 NA 6241.7 1777.3
# 20: 1 1954 NA 5593.6 2226.3
В связи с тем, что для некоторых фирм у меня отсутствуют значения в моем зависимая переменная (inv) для нескольких последних лет (1950-54).
Для расчета моего случая я сначала оцениваю линейную модель. Я использую лаги по теоретическим причинам.
lm<- lm(inv ~ lag(value,k=1)+ lag(capital, k = 1) + as.factor(year) + as.factor(firm), data = Grunfeld)
summary(lm)
И затем я пытаюсь добавить стандартные ошибки, исправленные на панели, однако при запуске команды появляется сообщение об ошибке.
lm.pcse <- pcse(lm, groupN=Grunfeld$firm, groupT=Grunfeld$year,
pairwise=TRUE)
#Error in pcse(lm, groupN = Grunfeld$firm, groupT = Grunfeld$year, #pairwise = TRUE) :
# Length of groupN and groupT must equal nrows of using data.
Кто-нибудь знает, как я могу go об этой проблеме?
большое спасибо за вашу помощь