使用 rdrobust 的 3 个回归输出模型打印表格
Print tables with 3 regression output models from rdrobust
我有 运行 3 个 rdrobust 回归,我想打印一些值(不是所有值都在 table 中,这样每个模型都有一列,结果可以并排比较。
我尝试使用 stargazer 但没有成功,modelsummary 也是如此。
这是我的回归代码的样子:
model <- rdrobust::rdrobust(x,
y,
c = cutoffvalue,
kernel = "tri", #default
bwselect = "mserd"
我只想在 table 中显示回归估计、值、带宽和内核。
这是我尝试过的方法,但它没有给我想要的值,而且它只适用于一种型号。我想让所有 3 个都在同一个 table.
tidy.rdrobust <- function(model, ...){
ret <- data.frame(term = row.names(model$coef),
estimate = model$coef[, 1],
std.error = model$se[, 1],
p.value = model$pv[, 1])
row.names(ret) <- NULL
ret
}
glance.rdrobust <- function(model, ...){
ret <- data.frame(nobs.left = model$N[1],
kernel = model$kernel,
bwselect = model$bwselect)
ret
}
x <- runif(1000, -1, 1)
y <- 5 + 3 * x + 2 * (x >= 0) + rnorm(1000)
fit <- rdrobust(y, x)
modelsummary(fit)
谢谢!
我在评论中要求澄清,但这是我在 table 中猜测您想要什么的最佳尝试:
- 多个模型并排
- 模型估计
- 括号中的 p 值低于估计值
- hte底部的内核类型table
- table
底部的带宽选择
为此,我只修改了您的glance.rdrobust
方法,并使用了modelsummary
函数的statistic
参数。
从 rdrobust
个对象加载库和 define custom tidy
and glance
methods to extract information (see documentation):
library(rdrobust)
library(modelsummary)
tidy.rdrobust <- function(model, ...) {
ret <- data.frame(
term = row.names(model$coef),
estimate = model$coef[, 1],
std.error = model$se[, 1],
p.value = model$pv[, 1]
)
row.names(ret) <- NULL
ret
}
glance.rdrobust <- function(model, ...) {
ret <- data.frame(
Kernel = model$kernel,
Bandwidth = model$bwselect
)
ret
}
模拟数据,估计3个模型,并将它们存储在一个列表中:
x1 <- runif(1000, -1, 1)
x2 <- runif(1000, -1, 1)
x3 <- runif(1000, -1, 1)
y1 <- 5 + 3 * x1 + 2 * (x1 >= 0) + rnorm(1000)
y2 <- 5 + 3 * x2 + 2 * (x2 >= 0) + rnorm(1000)
y3 <- 5 + 3 * x3 + 2 * (x3 >= 0) + rnorm(1000)
fit1 <- rdrobust(y1, x1)
fit2 <- rdrobust(y2, x2)
fit3 <- rdrobust(y3, x3)
models <- list(fit1, fit2, fit3)
创建 table:
modelsummary(models, statistic = "p.value")
Model 1
Model 2
Model 3
Conventional
2.155
2.085
2.050
(0.000)
(0.000)
(0.000)
Bias-Corrected
2.110
2.110
1.984
(0.000)
(0.000)
(0.000)
Robust
2.110
2.110
1.984
(0.000)
(0.000)
(0.000)
Bandwidth
mserd
mserd
mserd
Kernel
Triangular
Triangular
Triangular
我有 运行 3 个 rdrobust 回归,我想打印一些值(不是所有值都在 table 中,这样每个模型都有一列,结果可以并排比较。
我尝试使用 stargazer 但没有成功,modelsummary 也是如此。
这是我的回归代码的样子:
model <- rdrobust::rdrobust(x,
y,
c = cutoffvalue,
kernel = "tri", #default
bwselect = "mserd"
我只想在 table 中显示回归估计、值、带宽和内核。
这是我尝试过的方法,但它没有给我想要的值,而且它只适用于一种型号。我想让所有 3 个都在同一个 table.
tidy.rdrobust <- function(model, ...){
ret <- data.frame(term = row.names(model$coef),
estimate = model$coef[, 1],
std.error = model$se[, 1],
p.value = model$pv[, 1])
row.names(ret) <- NULL
ret
}
glance.rdrobust <- function(model, ...){
ret <- data.frame(nobs.left = model$N[1],
kernel = model$kernel,
bwselect = model$bwselect)
ret
}
x <- runif(1000, -1, 1)
y <- 5 + 3 * x + 2 * (x >= 0) + rnorm(1000)
fit <- rdrobust(y, x)
modelsummary(fit)
谢谢!
我在评论中要求澄清,但这是我在 table 中猜测您想要什么的最佳尝试:
- 多个模型并排
- 模型估计
- 括号中的 p 值低于估计值
- hte底部的内核类型table
- table 底部的带宽选择
为此,我只修改了您的glance.rdrobust
方法,并使用了modelsummary
函数的statistic
参数。
从 rdrobust
个对象加载库和 define custom tidy
and glance
methods to extract information (see documentation):
library(rdrobust)
library(modelsummary)
tidy.rdrobust <- function(model, ...) {
ret <- data.frame(
term = row.names(model$coef),
estimate = model$coef[, 1],
std.error = model$se[, 1],
p.value = model$pv[, 1]
)
row.names(ret) <- NULL
ret
}
glance.rdrobust <- function(model, ...) {
ret <- data.frame(
Kernel = model$kernel,
Bandwidth = model$bwselect
)
ret
}
模拟数据,估计3个模型,并将它们存储在一个列表中:
x1 <- runif(1000, -1, 1)
x2 <- runif(1000, -1, 1)
x3 <- runif(1000, -1, 1)
y1 <- 5 + 3 * x1 + 2 * (x1 >= 0) + rnorm(1000)
y2 <- 5 + 3 * x2 + 2 * (x2 >= 0) + rnorm(1000)
y3 <- 5 + 3 * x3 + 2 * (x3 >= 0) + rnorm(1000)
fit1 <- rdrobust(y1, x1)
fit2 <- rdrobust(y2, x2)
fit3 <- rdrobust(y3, x3)
models <- list(fit1, fit2, fit3)
创建 table:
modelsummary(models, statistic = "p.value")
Model 1 | Model 2 | Model 3 | |
---|---|---|---|
Conventional | 2.155 | 2.085 | 2.050 |
(0.000) | (0.000) | (0.000) | |
Bias-Corrected | 2.110 | 2.110 | 1.984 |
(0.000) | (0.000) | (0.000) | |
Robust | 2.110 | 2.110 | 1.984 |
(0.000) | (0.000) | (0.000) | |
Bandwidth | mserd | mserd | mserd |
Kernel | Triangular | Triangular | Triangular |