繁体   English   中英

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

[英]Regression model without predictors using plm in R?

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

ID, year, outcome
1, 2005, 70
1, 2006, 73
1, 2007, 70
1, 2008, 68
2, 2005, 65
2, 2006, 71
2, 2007, 68
2, 2008, 64
2, 2009, 63
3, 2011, 78
3, 2012, 81
4, 2008, 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包吗?

我认为这与其说是一个编程问题,不如说是一个统计问题。 此外,我认为这不是关于包“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, data = pGrun, model = "pooling")
##  Model Formula: inv ~ 1

##  Coefficients:
##  (Intercept) 
##       145.96 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM