用R进行面板数据(Panel Data)分析
library(foreign) library(plm)
BankData <- read.dta("http://www.obhrm.net/data/franzese.dta", convert.factors=FALSE)
olsmodel2 <- lm(inf ~ cbilag1 + glag1 + tlag1 + flag1 + infalag1 + ulag1 + cwb, data=BankData, na.action=na.omit) summary(olsmodel2)
pdim(BankData, index=c("ctry", "year"))
- Fixed effects model
pmodel4 <- plm(inf ~ cbilag1 + glag1 + tlag1 + flag1 + infalag1 + ulag1 + cwb, data=BankData, index=c("ctry", "year"), na.action=na.omit, model="within") summary(pmodel4)
- F test for fixed effects
pFtest(pmodel4,olsmodel2)
- Random effects model
pmodel5 <- plm(inf ~ cbilag1 + glag1 + tlag1 + flag1 + infalag1 + ulag1 + cwb, data=BankData, index=c("ctry", "year"), na.action=na.omit, model="random")
- Crash because of negative estimated variance of individual effects
- Use different method of calculating variance of random effects
- random.method options only work on balanced panels
pmodel5 <- plm(inf ~ cbilag1 + glag1 + tlag1 + flag1 + infalag1 + ulag1 + cwb, data=BankData, index=c("ctry", "year"), na.action=na.omit, model="random", random.method="walhus") summary(pmodel5)
- Breusch-Pagan test
plmtest(pmodel5, effect="individual", type="bp")
- Hausman test
phtest(pmodel4, pmodel5)
代码来源:http://www.polsci.ucsb.edu/faculty/glasgow/ps207/ps207_class1.r