【发布时间】:2017-08-15 06:34:35
【问题描述】:
我正在估计一个带有 plm 包的面板模型。
面板中的一些个体没有所有解释变量的数据,因此它们被排除在回归之外。
我如何才能看到哪些特定的观察结果已用于估计?
在 Stata 中,通常的命令是 e(sample)。 R中的等价物是什么?
【问题讨论】:
-
也许
?complete.cases会有所帮助。
标签: r regression plm
我正在估计一个带有 plm 包的面板模型。
面板中的一些个体没有所有解释变量的数据,因此它们被排除在回归之外。
我如何才能看到哪些特定的观察结果已用于估计?
在 Stata 中,通常的命令是 e(sample)。 R中的等价物是什么?
【问题讨论】:
?complete.cases 会有所帮助。
标签: r regression plm
用于模型的数据存储在plm 函数返回的列表中。该列表包含几个元素,其中之一名为model。那是存储用于模型的数据的地方。这是一个基于plm 帮助的示例:
library(plm)
data("Produc")
让我们将Produc$pcap的前20个值设置为NA(缺失数据):
Produc$pcap[1:20] = NA
现在我们将使用Produc 创建一个plm 模型:
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 开始的行名看到前 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 的行名作为子集的索引:
Produc[rownames(zz$model), ]
Produc[complete.cases(Produc), ] 将仅返回数据框中的那些行,而不会丢失任何数据。但请注意,如果您的数据框中的某些列缺少数据,但模型公式中没有使用,那么这种方法通常会排除模型中仍然使用的一些数据行(例外情况是模型中未使用的列中的缺失数据总是伴随着模型中使用的列中的缺失数据出现在同一行中。
【讨论】: