将Hausman检验的p值(或其他额外的GOF度量)添加到texreg表中

时间:2013-11-10 10:42:31

标签: r texreg

我使用texreg在表格中报告几个随机效果模型的结果(使用plm估算)。

如何将Hausman检验的p值(将每个模型与其固定效应对应物进行比较)与texreg报告的拟合优度度量相加?更一般地说,如何使用texreg

报告其他拟合优度度量

2 个答案:

答案 0 :(得分:5)

假设您有一个名为model的模型对象,您应该遵循以下三个步骤:

1)执行tr <- extract(model)以创建texreg对象。

2)操纵这个texreg对象。例如:

tr@gof <- c(tr@gof, 0.5)
tr@gof.names <- c(tr@gof.names, "new row")
tr@gof.decimal <- c(tr@gof.decimal, TRUE)

3)执行原始texreg命令,但包含tr对象而不是原始model。示例:screenreg(tr)

如果您认为默认情况下应该在texreg包中包含的提取方法中包含GOF度量,您应该在R-Forge的texreg论坛中提出建议。

答案 1 :(得分:1)

我找到了一种方法来将Hausman测试的p值(和其他额外的GOF测量值)添加到texreg表中。此方法将自动获取GOF度量,因此您不必手动执行此操作。询问您是否有任何问题。

假设&#34; random1&#34;和&#34; fixed1&#34;是你的模特

首先将Hausman测试变成对象

ph1 <- phtest(random1, fixed1)

然后提取模型的系数

sf1 <- summary(fixed1)
names1 <- rownames(sf1$coef)
co1 <- sf1$coef[, 1]
se1 <- sf1$coef[, 2]
pval1 <- sf1$coef[, 4]

然后提取您选择的GOF

pval.ftest1 <- (summary(fixed1)$fstatistic)$p.value
rs1 <- sf1$r.squared
adj1 <- sf1$adj.r.squared
n1 <- nobs(fixed1)
phtest1 <- fp.value.fixed1

选择要包含在表格中的GOF

gof1 <- c(pval.ftest1, rs1, adj1, n1, phtest1)
gof.names1 <- c("p\\ (F-test)","R$^2$", "Adj.\\ R$^2$", "Num.\\ Obs.", "p\\ (Hausman\\ test)")

为GOF选择小数位数

decimal.places <- c(TRUE, TRUE, TRUE, FALSE, TRUE)

创建一个texreg对象

tr1 <- createTexreg(coef.names = names1, coef = co1, se = se1, pvalues = pval1, gof.names = gof.names1, gof = gof1, gof.decimal = decimal.places)

使用screenreg检查所有内容是否正常

screenreg(tr1)

如有必要,对所有模型(fixed2,fixed3 ......&amp; random2,random3 ......)重复相同的操作。

在使用texreg或htmlreg函数之前检查所有模型的一切是否正常

screenreg(list(tr1, tr2, tr3, tr4, tr5))