2016-09-18 29 views
2

我試圖在R中運行固定效應迴歸模型。我想控制變量C和D中的異質性(都不是時間變量)。在R中的固定效應:plm vs lm +因子()

我嘗試以下兩種方法:

1)使用PLM包:給我以下錯誤消息

formula = Y ~ A + B + C + D 

reg = plm(formula, data= data, index=c('C','D'), method = 'within') 

duplicate couples (time-id)Error in pdim.default(index[[1]], index[[2]]) : 

我還試圖創建第一使用

data_p = pdata.frame(data,index=c('C','D')) 

一個面板但我在兩欄中都重複了觀察。

2)利用率()和LM:效果很好

formula = Y ~ A + B + factor(C) + factor(D) 
reg = lm(formula, data= data) 

是什麼這兩種方法之間的區別?爲什麼plm不適合我?是因爲其中一個指數應該是時間嗎?

+0

plm的錯誤信息非常豐富:只需在網上搜索它(請參閱https://stat.ethz.ch/pipermail/r-help/2010-March/233578.html) – Helix123

+0

爲什麼要包含指數進入公式?如你所說,D不是一個時間變量。你的plm命令對R來說就是C表示個人,D表示時間。我知道,你可能使用其他維度,我們這種情況?此外,這個錯誤是說你有變量C和D形成的重複的id-時間對。你應該唯一地識別這些觀察值。 –

回答

3

該錯誤是說你有反覆的變量形成ID時對C和D.

比方說,你有第三個變量F爲C共同它一直在個人從另一個(或你的第一個維度不同,不管是什麼)。然後用dplyr您可以創建一個獨特的指數之,說id

data.frame$id <- data.frame %>% group_indices(C, F) 

PLM中索引參數變得index = c(id, D)

lm + factor()是一個解決方案,以防萬一您有獨特的觀察。如果不是這種情況,那麼它不會在每個ID內適當地加權結果,也就是說,固定效果沒有被正確識別。