如何在R中为dLagM包ardlBound输出生成美观可复现结果表格
ARDL回归结果导出可复现表格的两种可行方案
方法1:使用modelsummary包(推荐,适配多输出格式)
modelsummary包支持非标准R模型的结果导出,只需自定义系数提取和模型统计量提取规则,即可直接生成符合要求的格式,支持输出Markdown、Word、LaTeX、HTML等多种格式:
# 安装依赖包(首次使用运行) install.packages(c("dLagM", "modelsummary", "broom", "dplyr")) library(dLagM) library(modelsummary) library(broom) library(dplyr) # 原有运算代码 data(M1Germany) data <- M1Germany[1:144,] results <- ardlBound(data = data , formula = logprice ~ interest + logm1 , case = 2 , max.p = 3, max.q = 3) # 自定义系数提取函数 tidy_ardl <- function(x) { coef_df <- as.data.frame(summary(x)$coefficients) colnames(coef_df) <- c("estimate", "std.error", "statistic", "p.value") coef_df$term <- rownames(coef_df) rownames(coef_df) <- NULL return(coef_df) } # 自定义模型统计量提取函数 glance_ardl <- function(x) { s <- summary(x) data.frame( r.squared = s$r.squared, adj.r.squared = s$adj.r.squared, f.statistic = s$fstatistic[1], nobs = nobs(x$model) ) } # 输出Markdown格式表格,调整output参数可切换输出格式 # 输出到Word:output = "ARDL回归结果.docx" # 输出LaTeX代码:output = "latex" modelsummary(results, tidy = tidy_ardl, glance = glance_ardl, output = "markdown")
方法2:适配stargazer(适合习惯stargazer语法的用户)
如果偏好stargazer的输出风格,可手动提取ardlBound返回的系数、标准误、模型统计量后传入stargazer,即可生成兼容的表格:
# 安装依赖包(首次使用运行) install.packages(c("dLagM", "stargazer")) library(dLagM) library(stargazer) # 原有运算代码 data(M1Germany) data <- M1Germany[1:144,] results <- ardlBound(data = data , formula = logprice ~ interest + logm1 , case = 2 , max.p = 3, max.q = 3) # 提取变量级统计量 coefs <- summary(results)$coefficients[,1] se <- summary(results)$coefficients[,2] pvals <- summary(results)$coefficients[,4] # 提取模型级统计量 r2 <- summary(results)$r.squared adj_r2 <- summary(results)$adj.r.squared f_stat <- summary(results)$fstatistic[1] n_obs <- nrow(data) # 输出表格,调整type参数切换格式 # 输出LaTeX代码:type = "latex" # 输出HTML格式:type = "html" stargazer(coef = list(coefs), se = list(se), p = list(pvals), title = "ARDL边界检验回归结果", dep.var.labels = c("logprice"), column.labels = c("对数价格"), keep.stat = c("n", "rsq", "adj.rsq"), add.lines = list( c("F统计量", round(f_stat, 3)) ), type = "text")
内容的提问来源于stack exchange,提问作者user3227641
相关产品推荐
相关产品推荐

