在 R 中使用 plm 的没有预测变量的回归模型?

我有一个不平衡面板数据表,其中包含变量 IDyearoutcome。每个 ID 的数据跨度为 2005-2020 年,但每个 ID 不会拥有所有 15 年的数据。这是一个示例:

ID,year,outcome
1,2005,70
1,2006,73
1,2007,2008,68
2,65
2,71
2,64
2,2009,63
3,2011,78
3,2012,81
4,75

我想运行一个plm回归模型没有预测变量(即截距的回归模型)。

我尝试运行以下命令,但收到错误消息“空模型”:

feModel <- plm(damMean ~ 1,data = finalDT,model = "within",index = c("sireID","year"))

# Error in plm.fit(data,model,effect,random.method,random.models,random.dfcor,: 
  empty model

这可以使用 R 中的 plm 包吗?

lijunjiji 回答:在 R 中使用 plm 的没有预测变量的回归模型?

我认为这与其说是一个编程问题,不如说是一个统计问题。此外,我认为这与其说是关于“plm”包本身的功能的问题,不如说是这种模型是否有意义以及对模型内实施的技术估计方法。

模型内的plm(固定效应模型)不包含截距。其他一些统计软件包在其内部模型中具有某种程度的人为拦截(最显着的可能是 Stata,但也有 gretl)。您可能需要查看 ?plm::within_intercept 及其引用的文献,以了解有关模型内截距的更多详细信息。

让我们看看在仅将截距作为内部模型中的回归量的情况下会发生什么:

library("plm")
data("Grunfeld",package = "plm")
pGrun <- pdata.frame(Grunfeld)
plm(inv ~ 1,data = pGrun,model = "within") # errors with "empty model"

pGrun$int <- 1 # intercept
within_int <- Within(pGrun$int) # within transformation of intercept
# -> all zeros:
head(within_int)
##  1-1935 1-1936 1-1937 1-1938 1-1939 1-1940 
##       0      0      0      0      0      0 
all.equal(as.numeric(within_int),rep(0,200L),check.attributes = FALSE)
##  TRUE

截距的内变换全为零,因此 plm 关于空模型的错误消息是正常的。 gretl 是一个具有模型内截距的计量经济学包,输出对这种仅截距模型的估计:

             coefficient   std. error   t-ratio    p-value 
  ---------------------------------------------------------
  const        145.958      7.68517      18.99    8.85e-046 ***

这个值是多少?这是因变量的均值

mean(pGrun$inv)
##   145.9582

或者,如果您想通过使用 plm 的模型估计得出该均值,您可以仅使用截距估计 "pooling" 模型:

plm(inv ~ 1,model = "pooling")
##  Model Formula: inv ~ 1

##  Coefficients:
##  (Intercept) 
##       145.96 
本文链接:https://www.f2er.com/80116.html

大家都在问