2017-03-22 10 views
1

パッケージplmを使用してパネルモデルを推定しています。 パネルの個人の中には、すべての説明変数のデータがないため、回帰から除外されています。 どのような特定の観測値が推定に使用されたかはどうすればわかりますか?R(plm)の回帰で使用されるデータ観測を取得する

Stataでは、通常のコマンドはe(sample)です。 Rには何がありますか?

+0

おそらく '?complete.cases'が役立つでしょう。 – lmo

答えて

1

モデルに使用されるデータは、plm関数によって返されるリストに格納されます。このリストにはいくつかの要素が含まれており、そのうちの1つはmodelです。モデルに使用されるデータが格納されます。ここでplmのヘルプをもとに例を示します

library(plm) 

data("Produc") 

のはProduc$pcapNAに(欠損データ)の最初の20の値を設定してみましょう:

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は、リターン情報dをplmファンクションで実行します。 str(zz)を実行すると、zzの内容を確認できます。モデルに使用されるデータはzz$modelに格納されます。最初の20行が欠落しているのは、21で始まるrownamesです。これは、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), ]は、欠落するデータがないデータフレームの行のみを返します。ただし、データフレームに欠損データがあるがモデル式で使用されていない列がある場合、このアプローチでは、一般にモデルで使用されていたデータ行の一部が除外されます(ただし、モデルで使用されていない列の欠損データは、モデルで使用されている列のデータが欠落しているため、常に同じ行に付随します。

関連する問題