gpt4 book ai didi

r - panelmodel (plm) 对象上的 texreg;额外的政府信息

转载 作者:行者123 更新时间:2023-12-01 00:18:40 26 4
gpt4 key购买 nike

如何在 中自定义拟合优度 (gof)称呼?

我有一些 我想展示的模型,但我只得到 "Num. obs.", "Adj. R^2",, "R^2" (见下面的工作示例)。但是我想全部显示小n , T , F-statistic , 和 p-value ,我在默认情况下得到的所有东西 summary()称呼。

我得到的一个例子。首先是一些数据和需要的包,

# install.packages(c("wooldridge", "plm", "texreg"), dependencies = TRUE)
library(wooldridge)
data(wagepan)
library(plm)

二、部分机型,
POLS <- plm(lwage ~ educ + black + hisp + exper+I(exper^2)+ married + union +
factor(year), data = wagepan, index=c("nr","year") , model="pooling")

RE <- plm(lwage ~ educ + black + hisp + exper + I(exper^2) + married + union +
factor(year), data = wagepan, index = c("nr","year") , model = "random")

FE <- plm(lwage ~ I(exper^2) + married + union + factor(year),
data = wagepan, index = c("nr","year"), model="within")

三、我现在的 调用及其输出,
# library(texreg)                      
texreg::screenreg(list(POLS, RE, FE), custom.coef.map = list('married' = 'Marrtied', 'union' = 'Union'))
#> ================================================
#> Model 1 Model 2 Model 3
#> ------------------------------------------------
#> Marrtied 0.11 *** 0.06 *** 0.05 *
#> (0.02) (0.02) (0.02)
#> Union 0.18 *** 0.11 *** 0.08 ***
#> (0.02) (0.02) (0.02)
#> ------------------------------------------------
#> R^2 0.19 0.18 0.18
#> Adj. R^2 0.19 0.18 0.06
#> Num. obs. 4360 4360 4360
#> ================================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05

我确实尝试添加 , include.fstatistic = TRUE ,但似乎我不能那样做。因为我需要一些额外的定制。

我的目标是这样的,
#> ------------------------------------------------
#> Obs. (N) 4360 4360 4360
#> Indiv.(n) 545 545 545
#> Time (T) 8 8 8
#> R^2 0.19 0.18 0.18
#> Adj. R^2 0.19 0.18 0.06
#> F-stat 72.458 68.4124 83.8515
#> P-value (2.22e-16) (2.22e-16) (2.22e-16)
#> ================================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05

最佳答案

跟进@jaySF 的回答,创建您自己的提取函数来包装默认值,并注册它:

custom_extract_plm <- function(model, ...) {
s <- summary(model)
ex.1 <- texreg:::extract.plm(model, ...)

fv.1 <- s$fstatistic$statistic
pv.1 <- s$fstatistic$p.value

ex.1@gof.names <- c(ex.1@gof.names, "F-stat", "P-value")
ex.1@gof <- c(ex.1@gof, fv.1, pv.1)
ex.1@gof.decimal <- c(ex.1@gof.decimal, TRUE, TRUE)

ex.1
}

setMethod(texreg:::extract, signature = className("plm", "plm"), custom_extract_plm)

现在你得到一个 F 统计量:
> texreg::screenreg(list(POLS, RE, FE), custom.coef.map = list('married' = 'Marrtied', 'union' = 'Union'))

================================================
Model 1 Model 2 Model 3
------------------------------------------------
Marrtied 0.11 *** 0.06 *** 0.05 *
(0.02) (0.02) (0.02)
Union 0.18 *** 0.11 *** 0.08 ***
(0.02) (0.02) (0.02)
------------------------------------------------
R^2 0.19 0.18 0.18
Adj. R^2 0.19 0.18 0.06
Num. obs. 4360 4360 4360
F-stat 72.46 68.41 83.85
P-value 0.00 0.00 0.00
================================================
*** p < 0.001, ** p < 0.01, * p < 0.05

关于r - panelmodel (plm) 对象上的 texreg;额外的政府信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com