我正在使用包plm
估算面板模型。
面板中的一些个体没有所有解释变量的数据,因此它们被排除在回归之外。
我怎么能看到哪些特定的观察结果用于估算?
在Stata中,通常的命令是e(sample)
。 R中的等价物是什么?
答案 0 :(得分:1)
用于模型的数据存储在plm
函数返回的列表中。该列表包含几个元素,其中一个元素名为model
。这就是存储用于模型的数据的位置。以下是基于plm
的帮助的示例:
library(plm)
data("Produc")
我们将Produc$pcap
的前20个值设置为NA
(缺少数据):
Produc$pcap[1:20] = NA
现在我们将使用plm
创建Produc
模型:
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, index = c("state","year"))
zz
是一个包含plm
函数返回的信息的列表。您可以运行str(zz)
查看zz
包含的内容。用于模型的数据存储在zz$model
中。您可以通过从21开始的rownames看到缺少前20行,因为这些是我们将Produc$pcap
设置为NA
的行。
head(zz$model) # You can also do: head(zz[["model"]])
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
如果要选择模型中使用的数据框的行,可以使用zz$model
的rownames作为子集化的索引:
Produc[rownames(zz$model), ]
Produc[complete.cases(Produc), ]
将仅返回数据框的那些行,而不会丢失任何数据。但请注意,如果数据框中有列缺少数据,但未在模型公式中使用,那么这种方法通常会排除模型中使用的某些数据行(例外情况是模型中未使用的列中的缺失数据始终伴随着模型中使用的列中缺少数据的相同行。