2017-05-26 24 views
1

私は現在plmパッケージに慣れようとしていますが、plm()関数でlm()関数を使用して個々のエフェクトを使って固定エフェクトを作成しようとしています。関数。私はlm()回帰の各個体Nにダミー変数を含めると、plm()回帰の結果のみを再現できることが分かりました。私が知る限り、回帰だけに常にN-1個のダミー変数が含まれていなければなりません。誰もplmが個々の固定効果をどのように処理するか知っていますか?時間固定効果btwについても同じことが当てはまります。plmパッケージは固定効果をどのように扱いますか?

################################################################################ 
## Fixed Effects Estimation with plm() and lm() with individual effects 
################################################################################ 
# Prepare R sheet 
library(plm) 
library(dplyr) 

################################################################################ 
# Get data 
data<-read.csv("http://people.stern.nyu.edu/wgreene/Econometrics/grunfeld.csv") 
class(data) 
data.tbl<-as.tbl(data) 
#I = Investment 
#F = Real Value of the Firm 
#C = Real Value of the Firm's Capital Stock 
################################################################################ 
# create firm (individual) dummies 
firmdum<-rbind(matrix(rep(c(1,0,0,0,0,0,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,1,0,0,0,0,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,1,0,0,0,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,1,0,0,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,1,0,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,0,1,0,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,0,0,1,0,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,0,0,0,1,0,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,0,0,0,0,1,0),20),ncol = 10,byrow = T), 
      matrix(rep(c(0,0,0,0,0,0,0,0,0,1),20),ncol = 10,byrow = T) 
) 
colnames(firmdum)<-paste("firm",c(1:10),sep = "") 
firmdum.tbl<-tbl_df(firmdum) 
firmdum.tbl<-sapply(firmdum.tbl, as.integer) 

############################################################################################### 
# Estimation with individual fixed effects (plm) 
dataset<-tbl_df(cbind(data.tbl,firmdum.tbl)) 
est1<- plm(I ~ F + C, data = dataset, model = "within", effect = "individual") 
summary(est1) 
plot(residuals(est1)) 

# Replication with lm 
individualeffects<-tbl_df(cbind(data.tbl,firmdum.tbl)) 
est2<-lm(I ~ . -1 -FIRM -YEAR, individualeffects) 
summary(est2) 
plot(residuals(est2)) 

# Now exclude 1 dummy (as should be done in fixed effects) 
individualeffects<-tbl_df(cbind(data.tbl,firmdum.tbl)) 
est3<-lm(I ~ . -1 -FIRM -YEAR -firm1, individualeffects) 
summary(est3) 
plot(residuals(est3)) 

差が限界であるが、それは興味深いものになるだろう。ここでは

は私のコードは、(同様のPLMパッケージに含まれる)、むしろ不器用なダミー変数の作成を言い訳してくださいグリュンワルド1958からのサンプルデータを使用していますPLM関数が固定効果をどのように処理するかを知ることができます。私は、1年と1つの個人のダミーを除いたlm()パッケージで修正された効果の推定を行ったときに発生しなかったモデルの実行テストに問題が発生しました。 私は何か助けや勧告に感謝します!

答えて

1

3つ目の見積もり(est3)では、1つのダミーを除き、インターセプトを除外すると異なる結果が得られます。 1つのダミー(n-1ダミーを取る)の練習は、変数が線形依存になるとモデルに切片があるときに意味があります(すべてのダミー列を追加すると、すべての1の列、つまり切片が得られます)。何の切片が存在しない場合は、モデル内のすべてのあなたのダミーをしたい:

est4 <- lm(I ~ . -1 -FIRM -YEAR, individualeffects) 
summary(est4) 

この(est4)samesがplm()アプローチとして見積もっています。ところで

est5 <- lm(I ~ F + C + factor(FIRM), data = individualeffects) 
summary(est5) 

[...] 

Coefficients: 
       Estimate Std. Error t value Pr(>|t|)  
(Intercept)  -70.29672 49.70796 -1.414 0.159  
F     0.11012 0.01186 9.288 < 2e-16 *** 
C     0.31007 0.01735 17.867 < 2e-16 *** 
factor(FIRM)2 172.20253 31.16126 5.526 1.08e-07 *** 
factor(FIRM)3 -165.27512 31.77556 -5.201 5.14e-07 *** 
factor(FIRM)4 42.48742 43.90988 0.968 0.334  
factor(FIRM)5 -44.32010 50.49226 -0.878 0.381  
factor(FIRM)6 47.13542 46.81068 1.007 0.315  
factor(FIRM)7  3.74324 50.56493 0.074 0.941  
factor(FIRM)8 12.75106 44.05263 0.289 0.773  
factor(FIRM)9 -16.92555 48.45327 -0.349 0.727  
factor(FIRM)10 63.72887 50.33023 1.266 0.207  
[...] 

お知らせ:何factor(FIRM)1はありませんダミーの係数を使用して、あなたのために作成させることが容易です。

あなたが頼んだ返答の多くは、あなたはまたplmパッケージでこれがどのように扱われているのかを尋ねました。ダミー変数を導入するのではなく、個人ごとのデータを無効にすることで、これは同等です(afaikはFrisch-Waugh-Lovell定理です)。

関連する問題