获取 R (plm) 中回归所使用的数据观测值

use*_*584 4 regression r plm

我正在估计带有包装的面板模型plm。小组中的一些人没有所有解释变量的数据,因此他们被排除在回归之外。我如何才能看到哪些特定观测值已用于估计?

在 Stata 中常用的命令是e(sample). R 中的等价物是什么?

eip*_*i10 7

用于模型的数据存储在plm函数返回的列表中。该列表包含多个元素,其中之一名为model。这是模型使用的数据的存储位置。这是一个基于帮助的示例plm

library(plm)

data("Produc")
Run Code Online (Sandbox Code Playgroud)

Produc$pcap让我们设置to的前 20 个值NA(缺失数据):

Produc$pcap[1:20] = NA
Run Code Online (Sandbox Code Playgroud)

现在我们将plm使用以下命令创建一个模型Produc

zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
          data = Produc, index = c("state","year"))
Run Code Online (Sandbox Code Playgroud)

zz是包含函数返回的信息的列表plm。你可以运行str(zz)看看zz包含什么。用于模型的数据存储在zz$model. 您可以通过从 21 开始的行名称看到前 20 行丢失,因为这些是我们设置为 的Produc$pcapNA

head(zz$model)  # You can also do: head(zz[["model"]])
Run Code Online (Sandbox Code Playgroud)
   log(gsp) log(pcap)  log(pc) log(emp) unemp
21 10.13634  9.358610 10.21481 6.571583   4.1
22 10.15417  9.403360 10.26915 6.614726   5.6
23 10.12323  9.467233 10.31703 6.591811  12.0
24 10.16743  9.518111 10.28821 6.631606   9.8
25 10.24388  9.559265 10.31137 6.696170   8.2
26 10.34374  9.603196 10.34623 6.797271   6.1
Run Code Online (Sandbox Code Playgroud)

如果要选择模型中使用的数据框的行,可以使用 的行名称zz$model作为子集化的索引:

Produc[rownames(zz$model), ]
Run Code Online (Sandbox Code Playgroud)

Produc[complete.cases(Produc), ]将仅返回数据帧中没有任何丢失数据的行。但请注意,如果数据框中的某些列缺少数据,但模型公式中未使用这些列,则此方法通常会排除模型中仍然使用的某些数据行(例外情况是模型中未使用的列中丢失的数据总是在同一行中伴随着模型中使用的列中的丢失数据)。