R 中的 Waldtest 使用 plm 调整 F 统计量并使用 stargazer 显示结果?
Waldtest in R to get adjust F statistic with plm and result shown with stargazer?
我正在使用不平衡的短面板。
原始数据:bankFull.xlsx
我真正想要的只是得到具有两个固定效应和稳健 S.E 报告的回归结果,这在 Stata 中非常容易。我遵循了在线教程,但 运行 总是遇到一些问题
# Adjust F statistic
wald_results <- waldtest(FE1, vcov = cov1)
Error in model.matrix.pFormula(formula, data, rhs = 1, model = model, :
NA in the individual index variable
不管我怎么调数据!这几乎让我发疯。
这是我的代码:
bankFull <- openxlsx::read.xlsx("bankFull.xlsx",1)
attach(bankFull)
library(plm)
FE1 = plm( RoA ~
log(1+degreeNW)+
ln_assets+
log(no_of_board_members/staffNo)+
log(no_of_branch_covered_city)+
log(operation_year)+
`RoA-1`+
log(staffNo),
data = bankFull, index = c("name","year"),
effect="twoways",na.action = na.omit,
model= "within")
# robust S.E.-----------
library(sandwich)
library(lmtest) # waldtest; see also coeftest.
library(stargazer)
# Adjust standard errors
cov1 <- vcovHC(FE1, type = "HC1")
robust_se <- sqrt(diag(cov1))
# Adjust F statistic
wald_results <- waldtest(FE1, vcov = cov1)
# show results. how can I get the F value?
stargazer(FE1, FE1, type = "text",
se = list(NULL, robust_se),
omit.stat = "f")
其次,如代码所示,我使用stargazer来演示结果。我还需要调整后的 F 值显示在 table 中。套餐中有没有我可以使用的选项?
编辑:根据 plm 的 CRAN 版本 1.6-4 更新信息
使用 plm
的 CRAN 版本 1.6-4 通过函数 pwaldtest
支持对您的模型进行稳健的 F 检验(此函数在开发版本中被称为 Ftest
,但在CRAN 发布)。
示例:
data("Grunfeld", package = "plm")
mod_fe <- plm(inv ~ value + capital, data = Grunfeld, model = "within")
plm::pwaldtest(mod_fe, test = "F")
# with robust vcov
plm::pwaldtest(mod_fe, test = "F", vcov = vcovHC(mod_fe))
plm::pwaldtest(mod_fe, test = "F", vcov = function(x) vcovHC(x, type = "HC3"))
summary(mod_fe, vcov = vcovHC)
要提供稳健的值(稳健的标准误差、t 和 p 值、F 值关联的 p 值)使用参数
se
、t
、p
并且对于 F 测试只需 stargazer
命令的 add.lines
(并省略默认情况下由 stargazer 生成的 F 统计量)。这是您想要的完整示例:http://jakeruss.com/cheatsheets/stargazer.html(第 "Robust standard errors (replicating Stata’s robust option)" 节)。
我正在使用不平衡的短面板。 原始数据:bankFull.xlsx
我真正想要的只是得到具有两个固定效应和稳健 S.E 报告的回归结果,这在 Stata 中非常容易。我遵循了在线教程,但 运行 总是遇到一些问题
# Adjust F statistic
wald_results <- waldtest(FE1, vcov = cov1)
Error in model.matrix.pFormula(formula, data, rhs = 1, model = model, :
NA in the individual index variable
不管我怎么调数据!这几乎让我发疯。
这是我的代码:
bankFull <- openxlsx::read.xlsx("bankFull.xlsx",1)
attach(bankFull)
library(plm)
FE1 = plm( RoA ~
log(1+degreeNW)+
ln_assets+
log(no_of_board_members/staffNo)+
log(no_of_branch_covered_city)+
log(operation_year)+
`RoA-1`+
log(staffNo),
data = bankFull, index = c("name","year"),
effect="twoways",na.action = na.omit,
model= "within")
# robust S.E.-----------
library(sandwich)
library(lmtest) # waldtest; see also coeftest.
library(stargazer)
# Adjust standard errors
cov1 <- vcovHC(FE1, type = "HC1")
robust_se <- sqrt(diag(cov1))
# Adjust F statistic
wald_results <- waldtest(FE1, vcov = cov1)
# show results. how can I get the F value?
stargazer(FE1, FE1, type = "text",
se = list(NULL, robust_se),
omit.stat = "f")
其次,如代码所示,我使用stargazer来演示结果。我还需要调整后的 F 值显示在 table 中。套餐中有没有我可以使用的选项?
编辑:根据 plm 的 CRAN 版本 1.6-4 更新信息
使用 plm
的 CRAN 版本 1.6-4 通过函数 pwaldtest
支持对您的模型进行稳健的 F 检验(此函数在开发版本中被称为 Ftest
,但在CRAN 发布)。
示例:
data("Grunfeld", package = "plm")
mod_fe <- plm(inv ~ value + capital, data = Grunfeld, model = "within")
plm::pwaldtest(mod_fe, test = "F")
# with robust vcov
plm::pwaldtest(mod_fe, test = "F", vcov = vcovHC(mod_fe))
plm::pwaldtest(mod_fe, test = "F", vcov = function(x) vcovHC(x, type = "HC3"))
summary(mod_fe, vcov = vcovHC)
要提供稳健的值(稳健的标准误差、t 和 p 值、F 值关联的 p 值)使用参数
se
、t
、p
并且对于 F 测试只需 stargazer
命令的 add.lines
(并省略默认情况下由 stargazer 生成的 F 统计量)。这是您想要的完整示例:http://jakeruss.com/cheatsheets/stargazer.html(第 "Robust standard errors (replicating Stata’s robust option)" 节)。