【问题标题】:Panel-Corrected Standard Error Estimation (pcse) model with unbalanced data具有不平衡数据的面板校正标准误差估计 (pcse) 模型
【发布时间】:2020-02-12 12:28:11
【问题描述】:

我有一个 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

因此,对于某些公司,我在过去几年(1950-54 年)的因变量 (inv) 上存在缺失值。

为了计算我的情况,我首先估计线性模型。我出于理论上的原因使用滞后。

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.

有人知道我该如何解决这个问题吗?

非常感谢您的帮助

【问题讨论】:

    标签: r linear-regression panel


    【解决方案1】:

    我从来没有能够让这个包在包含的演示之外工作——但是 我以前解决过这个问题(只是遇到一个新问题!)。

    您的错误可能是由于“使用数据”不包括lm() 省略的观察结果,但您的 groupN 和 T 向量包含(因为它们是从完整数据表中提取的,缺少数据等) .

    我过去所做的是运行模型,使用model.frame() 提取“使用数据”,然后使用新的数据框运行lm()pcse()。类似于以下内容:

    lm <- lm(inv ~ lag(value,k=1)+ lag(capital, k = 1) + as.factor(year) + as.factor(firm), data = Grunfeld)
    
    dfPCSE <- model.frame(lm)
    
    lm <- lm(inv ~ lag(value,k=1)+ lag(capital, k = 1) + as.factor(year) + as.factor(firm), data = dfPCSE)
    
    lm.pcse <- pcse(lm, groupN=dfPCSE$firm, groupT=dfPCSE$year,
                     pairwise=TRUE)
    

    【讨论】:

    • 欢迎来到 StackOverflow。感谢您抽出宝贵时间为这个问题做出贡献。如果您有相关问题,请点击 按钮进行提问。包含指向此问题的链接以帮助提供上下文。
    【解决方案2】:

    我曾经遇到过这个问题。使用 na.omit 删除数据集中的缺失值。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2014-05-02
    • 2021-02-28
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多